ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.01.2024
Просмотров: 36
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лекция 16 Основы SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Реализация операций реляционной алгебры в SQL
Инструкции SQL
Инструкция SQL
команда
предложения
обязательные
CREATE (создать), INSERT (добавить), SELECT (выбрать), DELETE (удалить)
WHERE (где), FROM (откуда), INTO (куда)
+
=
необязательные
Имена в SQL
<Имя_пользователя>.<Имя_таблицы>.<Имя_столбца>
<Имя_пользователя>.<Имя_таблицы>
<Имя_таблицы>.<Имя_столбца>
Объект
Имя
Типы данных
Целые числа - INT, SMALLINT
Десятичные числа - NUMERIC, DECIMAL
Числа с плавающей запятой - REAL, FLOAT
Строки символов постоянной длины - CHAR
Строки символов переменной длины - VARCHAR
Денежные величины - MONEY, SMALLMONEY
Дата и время - DATETIME, SMALLDATETIME
Булевы величины - BIT
Длинный текст - TEXT
Неструктурированные потоки байтов - BINARY, VARBINARY, IMAGE
Встроенные функции
ISNUMERIC(выражение) | Определяет, имеет ли выражение числовой тип данных |
SIGN(число) | Определяет знак числа |
RAND(целое число) | Вычисляет случайное число с плавающей запятой в интервале от 0 до 1 |
ROUND(число, точность) | Выполняет округление числа с указанной точностью |
POWER(число, степень) | Возводит число в степень |
SQRT(число) | Извлекает квадратный корень из числа |
LEN(строка) | Вычисляет длину строки в символах |
LTRIM(строка) | Удаляет пробелы в начале строки |
RTRIM(строка) | Удаляет пробелы в конце строки |
LEFT(строка, количество) | Возвращает указанное количество символов строки, начиная с самого левого символа |
RIGHT(строка,количество) | Возвращает указанное количество символов строки, начиная с самого правого символа |
GETDATE() | Возвращает текущее системное время |
ISDATE(строка) | Проверяет строку на соответствие одному из форматов даты и времени |
DATEADD(тип, число,дата) | Прибавляет к дате указанное число единиц заданного типа (год, месяц, день, час и т.п.) |
CAST(выражение AS тип) | Преобразование типов |
Ограничения целостности: первичный ключ таблицы
ID_Дисциплина INTEGER NOT NULL PRIMARY KEY
PRIMARY KEY (ID_Дисциплина, ID_Студент)
Ограничения целостности: внешний ключ таблицы
FOREIGN KEY (<список столбцов внешнего ключа>)
REFERENCES <имя родительской таблицы>
[[<список столбцов родительской таблицы>]
[ON DELETE {NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
[ON UPDATE {NO ACTION | CASCADE | SET DEFAULT| SET NULL}]
ALTER TABLE Сводная_ведомость
ADD FOREIGN KEY (ID_План)
REFERENCES Учебный_план
ALTER TABLE Сводная_ведомость
ADD FOREIGN KEY (ID_Студент)
REFERENCES Студенты
Ограничения целостности: определение уникального столбца
На уровне столбца:
CREATE TABLE Дисциплины
(ID_Дисциплина INTEGER NOT NULL PRIMARY KEY,
Наименование VARCHAR(20) NOT NULL UNIQUE)
На уровне таблицы:
CREATE TABLE Дисциплины
(ID_Дисциплина INTEGER NOT NULL,
Наименование VARCHAR(20) NOT NULL,
PRIMARY KEY (ID_Дисциплина),
UNIQUE (Наименование))
Ограничения целостности: определение проверочных ограничений
На уровне столбца:
Семестр INTEGER NOT NULL
CHECK ((Семестр >= 1) OR (Семестр <= 10))
На уровне таблицы:
CHECK ((Семестр >= 1) OR (Семестр <= 10)))
Ограничения целостности: определение значения по умолчанию
Год_поступления INTEGER DEFAULT YEAR(GETDATE())
Функция GETDATE() - задает текущую дату
Функция YEAR() - выделяет из даты компонент, определяющий год
Операции реляционной алгебры в SQL
объединение | UNION [ALL] [CORRESPONDING [BY {Имя_столбца[, ...]}]} |
пересечение | INTERSECT [ALL] [CORRESPONDING [BY {Имя_столбца[, ...]}]} |
разность | EXCEPT [ALL] [CORRESPONDING [BY {Имя_столбца[, ...]}]} |
произведение | FROM { <Источник_данных> } [,...,n] <Источник_данных> ::= <имя_таблицы> |
соединение | FROM { <Источник_данных> } [,...,n] <Источник_данных> ::= <связка_таблиц> <тип_связывания> ::= [INNER | {{LEFT | RIGHT | FULL }[OUTER] } ] JOIN |
проекция | SELECT DISTINCT <Список_выбора> |
выборка | WHERE <условие_отбора> |