ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.01.2024
Просмотров: 121
Скачиваний: 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 KEYPRIMARY 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 NULLUNIQUE) На уровне таблицы: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 DEFAULTYEAR(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 <условие_отбора> |