- •Агрегатные функции
- •Группировка
- •Умножение таблиц самих на себя
- •I способ
- •II способ
- •Операция in
- •Запросы на добавление новых записей (строк)
- •Запросы на удаление записей (строк)
- •Запросы на изменение записей (строк)
- •Ограничения
- •Запросы на создание таблиц
- •Запросы на удаление таблиц
- •Запросы на изменение таблиц
- •Именованные ограничения
Запросы на создание таблиц
Синтаксис:
CREATE TABLE имя_таблицы
(
имя_поля1 тип_поля1 ограничения_для_поля1,
имя_поля2 тип_поля2 ограничения_для_поля2,
. . .
имя_поля_n тип_поля_n ограничения_для_поля_n,
ограничения для таблицы
)
Основные типы данных
char(длина) - строка длиной до 8000 байт
datetime - дата и время
float – вещественное значение
Int - целое значение
money – денежный тип
Пример:
CREATE TABLE zakazchiki
(
Nzakazchika int PRIMARY KEY,
FIO char(30) NOT NULL,
Adres char(15)
)
Запросы на удаление таблиц
Синтаксис:
DROP TABLE имя_таблицы
Пример:
DROP TABLE Zakazchiki
Запросы на изменение таблиц
- Добавление поля
Синтаксис:
ALTER TABLE имя_таблицы ADD имя_поля тип_поля ограничения
Пример:
ALTER TABLE Zakazchiki ADD Telefon char(10)
----------------------------------------------------------------------------------------
- Удаление поля
Синтаксис:
ALTER TABLE имя_таблицы DROP COLUMN имя_поля
Пример:
ALTER TABLE Zakazchiki DROP COLUMN Adres
----------------------------------------------------------------------------------------
- Изменение поля
Синтаксис:
ALTER TABLE имя_таблицы ALTER COLUMN имя_поля тип_поля ограничения
Пример:
ALTER TABLE Zakazchiki ALTER COLUMN FIO char(35)
Запросы на добавление новых записей (строк)
Синтаксис:
INSERT INTO имя_таблицы (список_полей_через_запятую)
VALUES (список_значений_через_запятую)
Примеры:
INSERT INTO Zakazchiki (Nzakazchika, FIO)
VALUES (4, «Петров П.П.»)
INSERT INTO Zakazchiki
VALUES (4, «Петров П.П.», «М»)
Синтаксис:
INSERT INTO имя_таблицы (список_полей_через_запятую)
SELECT список_полей_через_запятую
FROM список_таблиц_через_запятую
WHERE условие_отбора_строк
Пример:
INSERT INTO MyTable (PriKey, Description)
SELECT ForeignKey, Description
FROM SomeView
Запросы на удаление записей (строк)
Синтаксис:
DELETE имя_таблицы
или
DELETE FROM имя_таблицы
WHERE условие_отбора_строк
Пример:
DELETE FROM Zakazchiki
WHERE Adres=”М”
Запросы на изменение записей (строк)
Синтаксис:
UPDATE имя_таблицы
SET имя_поля=новое_значение_поля
WHERE условие_отбора_строк
Пример:
UPDATE Zakazchiki
SET Adres=”Санкт-Петербург”
WHERE Adres=”СПб”
Ограничения
CHECK (логическое выражение)
CREATE TABLE jobs
(
job_id int,
job_desc char(50) NOT NULL,
min_lvl int NOT NULL
CHECK (min_lvl >= 10),
max_lvl int NOT NULL
CHECK (max_lvl <= 250),
CHECK (min_lvl<= max_lvl)
)
CHECK (emp_id LIKE
'[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' OR
emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')
PRIMARY KEY
CREATE TABLE jobs
(
job_id int PRIMARY KEY,
job_desc char(50) NOT NULL,
min_lvl tinyint NOT NULL
CHECK (min_lvl >= 10),
max_lvl tinyint NOT NULL
CHECK (max_lvl <= 250),
CHECK (min_lvl< max_lvl)
)
CREATE TABLE jobs
(
job_id int,
job_desc char(50) NOT NULL,
min_lvl tinyint NOT NULL
CHECK (min_lvl >= 10),
max_lvl tinyint NOT NULL
CHECK (max_lvl <= 250),
CHECK (min_lvl< max_lvl)
PRIMARY KEY (job_id,…)
)
м.б. несколько полей через запятую, составляющих первичный ключ
NULL | NOT NULL
CREATE TABLE jobs
(
job_id int PRIMARY KEY,
job_desc char(50) NOT NULL,
min_lvl tinyint NOT NULL
CHECK (min_lvl >= 10),
max_lvl tinyint NOT NULL
CHECK (max_lvl <= 250),
CHECK (min_lvl< max_lvl)
)
UNIQUE
5) FOREIGN KEY...REFERENCES
job_id int NOT NULL
REFERENCES jobs(job_id) //ограничение уровня поля
или
FOREIGN KEY (job_id) REFERENCES jobs(job_id) //ограничение уровня таблицы
