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 увеличивается на единицу каждый раз при вставке строки. |