- •Лабораторная работа №5
- •Основные директивы sql-запросов: create table - создать таблицу.
- •Primary key – объявление первичного ключа
- •Alter table - изменить таблицу.
- •Drop table - удалить таблицу.
- •Insert вставить
- •Delete - удалить
- •Select - выбрать.
- •Пример1
- •Пример3
- •Операция join
- •Создание запросов sql
- •Редактирование запросов sql
- •Порядок выполнения работы
Select - выбрать.
Обобщенный синтаксис директивы SELECT выглядит так:
SELECT Столбец1 [ , Столбец2 ... , Столбец-nn ] [ INTO Новая_Таблица ] FROM Таблица1 [ , Таблица2 ... , Таблица-nn ] [ WHERE Условие_Поиска ] [ GROUP BY Выражение Группировки ] [ ORDER BY Выражение Упорядочивания ]
SELECT - зарезервированное слово SQL-языка, которое и определяет саму директиву.
Столбец1 ... Столбец-nn - определения столбцов данных, возвращаемых в результате исполнения запроса.
INTO - зарезервированное ключевое слово SQL-языка, которое предписывает директиве SELECT сохранить результирующий набор данных в Новую Таблицу.
FROM - зарезервированное ключевое слово SQL-языка, указывающее, что после него следует определение объединения таблиц, согласно которому директива SELECT должна выбирать запрашиваемые данные.
Таблица1 ... Таблица-nn - определение объединения существующих в базе данных таблиц, данные из которых необходимо выбрать.
WHERE - зарезервированное ключевое слово SQL-языка, предписывающее выбирать в результирующий набор данных только те записи, которые удовлетворяют Условиям_Поиска.
Условия_Поиска - SQL-выражение, определяющее для директивы SELECT условия поиска записей.
GROUP BY - зарезервированные ключевые слова SQL-языка, предписывающие группировку данных в результирующем наборе записей в соответствии с Выражением Группировки.
Выражение Группировки - SQL-выражение, определяющее для директивы SELECT условия группировки данных в результирующем наборе записей.
ORDER BY - зарезервированные ключевые слова SQL-языка, предписывающие выполнение упорядочивания данных в результирующем наборе записей в соответствии с Выражением Упорядочивания.
Выражение Упорядочивания - SQL-выражение, определяющее для директивы SELECT условия упорядочивания данных в результирующем наборе записей.
Назначение директивы SELECT - отбор данных из одной или нескольких таблиц и представление их запрашивающей стороне в виде результирующего набора записей. SELECT по своему синтаксису является, наверное, наиболее сложной и гибкой директивой по сравнению с остальными, а также и самой функциональной. Для того, что бы все объяснения были наглядными и понятными, вам необходимо создать несколько таблиц и наполнить их данными.
Пример1
Посмотрим содержимое таблицы ex_People:
SELECT * FROM ex_People
Таблица ex_People
-
aKod
fName
mName
lName
akCity
Address
1010
Валентин
Петрович
Густов
1
Листовая 6-15
1034
Григорий
Яковлевич
Сабенко
1
Пустошь 23-28
1045
Андрей
Андреевич
Генадин
2
Рахова 29
1049
Андрей
Сергеевич
Сухов
2
Рабочая 16
1050
Николай
Владимирович
Мухин
3
Мичурина 133-6
1055
Сергей
Рушамович
Агабидзян
2
Соборная 12-44
1066
Владимир
Сергеевич
Суворов
4
Зеленая 15
1933
Борис
Олегович
Кустов
3
Ленина 32-183
2001
Семен
Павлович
Хороший
1
Пугачевская 204-18
Если не указано условие выбора записей (необязательное ключевое слово WHERE), то SELECT возвращает все записи без исключения. Если не указано условие упорядочивания возвращаемого набора записей (необязательные ключевые слова ORDER BY), то SELECT возвращает записи без упорядочивания, в том порядке, как они физически расположены в файлах базы данных. И надо отметить, что физическое размещение записей в файлах может изменяться по самым разным причинам.
В директиве SELECT могут употребляться взаимоисключающие ключевые слова ALL и DISTINCT. Взаимоисключающие, потому что применение одного из этих слов автоматически запрещает применение другого слова. Они указываются в запросе сразу после SELECT:
SELECT ALL ... SELECT DISTINCT ...
Ключевое слово DISTINCT (отличный, отличающийся) предписывает директиве SELECT возвращать в результирующем наборе только уникальные, неповторяющиеся записи. А ALL (все) - наоборот, предписывает включать в результирующий набор повторяющиеся записи. Ключевое слово ALL используется редко, потому что по умолчанию, когда не указаны ни ALL, ни DISTINCT, SELECT возвращает все найденные записи, включая повторяющиеся. Согласно стандартам SQL-языка повторяющимися считаются записи, в которых данные всех столбцов совпадают.
Если посмотреть на нашу таблицу ex_People, то в ней нет ни одной повторяющейся записи. Но если мы из этой таблицы запросим только имена людей, ...
SELECT fName FROM ex_People
...что равносильно запросу, ...
SELECT ALL fName FROM ex_People
...то в результирующем наборе записей мы получим две повторяющиеся записи с именем Андрей...
-
fName
Валентин
Григорий
Андрей
Андрей
Николай
Сергей
Владимир
Борис
Семен
Именно от таких вот дублирующих записей и позволяет избавляться ключевое слово DISTINCT...
SELECT DISTINCT fName FROM ex_People
-
fName
Валентин
Григорий
Андрей
Николай
Сергей
Владимир
Борис
Семен
Пример2
Из таблицы ex_People выводятся записи из полей fName, mName, при условии, что acod>1066
SELECT fName, mName, lName FROM ex_People WHERE akod>1066
