Слайд 14. Язык структурированных запросов - SQL
Слайд 24.1 Свойства отношения (таблицы)
Идентифицируется уникальным именем;
Имеет конечное количество столбцов;
Имеет конечное
число строк;
Столбцы уникальны;
Столбцы однородны по типу;
Номер для строки не определен;
Ячейки
могут не содержать значений.
Слайд 34.2 Операции языка SQL
Управление таблицами;
Изменение содержания таблиц;
Операции c таблицами.
Слайд 44.3 Управление таблицами (DDL)
Создание таблиц;
Изменение структуры таблиц;
Удаление таблиц.
Слайд 54.4 Создание таблиц
CREATE TABLE сотрудник(
код_сотрудника INT NOT NULL PRIMARY KEY,
имя
VARCHAR,
фамилия VARCHAR NOT NULL;
отчество VARCHAR,
дата_рождения DATE);
Слайд 64.5 Типы данных
INT 4
SMALLINT 2
FLOAT 4-8
CHAR(разм.)
VARCHAR (макс. разм.)
BLOB
DATE
TIME
Слайд 7CREATE TABLE Совместитель
(код_совместителя INT NOT NULL,
код_отдела INT NOT NULL,
ФИО VARCHAR NOT NULL,
коэфф_занятости INT,
PRIMARY KEY (код_совместителя),
FOREIGN KEY (код_отдела) REFERENCES отдел)
Слайд 104.6 Изменение структуры таблиц
ALTER TABLE сотрудник
ADD COLUMN код_отдела INT,
ADD COLUMN
оклад FLOAT;
Слайд 114.7 Удаление таблиц
DROP TABLE сотрудник;
DROP TABLE совместитель RESTRICT;
DROP TABLE отдел
CASCADE;
Слайд 124.8 Изменение содержания таблиц (DML)
INSERT INTO сотрудник
(фамилия, имя, отчество,
оклад)
VALUES (‘Петров’, ‘Иван’, ‘Иванович’, 4500);
INSERT INTO сотрудник
(код_совместителя, ФИО,
Код_отдела)
SELECT код_совместителя, ФИО, Код_отдела
FROM совместитель
WHERE стаж=5;
Слайд 13UPDATE Совместитель
SET разряд=разряд+1
WHERE разряд
*
FROM сотрудник
WHERE дата_рождения
Слайд 144.9 Операции с таблицами
Проекция;
Ограничение;
Объединение;
Декартово произведение.
Слайд 154.10 Проекция
SELECT фамилия, имя, отчество FROM сотрудник;
SELECT DISTINCT имя FROM
сотрудник;
SELECT фамилия, имя, отчество
FROM сотрудник
ORDER BY фамилия DESC;
Слайд 164.11 Ограничение
SELECT *
FROM сотрудник
WHERE оклад
детали.Цвет, детали.Город
FROM детали
WHERE детали.Город ‘Кострома’
AND детали.Вес >270
ORDER BY Город DESC;
Слайд 174.12 Объединение
SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Отдел.Название
FROM Сотрудник INNER JOIN Отдел
ON Сотрудник.Код_сотрудника = Отдел.Код_сотрудника;
Слайд 184.13 Декартово произведение
SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Праздник.Поздравление
FROM Сотрудник, Праздник;
Слайд 195. Операции с данными
5.1 Арифметические функции
ABS(x) абсолютное значение x
SQRT(x) квадратный корень от
x
MAX(x, y, ...) значение наибольшего элемента из списка x, y, ...
MIN(x,y,
...) значение наименьшего элемента из списка x, y, ...
Слайд 20SELECT
[Колич_склад]-[Колич_заказ] AS Expr1,
ABS([Колич_склад]-[Колич_заказ]) AS Expr2
FROM Products
Слайд 215.2 Строковые функции
LEFT(s,n) первые n символов строки s
RIGHT(s.n) последние n символов
строки s
SUBSTRING(s, m, n) строка, получаемая копированием n символов из строки
s, начиная с m-ого символа строки s
LCASE(s) строка, полученная из s преобразованием всех букв в строчные
UCASE(s) строка, полученная из s преобразованием всех букв в прописные
CONCAT(s1, s2, ...) строка, полученная конкатенацией (слиянием) строк s1, s2, ...
LENGTH(s) длина строки s
Слайд 22SELECT
SUBSTRING([First_Name],1,1] As Initial,
[Last_Name]
FROM Employees
______________________________________________
Initial
Last Name
----------------------------------------------------------------------
Н
Васильев
П Грушко
Д Утряхина
Слайд 235.3 Операторы и функции, возвращающие логическое значение (1 – «истина»,
0 – «ложь»)
x = y равно
x != y не равно
x
>y больше
x < y меньше
x >= y больше или равно
x <= y меньше или равно
NOT l - 1, если l=0, 0, если l=1
l1 AND l2 результат логической операции “И” над l1 и l2
l1 OR l2 результат логической операции “ИЛИ” над l1 и l2
Слайд 24BETWEEN (x, y, z) результат выполнения логического выражения (x>=y AND x
(v) 1, если v имеет значение “пусто” (NULL) 0, в противном
случае
s LIKE образец 1, при удачном сопоставлении строки s с образец или 0, в противном случае
s NOT LIKE образец 0, при удачном сопоставлении строки s с образец или 1, в противном случае
Слайд 25SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Праздник.Поздравление
FROM Сотрудник, Праздник
WHERE (((Сотрудник.Фамилия) LIKE "*на"));
Слайд 265.4 Агрегативные функции (GROUP BY)
SUM(x) сумма значений столбца x результирующей таблицы
MAX(x) наибольшее
значение из всех значений ячеек столбца x
MIN(x) наименьшее значение из всех
значений ячеек столбца x
AVG(x) среднее значение для всех значений ячеек столбца x
COUNT(x) общее количество ячеек в столбце x
Слайд 27
SELECT Код_детали, Наимен,
SUM (деталь.Колич)
AS Всего
FROM деталь
GROUP BY Наимен;
SELECT Код_детали, Наимен, Вес, Объем
SUM (Вес) AS Полный_вес
FROM деталь
GROUP BY Наимен;
HAVING SUM (Объем) >10;
Слайд 28SELECT Max(Сотрудник.стаж) FROM Сотрудник;