- •Оглавление
- •Введение
- •1. Типы данных в sql
- •2. Данные, используемые в примерах
- •3. Создание новых таблиц и модификация данных в таблицах
- •4. Формирование запросов
- •4.1. Выборка данных из единственной таблицы
- •4.2. Выборка данных из нескольких таблиц
- •4.3. Вложенные запросы (подзапросы)
- •4.4. Специальные операторы для обработки подзапросов
- •4.5. Объединение результатов нескольких запросов
- •4.6. Вставка результатов запроса в другую таблицу
- •Приложение 1
- •Текстовый тип
- •Числовые типы
- •Приложение 2
- •Приложение 3
- •Числовые функции
- •Символьные функции
- •Агрегатные функции(применяются к полям таблиц)
1. Типы данных в sql
Значения, хранящиеся в различных полях реляционной таблицы, логически не одинаковы и могут принадлежать к различным типам данных. Каждому полю обязательно приписывается некоторый тип, определяющий, какие данные могут в нем храниться. Стандарт ANSI SQL различает только текстовый и несколько числовых типов данных, приведенных в таблице 1.1 приложения 1.
Многие СУБД используют и другие специальные типы данных. Например, типы DATE (дата) и TIME (время) почти “де-факто” являются стандартными. В каждом конкретном случае необходимо знакомиться с перечнем возможных в СУБД типов данных.
Для FoxPro допустимые типы полей с ограничениями на их размеры приведены в таблице 1.2 приложения 1.
2. Данные, используемые в примерах
Для наглядной демонстрации результатов выполнения команд языка SQL в следующих разделах используется несколько таблиц, составляющих базу данных. Назначение, имена, структура и содержимое этих таблиц приводятся в приложении 2. Типы и размеры полей указываются так, как это требуется в СУБД FoxPro, поскольку все таблицы используются в примерах, приводимых в следующих разделах и реализованных в среде указанной СУБД. Эти же таблицы используются в упражнениях, предназначенных для закрепления изученного материала, которые приводятся в конце некоторых разделов.
База данных содержит сведения о некотором университете (факультетах, преподавателях, должностях, предметах, студентах) и состоит из пяти таблиц. Компактность выбранной БД позволяет без труда понять ее смысл и одновременно дает возможность продемонстрировать на ней средства языка SQL при формировании запросов. Для различимости имена таблиц всегда выделяются жирным курсивом, причем первая буква имени заглавная, а остальные - прописные. Имена полей начинаются с заглавной буквы, отображающей тип данного поля: N - числовое поле, C - текстовое поле. Остальные буквы имени поля - прописные. Поле таблицы, указываемое первым, ключевое, обеспечивающее различимость всех строк и используемое для идентификации объекта, описываемого строкой данной таблицы. Уникальность ключа позволяет организовывать в запросах ссылки на сведения о конкретном объекте по его коду - ключу соответствующей таблицы.
В примерах, приводимых в тексте пособия, при обращении к таблицам всегда указываются только их имена (Teacher, Student и т.п.), хотя, строго говоря, поскольку под именем таблицы понимается имя файла, в котором она хранится, полностью корректным будет обращение к таблице в форме:
[имя_диска:][путь]имя_таблицы[.dbf]
Однако стандартное расширение имен файлов “dbf”, содержащих таблицы (файлы базы данных), в FoxPro можно не указывать. Предполагается, что все файлы, содержащие таблицы, будут иметь стандартные расширения имени. Имя диска и путь к файлу в примерах не указываются в связи с предположением, что все файлы располагаются в каталоге, определенном как место хранения баз данных. Определить такой каталог в FoxPro можно командой:
SET DEFAULT TO имя_диска: путь ,
после чего на все файлы (содержащие таблицы), расположенные в указанном каталоге, можно ссылаться по их именам (при наличии стандартного расширения имени).
Если Вы хотите в ходе изучения языка SQL проверять примеры команд, приведенные в пособии, и выполнять предложенные упражнения средствами СУБД FoxPro, создайте эти таблицы. Практически все упражнения в пособии рассчитаны (если не оговорено иное) на возможность реализации их в среде СУБД FoxPro.
