- •12. Создание таблиц посредством create table. Определение ограничений целостности not null, defoult, check, primary key, foreign key.
- •13. Выборка данных с помощью оператора select. Использование агрегатных функций в операторе select.
- •14. Оператор объединения union. Оператор пересечения intersect. Оператор вычитания exept.
- •15. Подзапросы. Классификация подзапросов. Реализация операций вычитания и пересечения посредством подзапросов.
- •16. Операторы модификации данных insert, update, delete.
- •17. Изменение структуры таблицы с помощью alter table.
- •18. Создание и использование представлений в субд ms sql Server.
12. Создание таблиц посредством create table. Определение ограничений целостности not null, defoult, check, primary key, foreign key.
Создание таблиц выполняется с помощью команды CREATE TABLE
CREATE TABLE <TABLE-NAME>
( <COLUMN name> <DATA type>[(<SIZE>)],
<COLUMN name> <DATA type> [(<SIZE>)] ... );
Создать таблицу P, с информацией о поставщиках
CREATE TABLE P
(pnum int, pname char(10))
При создании таблиц могут быть введены определения на вводимые значения. При этом при попытке ввода несовместимых данных будет выведена ошибка. По своей сути ограничения могут быть на один столбец и на неск. столбцов.
Ограничение на один столбец указывается после типа данных в объявлении столбца. Ограничения на несколько столбцов(всю таблицу), указываются после объявления последнего столбца таблицы.
Типы ограничений:
-
NOT NULL
Запрещает ввод NULL значения. Такое ограничение может быть задано только на один столбец.
(pnum int NOT NULL, pnum char(20) NOT NULL)
-
DEFOULT
Ограничение умолчания. Задается только как ограничение на столбец.
dprice money DEFOULT 0
-
CHECK
Ограничение этого типа задает множество значений атрибутов. Может быть задано как на столбец, так и на всю таблицу.
dprice money CHECK (dprice<50)
dname char(20) CHECK (dname like [A-Я, а-я]%
-
PRIMARY KEY
Это специальный случай комбинации NOT NULL и UNIQUE. Простой первичный ключ задается ограничением на один столбец.
CREATE TABLE P
(pnum int PRIMARY KEY, pname char(10) not NULL UNIQUE)
-
FOREIGN KEY
Ограничение внешних ключей определяется в начальной таблице и определяет ее связь с родительской.
CREATE TABLE PD
(pnum int,
dnum int,
volume int not null)
CONSTRAINT PK_PD
PRIMARY KEY (pnum, dnum)
CONSTRAINT FK_PD_P
FOREIGN KEY pnum REFERENCES P(pnum)
CONSTRAINT FK_PD_D
FOREIGN key clnum REFERENCES D(dnum)
13. Выборка данных с помощью оператора select. Использование агрегатных функций в операторе select.
Этот оператор позволяет производить выборку данных из таблиц и преобразовывать к нужному виду полученные результаты. Результатом выполнения оператора SELECT является таблица, к этой таблице вновь может быть применен оператор SELECT, таким образом запросы могут быть вложенными.
Синтаксис
SELECT <список столбцов>
FROM<список таблиц>
[WHERE<условия выбора строк>]
[GROUP BY<условия группировки строк>]
[HAVING<условия выбора групп>]
[ODER BY<условия сортировки>]
В предложении SELECT перечисляются столбцы, значения которых будут входить в результирующую таблицу. Столбцы размещаются в том же порядке в котором они указаны в SELECT. Если имя столбца содержит разделители, то оно записывается в квадратных скобках. Если столбцы разных таблиц имеют одинаковые имена то такие имена записываются как составные:
<имя таблицы>.<имя столбца>
В предложении FROM перечисляются имена таблиц которые содержат столбцы указанные в предложении SELECT.
Получить всю информацию о деталях
SELECT dnum, dname, dprice
FROM D
Список всех столбцов заменяет символ *
После служебного слова WHERE указывается условия выбора строк помещаемых в результирующую таблицу, могут быть указаны различные типы условий:
<,>,<=,>=,=,<>, OR, AND
Получить информацию о поставщиках иванов и петров.
SELECT *
FROM P
WHERE pname = ‘Иванов’ OR pname=’Петров’
Проверка на принадлежность множеству выполняется с помощью операции IN
WHERE pname IN (‘Иванов’’Петров’)
Проверка на принадлежность диапазону BETWEEN. Операция определяет max и min границы диапазона в который должно попасть значение. Обе границы считаются принадлежащими диапазону.
Вывести информацию о деталях от 10 до 20р.
SELECT*
FROM D
WHERE dprice BETWEEN 10 AND 20
Использование агрегатных функций.
SELECT может иметь агрегатные функции которые дают единственное значение для целой группы строк таблицы.
Агрегатная функция записывается в виде:
<имя функции>(<имя столбца>)
Используются следующие функции:
-
SUM – возвращает сумму значений столбца
-
MIN – возвращает минимальное значение
-
MAX – возвращает максимальное значение
-
FIRST – возвращает первое значение в столбце
-
LAST – возвращает последнее значение в столбце
-
COUNT – возвращает количество значений в столбце
-
AVG – возвращает среднее значение
Пример
Вывести общее количество поставляемых деталей.
SELECT SUM(volume) as sum
FROM PD