Лекция 16 Лекция 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 (Семестр = 1) OR (Семестр
Ограничения целостности: определение значения по умолчанию Год_поступления INTEGER DEFAULT YEAR(GETDATE()) Функция GETDATE()- задает текущую дату Функция YEAR() - выделяет из даты компонент, определяющий год
Операции реляционной алгебры в SQL объединение UNION UNION [ALL] [CORRESPONDING [BY {Имя_столбца[,...]}]} пересечение INTERSECT INTERSECT [ALL] [CORRESPONDING [BY {Имя_столбца[,...]}]} разность EXCEPT EXCEPT [ALL] [CORRESPONDING [BY {Имя_столбца[,...]}]} произведение,...,n FROM { } [,...,n] ::= соединение FROM { } [,...,n] ::= INNERLEFTRIGHTFULLOUTERJOIN [INNER | {{LEFT | RIGHT | FULL }[OUTER] } ] JOIN проекция SELECT DISTINCT SELECT DISTINCT выборка WHERE WHERE