Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

Do you speak SQL?

GLAZъ (glazy@mail.ru)

Спецвыпуск Xakep, номер #028, стр. 028-044-2


- REAL [(макс. длина, число десят. чисел)] или DOUBLE [(макс. длина, число десят. чисел)] - число двойной точности.

Тип "Дата и время" хранит инфу о дате и времени :). Типы следующие:

- DATE - хранит дату в формате YYYY-MM-DD или YY-MM-DD.

- TIME - хранит время в формате HH:MM:SS.

- TIMESTAMP - автоматически изменяется при вставке или обновлении. Формат YYMMDDHHMMSS или YYYYMMDDHHMMSS.

Двоичные типы предназначены для хранения блоков двоичных данных. Поддерживаются следующие типы:

- BLOB - двоичный объект длиной в 65535 байт.

Есть еще всякие LONGBLOB (длиной в 2^32 байт), MEDIUMBLOB (длиной в 16777216 байт), TINYBLOB (длиной в 255 байт).

Типы данных строковой группы используются для хранения символьных строк. Есть такие типы:

- CHAR(длина) - строка фиксированной длины (параметр "длина" определяет, какое количество символов резервируется в памяти, от 1 до 255).

- VARCHAR(длина) - строка переменной длины. В отличие от CHAR параметр "длина" указывает максимальное число символов в строке. Например: столбец у нас определен как VARCHAR(100), а записали мы туда всего 7 символов. Следовательно, в памяти выделится 7 байт, а не 100, как выделилось бы, используя мы CHAR.

Если тебе нужно запихнуть в базу большой текстовый блок, то символьными типами ты не сможешь воспользоваться, так как они слишком малы. На помощь приходят текстовые типы данных. Я укажу один основной: TEXT. В нем под каждый символ отводится по одному байту.

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

Создание таблиц

Таблица создается командой

CREATE TABLE имя_таблицы (<Имя_столбца> <тип_данных> [(<размер>)]);

Вообще, определение столбцов может быть разным. Я показал наиболее примитивный способ. Давай создадим нашу первую таблицу.

CREATE TABLE news (

-> news_id INT NOT NULL AUTO_INCREMENT,

-> heading VARCHAR(50),

-> body TEXT,

-> date DATE,

-> author VARCHAR(15),

-> mail VARCHAR(30),

-> PRIMARY KEY(news_id));

В конце каждой строчки жмахай Enter. Компилятор, пока не встретит (;), не начнет выполнение кода. Если после всего, что ты проделал, ты получишь ответ: "ERROR трали-вали", значит, ты где-то не попал по клаве. Переделывай. А вот если сервер вернет: "Query OK, rows affected трали-вали", то я тебя поздравляю! У тебя теперь есть своя таблица. Давай над ней глумиться.

Разбор полетов

Напечатай в командной строке "describe news;" и ты получишь такой ответ:

Давай разбираться. Графа Field показывает, какие столбцы у тебя есть. Столбец Type расскажет тебе о типах тех столбцов, которые указаны в графе Field. Если в следующей графе стоит YES, значит, значение поля может быть NULL. Наличие PRI в графе сообщает о том, что данное поле является индексным при сортировке. В графе Default указывается, какие значение указываются по умолчанию. И последняя графа Extra указывает, какими дополнительными атрибутами обладает поле. В данном случае поле news_id увеличивается на единицу каждый раз при вставке строки.

Назад на стр. 028-044-1  Содержание  Вперед на стр. 028-044-3