Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создания и работы С базами данных↑ ⇐ ПредыдущаяСтр 12 из 12 Содержание книги
Поиск на нашем сайте
Язык структурированных запросов (SQL) является стандартным средством для работы с базами данных и может использоваться как для интерактивной работы с базами данных, так и включаться в языки программирования. Применительно к Visual Basic SQL позволяет: · создавать, модифицировать или удалять таблицы в базе данных Access;
В ранее рассмотренных параграфах данной главы через элемент управления Data подключалась одна таблица (свойству Re-cordSource элемента управления Data присваивалось значение имени таблицы). При использовании языка SQL запрос вводится в свойство RecordSource. В случае использования элемента управления Data, это позволяет работать с информацией из нескольких таблиц. Следует отметить, что каждое выполнение оператора запроса изменяет набор записеи. В связи с этим необходимо применять метод Refresh для элемента управления Data после каждого присвоения SQL-запроса свойству RecordSource. Рассмотрим операторы и использование языка SQL для работы с базами данных. Для поиска информации в базе данных используется оператор SELECT. Синтаксис оператора следующий: SELECT список имен полей FROM список имен таблиц где SELECT, FROM — ключевые слова; список имен полей — список имен полей, которые выбираются из одной или нескольких 1аблиц. Для выбора всех полей можно использовать символ “*”, вместо перечисления имен всех полей. Если имя поля таблицы содержит пробел, то это имя должно заключаться в квадратные скобки; список имен таблиц — список имен таблиц, из которых производится выбор. Имена полей и таблиц нечувствительны к регистру клавиатуры. ' Примеры: SELECT * FROM Titles — выбор всех полей из таблицы Titles рассмотренной выше базы данных по библиографии по Visual Basic. SELECT Title, /Year Published/ FROM Titles — выбор полей заголовков (Title) и года издания (Year Published) из таблицы Titles. Имя поля года издания берется в квадратные скобки (имеет пробел). Для поиска информации, соответствующей некоторому условию, используется дополнение к оператору SELECT — WHERE, которое имеет следующий синтаксис: SELECT список имен полей FROM список имен таблиц WHERE условие где условие определяет критерии поиска информации. В условии используются имена полей, операции сравнения (<> <=, =, >, >=, <>) и специальные операции сравнения IN, LIKE, BETWEN. Эти операции могут объединяться с помощью логических операций и задавать сложные условия поиска информации. Примеры: SELECT /Year Published/, Title FROM Titles WHERE /Year Published/ > 1991 определяет выбор названий книг, год выпуска которых позже 1991. SELECT I Last Name], /First Name/ FROM Employees WHERE /Last Name/ = ‘King’ определяет выбор полей имен и фамилий из таблицы служащих, фамилии которые совпадают с фамилией King. Операция IN сравнивает содержимое поля со списком значений, определяющих критерий поиска информации. Примеры: SELECT /Year Published/, Title FROM Titles WHERE /Year Published/ IN (1995, 1996) определяет выбор книг, опубликованных в 1995 и в 1996 гг. SELECT /Last Name/, /First Name/, City FROM Employees WHERE City In (‘Interlaken ', ‘New York’, ‘Frankfurt’) определяет выбор служащих, живущих в городах Interlaken, New York или Frankfurt. Операция LIKE сравнивает содержимое поля со значением образца. Для записи образца используются строковые константы, символы шаблона и списки диапазона символов. Символы шаблона следующие: *,?, #. * — соответствует цепочке символов,? — соответствует одному символу, # — соответствует одной цифре. Примеры: R* — возможные результаты поиска right, Roza. А? — возможные результаты поиска and, any. 12345# — возможные результаты поиска 123455. 123457. Список диапазона заключается в квадратные скобки и первый и “последний символы диапазона отделяются дефисом (-). Диапазон задается в возрастающем порядке. Примеры: SELECT /Last Name/, /First Name/ FROM Employees WHERE /Last Name/ Like ‘S*’ определяет выбор служащих, фамилии которых начинаются с буквы S. SELECT Author FROM Authors WHERE Author LIKE fA-K/ определяет выбор авторов, фамилии которых начинаются с букв от А.до К. SELECT Title FROM Titles WHERE Title LIKE “database*” AND [Year Publisher/ = 1996 определяет выбор названий, в которых присутствует слово “database” и выпущенных в 1996 году. Операция BETWEEN проверяет принадлежность значения поля диапазону значении и является включающим значением (выбираются записи, содержащие поле со значением, равным границе диапазона). Границы значений объединяются операцией AND. Примеры: SELECT lOnler IDI, I Order Dale/ FROM Orders WHERE /Order Date/ Between # I-1-94” And #6-30-94# определяет выбор документов первой половины 1994 г. С SELECT /Last Name/, Salary FROM Employees ' WHERE [Last Name] Between ‘Lon’ And To/’ определяет выбор зарплаты служащих, начальные буквы фамилий которых, расположенные в алфавитном порядке, находятся в диапазоне 'Lon' и 'ТоГ. Для определения порядка, в котором представляются результаты поиска записей, используется дополнение ORDER BY, синтаксис которого следующий: SELECT список имен полей FROM список имен таблиц WHERE условие ORDER BY имя поля [DESC] [имя поля [DESC]] где имя поля — поле, по которому производится упорядочение. Опция DESC устанавливает обратный порядок сортировки. Упорядочение может вестись по нескольким полям (сортировка, например, по фамилии, а затем по имени) Пример: SELECT Title FROM Titles WHERE Title LIKE “*database*” AND [Year Publisher] = 1996 ORDER BY Title определяет выбор названий книг, в которых присутствует слово “database” и выпущенных в 1996 г., и упорядочивает названия в алфавитном порядке. При работе с несколькими таблицами, каждое из рассмотренных дополнений условий выбора может быть применено для любой из таблиц. В общем случае при формировании запроса для нескольких таблиц указывается таблица, в которой ведется поиск полей и связь между таблицами. Синтаксис запроса для нескольких таблиц следующий: SELECT список имен полей FROM список имен таблиц, список связей где список связей определяет, как таблицы в списке имен таблиц связаны между собой. В частности для задания связи используется рассмотренное дополнение WHERE (WHERE имя_табмщы1.1шя_поля1 = 1шя_таблицы2.имя_поля2). Примеры: · SELECT Tities.Title, Publishers. [Company Name} FROM Titles. Publishers WHERE Titles. Pubid = Publishers. Pubid определяет выбор названий книг (Title) из таблицы названий (Titles) и названий издательств (Company Name) из таблицы издательств (Publishers). Дополнение WHERE определяет связь между таблицами (выбирается название книги и номер издательства из таблицы Titles, по номеру издательства в таблице издательств Publishers находится название издательства). SELECT Tities.Title. Authors. Author, Publishers. [Company Name] FROM Titles, Authors. Publishers WHERE Titles.auJd = Authors. au_id AND Tilles.pubid = Publishers. Pubid определяет выбор из всех трех таблиц полной информации по книге (название, автор, издательство). В целом, язык SQL имеет широкий набор средств для организации различных запросов, о которых можно более подробно узнать из встроенной системы помощи Visual Basic. Пример программы. Модернизируем приведенную выше программу для просмотра таблиц баз данных для ввода SQL-запросов и отображения полученной информации. Добавим на форму текстовое окно для ввода SQL-запроса (нажатием клавиши ввода запрос вводится). Полученная информация динамически (соответственно запросу) формируется и отображается элементом управления Grid. Текст программы: Option Explicit Const vbOFNPATHMUSTEXIST = &H800& Const vbOFNFILEMUSTEXIST = S.H1000& Private Sub Coinmandl_Click () Combol.Clear CommonDialogI.DefaultExt = “MDB” CommonDiaiogI.FiieName = “” CommonDialogI.Filter = “Базы данных Access(*.MDB)|*.MDB” CommonDialogI.Flags = vbOFNPATHMUSTEXIST CommonDialogI.Action = 1 If CommonDialogl.FileName = “” Then Exit Sub OpenDataBase CommonDialogI.FileName End Sub Public Sub OpenDataBase(ByVal DataFile As String) Dim I As Integer Datal.Connect = “” Datal.DatabaseName = DataFiie Datal.Refresh For I = 0 To Datal.Database.TableDefs.Count - 1 Combo 1.Addltem Datal.Database.TableDefs(I).Name Next Combol.Text = “” End Sub Public Sub FillGrid(ByVai Zapros As String) Dim I As Integer, CellWidth As Integer Datal.RecordSource = Zapros Debug.Print Zapros Datal.Refresh Gridl.Cols = Datal.Recordset.Fields.Count Debug.Print Gridl.Cols Gridl.Row •= 0 ‘ For I = 0 To Datal.Recordset.Fields.Count - 1 Gridl.Coi = I Gridl.Text = Datal.Recordset.Fields(I).Name Gridl.ColWidth(I) = TextWidth(Gridi.Text) + 100. Next Datal.Refresh Datal.Recordset.MoveLast Gridl.Rows = Datal.Recordset.RecordCount + 1 Datal.Recordset.MoveFirst Gridl.Row = 0 Do While Not Datal.Recordset.EOF Gridl.Row = Gridl.Row + 1 For I = 0 To Datal.Recordset.Fields.Count - 1 Gridl.Coi = 1 If IsNuil(Datal.Recordset.Fields(I).Value) Then Gridl.Text =• “” Else Gridl.Text = Datal.Recordset.Fields(I).Value End If CellWidth =.TextWidth(Gridi.Text) + 100 If CellWidth > Gridi.ColWidth(I) Then Gridl.ColWidth(I) = CeilWidth End If Next I Datal.Recordset.MoveNext Loop End Sub Private Sub Textl_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then FillGrid Textl.Text End If End Sub
|
||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 194; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.226.158 (0.006 с.) |