- •ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО
- •Содержание
- •Общие сведения
- •SQL является, прежде всего, информационно- логическим языком, предназначенным для описания, изменения и извлечения
- •Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять
- •Со временем SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления
- •При всех своих изменениях SQL остаётся самым распространённым лингвистическим средством для взаимодействия прикладного
- •2. Типы данных SQL
- •2.1 Типы данных SQL строковые
- •Типы данных
- •2.2 Типы данных SQL с плавающей точкой и целые
- •Типы данных Описание SQL
- •2.3 Типы данных SQL дата и время
- •3. Операторы создания схемы БД
- •в квадратные скобки (например, [NOT NULL]) заключается необязательная часть команды
- •Операторы создания БД:
- •Создание таблицы:
- •NOT NULL - в этом случае элементы столбца всегда должны иметь определенное значение
- •Пример: создание базы данных publications: CREATE DATABASE publications;
- •CREATE TABLE titles (title_id INT PRIMARY KEY, title VARCHAR(255) NOT NULL, yearpub INT,
- •Удаление таблицы:
2.2 Типы данных SQL с плавающей точкой и целые
Типы данных Описание SQL
TINYINT(size) Может хранить числа от -128 до 127
SMALLINT(size) Диапазон от -32 768 до 32 767
MEDIUMINT(siz Диапазон от -8 388 608 до 8 388 607 e)
INT(size) |
Диапазон от -2 147 483 648 до 2 147 483 647 |
Типы данных Описание SQL
BIGINT(size) Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
FLOAT(size,d) Число с плавающей точкой небольшой точности.
DOUBLE(size,d) Число с плавающей точкой двойной точности.
DECIMAL(size,d Дробное число, хранящееся в виде строки.
)
2.3 Типы данных SQL дата и время
Типы данных |
Описание |
SQL |
|
DATE() |
Дата в формате ГГГГ-ММ-ДД |
|
|
DATETIME() |
Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
|
|
TIMESTAMP() |
Дата и время в формате timestamp. Однако при получении |
|
значения поля оно отображается не в формате timestamp, а в |
|
виде ГГГГ-ММ-ДД ЧЧ:ММ:СС |
|
|
TIME() |
Время в формате ЧЧ:ММ:СС |
|
|
YEAR() |
Год в двух значной или в четырехзначном формате. |
|
|
3. Операторы создания схемы БД
При описании команд предполагается, что:
текст, набранный строчными буквами (например, CREATE TABLE) является обязательным
текст, набранный прописными буквами и заключенный в угловые скобки (например, <имя_базы_данных>) обозначает переменную, вводимую пользователем
в квадратные скобки (например, [NOT NULL]) заключается необязательная часть команды
взаимоисключающие элементы команды разделяются вертикальной чертой (например, [UNIQUE | PRIMARY KEY]).
Операторы создания БД:
Команда |
Описание |
|
|
|
|
CREATE DATABASE |
Создание базы данных. |
|
<имя_базы_данных> |
||
|
||
DROP DATABASE <имя_базы_данных> |
Удаление базы данных. |
|
|
|
Создание таблицы:
CREATE TABLE <имя_таблицы> (<имя_столбца> <тип_столбца>
[NOT NULL]
[UNIQUE | PRIMARY KEY]
[REFERENCES <имя_мастер_таблицы> [<имя_столбца>]] , ...)
Пользователь обязан указать имя таблицы и список столбцов. Для каждого столбца обязательно указываются его имя и тип (см. таблицу в предыдущем разделе), а также опционально могут быть указаны параметры:
NOT NULL - в этом случае элементы столбца всегда должны иметь определенное значение (не NULL)
один из взаимоисключающих параметров UNIQUE - значение каждого элемента столбца должно быть уникальным или PRIMARY KEY - столбец является первичным ключом.
REFERNECES <имя_мастер_таблицы> [<имя_столбца>] - эта конструкция определяет, что данный столбец является внешним ключом и указывает на ключ какой мастер_таблицы он ссылается.
Пример: создание базы данных publications: CREATE DATABASE publications;
CREATE TABLE authors (au_id INT PRIMARY KEY, author VARCHAR(25) NOT NULL);
CREATE TABLE publishers (pub_id INT PRIMARY KEY, VARCHAR(255)); publisher VARCHAR(255) NOT NULL,url
CREATE TABLE titles (title_id INT PRIMARY KEY, title VARCHAR(255) NOT NULL, yearpub INT,
pub_id INT REFERENCES publishers(pub_id)); CREATE TABLE titleautors (au_id INT REFERENCES authors(au_id),
title_id INT REFERENCES titles(title_id)); CREATE TABLE wwwsites (site_id INT PRIMARY KEY,
site VARCHAR(255) NOT NULL, url VARCHAR(255));
CREATE TABLE wwwsiteauthors (au_id INT REFERENCES authors(au_id), site_id INT REFERENCES wwwsites(site_id));