Главная страница

лекция. Инструкция sql команда предложения


Скачать 301 Kb.
НазваниеИнструкция sql команда предложения
Анкорлекция
Дата07.04.2023
Размер301 Kb.
Формат файлаppt
Имя файла958089.ppt
ТипИнструкция
#1043348

Лекция 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 <условие_отбора>



написать администратору сайта