ТОП 10:

Типы данных в языке SQL, операторы языка SQL для создания, удаления и модификации таблиц.



Типы данных SQL разделяются на три группы:
- строковые;
- с плавающей точкой (дробные числа);
- целые числа, дата и время.

Типы данных SQL строковые

Типы данных SQL Описание
CHAR(size) Строки фиксированной длиной (могут содержать буквы, цифры и специальные символы). Фиксированный размер указан в скобках. Можно записать до 255 символов
VARCHAR(size) Может хранить не более 255 символов.
TINYTEXT Может хранить не более 255 символов.
TEXT Может хранить не более 65 535 символов.
BLOB Может хранить не более 65 535 символов.
MEDIUMTEXT Может хранить не более 16 777 215 символов.
MEDIUMBLOB Может хранить не более 16 777 215 символов.
LONGTEXT Может хранить не более 4 294 967 295 символов.
LONGBLOB Может хранить не более 4 294 967 295 символов.
ENUM(x,y,z,etc.) Позволяет вводить список допустимых значений. Можно ввести до 65535 значений вSQL Тип данных ENUM список. Если при вставке значения не будет присутствовать в списке ENUM, то мы получим пустое значение. Ввести возможные значения можно в таком формате: ENUM ( 'X', 'Y', 'Z')
SET SQL Тип данных SET напоминает ENUM за исключением того, что SET может содержать до 64 значений.

Типы данных SQL с плавающей точкой (дробные числа) и целые числа

Типы данных SQL Описание
TINYINT(size) Может хранить числа от -128 до 127
SMALLINT(size) Диапазон от -32 768 до 32 767
MEDIUMINT(size) Диапазон от -8 388 608 до 8 388 607
INT(size) Диапазон от -2 147 483 648 до 2 147 483 647
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) Дробное число, хранящееся в виде строки.

Типы данных SQL — Дата и время

Типы данных SQL Описание
DATE() Дата в формате ГГГГ-ММ-ДД
DATETIME() Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMP() Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIME() Время в формате ЧЧ:ММ:СС
YEAR() Год в двух значной или в четырехзначном формате.

Создание таблицы в базе данных производится командой CREATE TABLE.

Синтаксис:

CREATE TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement]

tbl_name- Задает имя таблицы, которая будет создана в текущей базе данных. Если никакая база данных на момен вызова команды CREATE TABLE не была принята текущей, то возникнет ошибка выполнения команды.

IF NOT EXISTS- Если указан этот параметр и производится попытка создать таблицу с дублирующим именем (т.е. таблица с таким именем в текущей БД уже есть), то таблица создана не будет и сообщение об ошибке не появиться. В противном случае таблица также создана не будет, но команда вызовет ошибку.

create_definition- Определяет внутреннюю структуру создаваемой таблицы (названия и типы полей, ключи, индексы и т.д.)

Возможные синтаксисы create_definition:

col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition]

или

PRIMARY KEY (index_col_name,...)

Или

KEY [index_name] (index_col_name,...)

Или

INDEX [index_name] (index_col_name,...)

или

UNIQUE [INDEX] [index_name] (index_col_name,...)

или

[CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition]

col_name - Задает имя столбца в создаваемой таблице.

Type- Задает тип данных для столбца col_name.

Возможные значения параметра type:

§ INT[(length)] [UNSIGNED] [ZEROFILL]

§ BIGINT[(length)] [UNSIGNED] [ZEROFILL]

§ DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]

§ FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]

§ DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]

§ CHAR(length) [BINARY]

§ VARCHAR(length) [BINARY]

§ DATE

§ DATETIME

§ BLOB

§ И др.

[NOT NULL | NULL] -Указывавет, может ли данных столбец содержать значение NULL или нет. Если не указано, то по умолчанию принимается NULL (т.е. может содержать NULL).

[DEFAULT default_value]- Задает значение по умолчанию для данного столбца. При вставке новой записи в таблицу командой INSERT если значение для поля col_name явно указано не было, то устанавливается значение default_value.

[AUTO_INCREMENT]- При вставке новой записи в таблицу поле с этим атрибутом автоматически получит числовое значение, на 1 больше самого большого значения для этого поля в текущий момент времени. Данная возможность обычно используется для генерирования уникальных идентификаторов строк. Столбец, для которого применяется атрибут AUTO_INCREMENT, должен иметь целочисленный тип. В таблице может быть только один столбец с атрибутом AUTO_INCREMENT. Так же этот столбец должен быть проиндексирован. Отсчет последовательности чисел для AUTO_INCREMENT начинается с 1. Это могут быть только положительные числа.

Следующий пример создает таблицу users с 3 полями, где первое поле - уникальный идентификатор записи, второе поле - имя пользователя, а третье поле - его возраст:

create table Water_Area(

id int auto_increment,

name varchar(70),

constraint pk_Water_Area primary key nonclustered(id))

go

create table Station(

id int,

id_Water_Area int not null,

name varchar(20) not null,

Latitude float(4) null,

Longitude float(4) null,

coordinates varchar(40) null,

coordinates_modern varchar(30) null,

comment varchar(70) null

constraint pk_Station primary key nonclustered(id))

go

Удаление таблицы.

Для удаления таблицы служит команда DROP TABLE.

DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...] [RESTRICT | CASCADE]

tbl_name - Имя удаляемой таблицы.

IF EXISTS – Если указан этот параметр, то при попытке удаления несущестующей таблицы ошибки не возникнет. В противном случае возникнет ошибка выполнения команды.

RESTRICT и CASCADE Не несут никакой функциональности. Оставлены для упрощения переноса программы.

Пример.

Drop table Station

Go

Модификация таблиц.

Для модификации служит команда Alter Table.

Синтаксис:

ALTER TABLE TableName1ADD | ALTER [COLUMN] FieldName1FieldType [(nFieldWidth [, nPrecision])][NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]][DEFAULT eExpression1][PRIMARY KEY | UNIQUE][REFERENCES TableName2 [TAG TagName1]][NOCPTRANS] |[DROP [COLUMN] FieldName]

Команда ALTER TABLE изменяет определение таблицы одним из следующих способов:

-добавляет столбец

-добавляет ограничение целостности

-переопределяет столбец (тип данных, размер, умалчиваемое значение)

-удаляет столбец

-модифицирует характеристики памяти или иные параметры

-включает, выключает или удаляет ограничение целостности или триггер.

Пример.

alter table Station

add

unique(id_Water_Area, name)

go

alter table Station

add constraint fk_Station_Relation_Water_Area foreign key (id_Water_Area) references Water_Area (id)

on delete cascade

 







Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.208.159.25 (0.01 с.)