• PRIMARY KEY — поле, для которого задано это ограничение, должно выступать в роли первичного ключа; ' Значение поля по умолчанию указывается при помощи ключевого слова DEFAULT.
Ограничения на таблицу применяются к группам, состоящим из нескольких полей. Они задаются при помощи ключевого слова CHECK.
Формирование запросов на языке SQL предполагает ввод команд с клавиатуры в строгом соответствии с их форматами. Для записи форматов команд (иногда усеченных) будем использовать следующие соглашения:
< > (угловые скобки). То, что в них указано, определяет пользователь;
[ ] (квадратные скобки). Выделяют те части команды, которые могут отсутствовать;
{},... Заключенная в фигурные скобки часть команды может быть повторена несколько раз, причем повторы разделяются запятыми;
| (вертикальная черта). Означает альтернативный выбор.
Контрольные вопросы -
Для каких целей создавался язык SQL?
-
Каковы основные этапы формирования стандарта SQL?
-
Является ли SQL языком программирования?
-
Как можно ускорить выполнение операции в SQL?
-
Почему SQL считается реляционно-полным?
-
Из каких разделов состоит язык SQL?
-
Как выполнить объединение таблиц?
-
Какие действия выполняет оператор DELETE без фразы WHERE?
-
Какими способами можно заполнить созданную таблицу данными?
-
Как организовать перерасчет значений каких-либо столбцов таблицы?
-
Напишите оператор создания таблицы Товары с указанием значений по умолчанию и условий проверки данных в некоторых полях?
-
Как задать составной первичный ключ при создании таблицы?
-
Для чего нужны представления?
-
Как определяются модифицируемые представления?
ЛЕКЦИЯ 24
ПЛАН
1 Синтаксис языка SQL
2 Инструкции и предложения SQLЛИТЕРАТУРА: [2], стр. 84 – 90
1 Синтаксис языка SQLОператоры SQL могут быть встроены в базовый язык и дают возможность получать доступ к БД из прикладных программ.
Для организации запросов с помощью SQL используют определённый синтаксис.
Разделители SQL:1) запятая используется для разделения элементов списка, имён полей в запросе;
2) квадратные скобки – для задания имён полей, которые содержат пробелы;
3) точка – для разделения имени таблицы от имени поля, если в запрос включены поля нескольких таблиц;
4) строки в SQL заключаются в одинарные кавычки (‘Пушкин’);
5) каждая команда в SQL заканчивается точкой с запятой.
Например: Книги. Название, Книги. [Год издания], Издательства. Название;
Язык SQL состоит из ключевых слов и языковых конструкций, к которым относят: инструкции, предложения, операторы и функции.
2 Инструкции и предложения SQLИнструкции – команды, которые позволяют выполнить некоторые операции.
Инструкции SQL подразделяются на 2 категории:
1) Инструкции Языка Определения Данных (DDL) – формируют запросы для создания, изменения, удаления объектов БД, изменения структуры схемы БД.
2) Инструкции Языка Манипулирования Данных (DML) – формируют запросы, управляющие информацией (удаление, изменение, добавление, отображение данных).
Наиболее часто используемыми инструкциями являются инструкции Языка Манипулирования Данных (DML):
1) SELECT – используются для создания запроса на выборку
2) INSERT - для добавления данных
3) UPDATE – на изменение данных
4) DELETE – на удаление данных
Предложения – команды, изменяющие условия отбора, используемые для определения данных, которые необходимо отобрать или обработать.
Рассмотрим некоторые предложения:
1) FROM
2) WHERE
3) GROUP BY
4) HAVING
5) ORDER BY
В SQL используются следующие операторы: арифметические, присваивания и сравнения, логические, идентификации.
В таблице приведен список арифметические, присваивания и сравнения, логические операторов.
Знаки арифметических операций
| Знаки операций сравнения
| Логические операции
|
+ сложение
| > больше
| And логическое И
|
- вычитание
| < меньше
| Or логическое ИЛИ
|
* умножение
| = равенство (присвоение)
| Not логическое отрицание НЕ
|
/ деление
| >= больше или равно
| Xor исключающее ИЛИ
|
^ возведение в степень
| <= меньше или равно
|
|
\ целочисленное деление
| <> не равно
|
|
Также могут быть использованы следующие операторы, которые упрощают создание выражений для выборки записей в запросах;
Is - при использовании вместе с Null определяет, является ли значение Null или Not Null, например. Is Null означает значение поля пусто.
BETWEEN AND - позволяет задать диапазон значений. Например, условие >= 10 and <=20 можно записать так BETWEEN 10 and 20
IN - позволяет задать используемый для сравнения список значений. Например, выражение ''хлеб"' ог '"вода" ог "земля" можно записать так IN("хлеб","вода","земля").
LIKE - используется для организации поиска по шаблону.
Символ
| Шаблон обозначает
| Условие
| Access найдёт…
|
*
| Произвольное количество алфавитно-цифровых символов в произвольном месте
| LIKE “*Мар*”
| Ул. 8 Марта, 45-23; ул. Маршака, 180а-1; Мартин
|
?
| Любой одиночный алфавитно-цифровой символ в произвольном месте значения
| LIKE“м?р”, “Т??я”
| МУР, мир, мор, мер, Толя, Таня, Тоня, То1я, Тося, Тася
|
#
| Любая одиночная цифра в произвольном месте значения
| LIKE “23#45”, LIKE“52-5#-4#”
| 23545, 23145, 23745, 23945 52-55-45? 52-59-41
|
[ ]
| Любой из перечисленных в скобках символ
| LIKE “З[оаи]лин”
| Зозулин, Зазулин, Зизулин. НО не найдёт Зезулин, Зузулин.
|
!
| Любой один символ, кроме, указанных в скобках
| LIKE “ко[!рс]а”
| Коза, кола, кома. НО не найдёт кора, коса.
|
-
| Любого одиночного символа из указанного интервала
| LIKE “ко[к-м]а”
| Кола, кома
|
Контрольные вопросы -
Каковы основные функции оператора SELECT?
-
Что означает символ «*» в операторе SELECT?
-
Как организуется вывод данных с группированием по какому-либо полю (столбцу) таблицы?
-
Как подсчитать число строк таблицы?
-
Как задаются имена столбцов, если в запросе используются несколько таблиц?
-
Какие виды подзапросов вы знаете и каковы ограничения при их использовании?
-
Создание производных столбцов
-
Арифметические операции
-
Определение последовательности вычисления
ЛЕКЦИЯ 25
ПЛАН
1 Инструкция CREATE TABLE
2 Инструкция CREATE INDEX
3 Инструкция INSERT
4 Инструкция DELETE
5 Инструкция ALTER TABLE
ЛИТЕРАТУРА: [1], стр. 181 – 191
1 Инструкция CREATE TABLE
CREATE TABLE таблица (поля, индексы)
Поля - список полей с характеристиками.
Индексы - необязательный список составных индексов.
Инструкция CREATE TABLE создает таблицу. Каждое поле в списке поля может иметь до трех элементов, разделенных пробелами: “Поле тип индекс”.
Поле - имя поля.
Тип - тип поля. Если поле текстовое, то в круглых скобках указывается размер в байтах.
Индекс - предложение CONSTRAINT для создания простого индекса. Указывается только в случае, если по данному полюнужно создать индекс. Формат:
CONSTRAINT имя вариант
Имя - имя индекса.
Вариант - необязательный параметр. Может принимать одно из следующих значений:
PRIMARY KEY - поле ключевое;
UNIQUE - уникальный индекс ( в этом поле не допускаются повторения);
REFERENCES - внешняя таблица (внешнее поле) – поле во внешней таблице.
CONSTRAINT для создания составного индекса имеет аналогичный формат, но вместо поля используется список полей. Если в таблице определен составной уникальный индекс, то комбинация значений включенных в него записей должна быть уникальной для каждой записи таблицы, хотя отдельные поля могут иметь совпадающие значения. Нельзя использовать зарезервированные слова PRIMARY KEY , если в таблице уже определен ключ.
Пример
CREATE TABLE [Расписание экзаменов](
[Предмет] INTEGER CONSTRAINT КлПоле PRIMARY KEY,
[Название предмета] TEXT,
[Преподаватель] INTEGER,
Группа TEXT(10),
Дата DATATIME);
2 Инструкция CREATE INDEX
Инструкция CREATE INDEX создает новый индекс для существующей таблицы.
CREATE [UNIQUE] индекс ON таблица (список_полей)
[WITH вариант]
В квадратных скобках указаны необязательные элементы синтаксиса.
Список_полей - список полей, составляющих индекс.
Индекс - имя создаваемого индекса.
Вариант - дополнительная характеристика индекса – один из вариантов:PRIMARY[(индексированные поля)],DISALLOWNULL, IGNORENULL. Последние два варианта запрещают использование пустых значений в индексированных полях.
Инструкция
DROP INDEX индекс ON таблица;
удаляет индекс из таблицы.
Пример
CREATE INDEX Предметы
ON [Расписание экзаменов]([Название предмета], [Группа]);
ПримерDROP INDEX Предметы;
3 Инструкция INSERT
Инструкция INSERT вставляет одну или несколько новых строк
…;в таблицу или запрос. Вариант
INSERT INTO таблица SELECT
вставляет в таблицу
строки, отобранные инструкцией SELECT. После имени таблицы можно указать в круглых скобках список столбцов, в которые помещаются новые значения. Запрос INSERT выполняется только в том случае, когда вставляемые данные удовлетворяют установленным ограничениям на значения столбцов, условию на значения для таблиц и на целостность данных.
В следующем примере используется таблица “Новые преподаватели”, в которой содержатся сведения о преподавателях, проходящих месячный испытательный срок.
INSERT INTO Преподаватели
SELECT Преподаватель, ФИО, Должность, Степень, Звание
FROM [Новые преподаватели]
WHERE Дата
Если требуется добавить только одну запись, можно использовать другой вариант инструкции INSERT.
INSERT INTO таблица VALUES(список_значений)
или
INSERT INTO таблица (список_полей) VALUES (список_значений)
Если список полей опущен, предложение VALUES должно содержать значения для каждого поля таблицы.
ПримерINSERT INTO Преподаватели (Преподаватель, ФИО,Должность)
VALUES (7, ”Журавлев”, ”Ассистент”);
4 Инструкция DELETEDELETE таблица.* FROM таблицы WHERE условие;
Инструкция DELETE позволяет удалять записи из
таблиц, перечисленных в предложении FROM. Удаляются записи, удовлетворяющие условию WHERE.
Если в предложении FROM указана одна таблица, то ее можно обозначить звездочкой. Таблицу можно удалить с помощью инструкции
DROP таблица;
Удаление данных из отдельных полей можно осуществить с помощью инструкции UPDATE, в которой следует указать SET поле=Null.
ПримерDELETE * FROM Преподаватели WHERE Преподаватель=3;
Отменяются все экзамены преподавателя с шифром 3.
5 Инструкция ALTER TABLEИнструкция ALTER TABLE позволяет добавлять и удалять поля и индексы таблицы в соответствии с форматом
ALTER TABLE таблица вариант;
Вариант принимает в каждом случае одно из значений:
ADD COLUMN поле тип [CONSTRAINT индекс];
ADD CONSTRAINT составной_индекс;
DROP COLUMN поле;
DROP CONSTRAINT индекс.
ADD COLUMN добавляет в
таблицу новый столбец, который становится последним столбцом таблицы. Необязательное слово COLUMN является поясняющим. Оно не связано с какими-либо операциями и может быть опущено. Если
поле текстовое, после слова TEXT можно указать в круглых скобках длину поля в символах.
ПримерALTER TABLE Преподаватели
ADD COLUMN Комментарий TEXT(50);
Вариант ADD CONSTRAINT позволяет создать в таблице составной индекс. Варианты DROP удаляют из таблиц
поля или
индексы.
Контрольные вопросы -
Использование объединений.
-
Создание объединений с помощью синтаксиса JO IN и W H E R E
-
Создание произвольного естественного объединения с использованием предложения N A T U R A L JO IN
-
Создание внутреннего объединения с помощью команды IN N E R J O IN
-
Создание внешних объединений с помощью команды O U T E R JO IN
-
Порядок создания таблиц
-
Основные принципы работы с ограничениями
-
Создание новой таблицы с помощью команды CREATE TABLE
-
Запрет значения null с помощью ограничения N O T N U L L
-
Присвоение значения по умолчанию с помощью ограничения D E F A U L T
-
Задание первичного ключа с помощью ограничения P R IM A R Y K E Y
-
Задание внешнего ключа с помощью ограничения FO REIG N K E Y
-
Присвоение уникальных значений с помощью ограничения U N IQ U E
-
Проверка значений столбца с помощью ограничения C H E C K
-
Создание временной таблицы с помощью команды C REATE T EM PO R A R Y T A B L E
-
Изменение таблицы с помощью команды ALTER T A B L E
-
Удаление таблицы с помощью команды D R O P T A B L E