Материалы к экзамену / SQL
.docCREATE TABLE название таблицы – создание таблицы;
CREATE TABLE название таблицы (описание столбца тип [огр-е цел-ти],…);
CREATE TABLE название таблицы (описание столбца тип [огр-е цел-ти] PRIMARY,…);
PRIMARY KEY(описание столбцов);
CREATE TABLE название таблицы (описание столбца тип [огр-е цел-ти] UNIQUE,…);
UNIQUE (описание столбцов) – ключи кандидаты;
CREATE TABLE название таблицы (описание столбца тип [огр-е цел-ти] NOT NULL,…) –обязательность;
DEFAULT (значение) – значение по умолчанию;
CHECK (условие) – проверочное условие;
CREATE TABLE Успеваемость (Зач_Кн CHAR(6), Код_пр CHAR(6), Оценка NUMBER(1))
PRIMARY KEY (Зач _Кн, Код_пр)
FOREIGN KEY (Зач _Кн) REFERENCES Студент (Зач _Кн)
ON DELETE CASCADE
ON UPDATE CASCADE.
DROP TABLE Студент – удаление таблицы
DROP описание столбца – удаляется описание столбца
ADD описание столбца, тип столбца… – добавление столбца
ALTER TABLE – создание таблицы
INSERT INTO имя таблицы {[список столбцов], VALUES (список значений)}построчное занесение данных в таблицу
INSERT INTO имя таблицы {[список столбцов], SELECT…} заполнение таблицы строками сформулированными командой SELECT
DELETE FROM имя таблицы – очищение таблицы
DELETE FROM имя таблицы WHERE условия которому должны удовлетворять удаляемые строки
UPDATE TABLE имя таблицы SET имя Столбца = ”новое значение,…”
UPDATE TABLE имя таблицы SET имя Столбца = ”новое значение,…”
WHERE [условие]
[ORDER BY критерий сортировки] – критерий в котором будут отсортированы строки результирующей таблицы
[GROUP BY критерий группирования] – объединение строк исходных таблиц с одинаковым значением критерия группирования.
[HAVING условие отбора группы] – для сгруппированной таблицы это условие для горизонтального отбора целых групп для помещения в результат, аналогично как WHERE задаёт условие отбора отдельных строк.
[INTO цель] – задает, куда и в какой форме поместить результирующую таблицу
S (Sno, Sname, Status, City)
1) Извлечь все сведения о всех поставщиках
SELECT * ~ SELECT S ~ SELECT Sno, Sname, Status, City
FROM S
2) Извлечь Sno, Sname поставщиков из Парижа;
Извлечь Sno, Sname поставщиков из Парижа, Лондона и Москвы;
SELECT Sno, Sname
FROM S
WHERE City=’Paris’
WHERE City=’Paris’ OR City=‘London’ OR City=‘Moscow’ (можно исп-ть AND, OR, NOT)
WHERE City in (‘Paris’, ‘London’, ‘Moscow’)
3)Вывести поставщиков со статусом >20 и <90
SELECT Sno, Sname Status
FROM S
WHERE Status >20 AND Status <90
WHERE Status BETWEEN 20 AND 90
4)Вывести сведения о поставщиках упорядоченные по значению статуса (по возрастанию), а для поставщиков с одинаковым статусом по имени в обратном алфавитном порядке
SELECT Sno, Sname Status
FROM S
ORDER BY Status ASC (по возрастанию)
Sname DESC (по убыванию)
5)Извлечь поставщиков у которых в названии города имеется буква ‘d’
SELECT Sno, Sname Status
FROM S
WHERE City LIKE %d%
6) Вывести сведения о поставщиках и их статусе, причём значение статуса должно быть поделено на 100.
SELECT Sno, Sname Status/100 AS PStatus
FROM S
7)Вывести список городов поставщиков: т.к. в одном городе может быть несколько поставщиков, то результат может создать дубликаты по числу поставщиков в этом городе. В SQL дубликаты подобного рода не устраняются.
SELECT DISTINCT City
FROM S
~ указание устранить дубликаты строк в рез-щей таблице
MIN (столбец) MAX(столбец) AVG(столбец)
COUNT (*) – подсчитать число строк в группе
COUNT (DISTINCT имя столбца) - подсчитать число строк с различными значениями указателя столбца.
Эти функции можно рассматривать без группирования, тогда вся таблица рассматривается как одна группа.
8) Подсчитать общее количество поставщиков
SELECT COUNT (*) AS кол-во поставщиков
FROM S
9) Вывести названия городов с указанием количества поставщиков в них
SELECT City COUNT (*) AS кол-во поставщиков
FROM S
GROUP BY City
10) Вывести сведения о городах с указанием числа различных уровней среднего статуса поставщиков из этого города
SELECT City COUNT (DISTINCT Status) AS кол-во поставщиков
FROM S
GROUP BY City
11) Вывести города с указанием минимального, максимального, среднего статуса поставщиков из этого города:
SELECT City MIN (Status) AS minSt MAX(Status) AS maxSt AVG(Status) AS avgSt
FROM S
GROUP BY City