Касперский Интернет Секьюрити для всех устройств на 2 устройства - лицензия на 1 год

Создать таблицу в базе данных .

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

Создать таблицу в базе данных, где:
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,...)
 или   FULLTEXT [INDEX] [index_name] (index_col_name,...)
 или   [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition]
 или   CHECK (expr)

type:
    TINYINT[(length)] [UNSIGNED] [ZEROFILL]
 или   SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
 или   MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
 или   INT[(length)] [UNSIGNED] [ZEROFILL]
 или   INTEGER[(length)] [UNSIGNED] [ZEROFILL]
 или   BIGINT[(length)] [UNSIGNED] [ZEROFILL]
 или   REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
 или   DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
 или   FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
 или   DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]
 или   NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]
 или   CHAR(length) [BINARY]
 или   VARCHAR(length) [BINARY]
 или   DATE
 или   TIME
 или   TIMESTAMP
 или   DATETIME
 или   TINYBLOB
 или   BLOB
 или   MEDIUMBLOB
 или   LONGBLOB
 или   TINYTEXT
 или   TEXT
 или   MEDIUMTEXT
 или   LONGTEXT
 или   ENUM(value1,value2,value3,...)
 или   SET(value1,value2,value3,...)

index_col_name:
    col_name [(length)]

reference_definition:
    REFERENCES tbl_name [(index_col_name,...)] [MATCH FULL | MATCH PARTIAL] 
        [ON DELETE reference_option] [ON UPDATE reference_option]

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT

table_options:
    TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }
 или   AUTO_INCREMENT = #
 или   AVG_ROW_LENGTH = #
 или   CHECKSUM = {0 | 1}
 или   COMMENT = "string"
 или   MAX_ROWS = #
 или   MIN_ROWS = #
 или   PACK_KEYS = {0 | 1 | DEFAULT}
 или   PASSWORD = "string"
 или   DELAY_KEY_WRITE = {0 | 1}
 или   ROW_FORMAT= { default | dynamic | fixed | compressed }
 или   RAID_TYPE= {1 | STRIPED | RAID0 } RAID_CHUNKS=#  RAID_CHUNKSIZE=#
 или   UNION = (table_name,[table_name...])
 или   INSERT_METHOD= {NO | FIRST | LAST }
 или   DATA DIRECTORY="абсолютный путь к каталогу"
 или   INDEX DIRECTORY="абсолютный путь к каталогу"

select_statement:
    [IGNORE | REPLACE] SELECT ...  (любое корректное выражение SELECT)

В версии MySQL 3.22 и более поздних имя таблицы может быть указано как db_name.tbl_name. Эта форма записи работает независимо от того, является ли указанная база данных текущей.

В версии MySQL 3.23 при создании таблицы можно использовать ключевое слово TEMPORARY. Временная таблица автоматически удаляется по завершении соединения, а ее имя действительно только в течение данного соединения. Это означает, что в двух разных соединениях могут использоваться временные таблицы с одинаковыми именами без конфликта друг с другом или с существующей таблицей с тем же именем (существующая таблица скрыта, пока не удалена временная таблица). В версии MySQL 4.0.2 для создания временных таблиц необходимо иметь привилегии CREATE TEMPORARY TABLES.

В версии MySQL 3.23 и более поздних можно использовать ключевые слова IF NOT EXISTS для того, чтобы не возникала ошибка, если указанная таблица уже существует. Следует учитывать, что при этом не проверяется идентичность структур этих таблиц.

Если не указывается ни NULL, ни NOT NULL, то столбец интерпретируется так, как будто указано NULL. Целочисленный столбец может иметь дополнительный атрибут AUTO_INCREMENT. При записи величины NULL (рекомендуется) или 0 в столбец AUTO_INCREMENT данный столбец устанавливается в значение value+1, где value представляет собой наибольшее для этого столбца значение в таблице на момент записи. Последовательность AUTO_INCREMENT начинается с 1. See section 8.4.3.126 mysql_insert_id(). Если удалить строку, содержащую максимальную величину для столбца AUTO_INCREMENT, то в таблицах типа ISAM или BDB эта величина будет восстановлена, а в таблицах типа MyISAM или InnoDB - нет. Если удалить все строки в таблице командой DELETE FROM table_name (без выражения WHERE) в режиме AUTOCOMMIT, то для таблиц всех типов последовательность начнется заново. Примечание: в таблице может быть только один столбец AUTO_INCREMENT, и он должен быть индексирован. Кроме того, версия MySQL 3.23 будет правильно работать только с положительными величинами столбца AUTO_INCREMENT. В случае внесения отрицательного числа оно интерпретируется как очень большое положительное число. Это делается, чтобы избежать проблем с точностью, когда числа переходят от положительного к отрицательному и, кроме того, для гарантии, что по ошибке не будет получен столбец AUTO_INCREMENT со значением 0. В таблицах MyISAM и BDB можно указать вторичный столбец AUTO_INCREMENT с многостолбцовым ключом. Использование атрибута AUTO_INCREMENT. Последнюю внесенную строку можно найти с помощью следующего запроса (чтобы сделать MySQL совместимым с некоторыми ODBC-приложениями):

SELECT * FROM tbl_name WHERE auto_col IS NULL

Величины NULL для столбца типа TIMESTAMP обрабатываются иначе, чем для столбцов других типов. В столбце TIMESTAMP нельзя хранить литерал NULL; при установке данного столбца в NULL он будет установлен в текущее значение даты и времени. Поскольку столбцы TIMESTAMP ведут себя подобным образом, то атрибуты NULL и NOT NULL неприменимы в обычном режиме и игнорируются при их задании. С другой стороны, чтобы облегчить клиентам MySQL использование столбцов TIMESTAMP, сервер сообщает, что таким столбцам могут быть назначены величины NULL (что соответствует действительности), хотя реально TIMESTAMP никогда не будет содержать величины NULL. Это можно увидеть, применив DESCRIBE tbl_name для получения описания данной таблицы. Следует учитывать, что установка столбца TIMESTAMP в 0 не равнозначна установке его в NULL, поскольку 0 для TIMESTAMP является допустимой величиной. Величина DEFAULT должна быть константой, она не может быть функцией или выражением. Если для данного столбца не задается никакой величины DEFAULT, то MySQL автоматически назначает ее. Если столбец может принимать NULL как допустимую величину, то по умолчанию присваивается значение NULL. Если столбец объявлен как NOT NULL, то значение по умолчанию зависит от типа столбца: Для числовых типов, за исключением объявленных с атрибутом AUTO_INCREMENT, значение по умолчанию равно 0. Для столбца AUTO_INCREMENT значением по умолчанию является следующее значение в последовательности для этого столбца. Для типов даты и времени, отличных от TIMESTAMP, значение по умолчанию равно соответствующей нулевой величине для данного типа. Для первого столбца TIMESTAMP в таблице значение по умолчанию представляет собой текущее значение даты и времени.

Для строковых типов, кроме ENUM, значением по умолчанию является пустая строка. Для ENUM значение по умолчанию равно первой перечисляемой величине (если явно не задано другое значение по умолчанию с помощью директивы DEFAULT). Значения по умолчанию должны быть константами. Это означает, например, что нельзя установить для столбца даты в качестве значения по умолчанию величину функции, такой как NOW() или CURRENT_DATE. KEY является синонимом для INDEX. В MySQL ключ UNIQUE может иметь только различающиеся значения. При попытке добавить новую строку с ключом, совпадающим с существующей строкой, возникает ошибка выполнения команды. PRIMARY KEY представляет собой уникальный ключ KEY с дополнительным ограничением, что все столбцы с данным ключом должны быть определены как NOT NULL. В MySQL этот ключ называется PRIMARY (первичный). Таблица может иметь только один первичный ключ PRIMARY KEY. Если PRIMARY KEY отсутствует в таблицах, а некоторое приложение запрашивает его, то MySQL может превратить в PRIMARY KEY первый ключ UNIQUE, не имеющий ни одного столбца NULL. PRIMARY KEY может быть многостолбцовым индексом. Однако нельзя создать многостолбцовый индекс, используя в определении столбца атрибут ключа PRIMARY KEY. Именно таким образом только один столбец будет отмечен как первичный. Необходимо использовать синтаксис PRIMARY KEY(index_col_name, ...). Если ключ PRIMARY или UNIQUE состоит только из одного столбца и он принадлежит к числовому типу, то на него можно сослаться также как на _rowid (новшество версии 3.23.11). Если индексу не назначено имя, то ему будет присвоено первое имя в index_col_name, возможно, с суффиксами (_2, _3, ...), делающими это имя уникальным. Имена индексов для таблицы можно увидеть, используя SHOW INDEX FROM tbl_name. SHOW Syntax. Только таблицы типов MyISAM, InnoDB и BDB поддерживают индексы столбцов, которые могут иметь величины NULL. В других случаях, во избежание ошибки, необходимо объявлять такие столбцы как NOT NULL. С помощью выражения col_name(length) можно указать индекс, для которого используется только часть столбца CHAR или VARCHAR. Это поможет сделать файл индексов намного меньше.

Индексацию столбцов BLOB и TEXT поддерживают только таблицы с типом MyISAM. Назначая индекс столбцу с типом BLOB или TEXT, всегда НЕОБХОДИМО указывать длину этого индекса:

CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));

При использовании выражений ORDER BY или GROUP BY со столбцом типа TEXT или BLOB используются только первые max_sort_length байтов.

Пример отображения командного окна
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.12-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
3 rows in set (0.00 sec)

mysql> CREATE DATABASE primer;
Query OK, 1 row affected (0.02 sec)

mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
| primer   |
| test     |
+----------+
4 rows in set (0.00 sec)

mysql> USE primer;
Database changed
mysql> CREATE TABLE klient (
    -> kod int(5) NOT NULL auto_increment,
    -> fio tinytext,
    -> pol tinyint(1) NOT NULL default '0',
    -> PRIMARY KEY  (kod)
    -> )TYPE=MyISAM;
Query OK, 0 rows affected, 1 warning (0.08 sec)

mysql> DESCRIBE klient;
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| kod   | int(5)     |      | PRI | NULL    | auto_increment |
| fio   | tinytext   | YES  |     | NULL    |                |
| pol   | tinyint(1) |      |     | 0       |                |
+-------+------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql>_

В данном примере мы посмотрели список существующих баз данных, Затем создали базу данных "primer" и опять посмотрели список. Убедились, что база данных создана. Далее открыли базу данных "primer", создали таблицу со столбцами "kod", "fio", "pol". Затем посмотрели структуру таблицы. Набираемые команды выделены цветом.

При наборе "длинной" команды можно нажимать клавишу ENTER для перехода на новую строку.


MySQL



© Copyright 2005 www.e-inform.ru
|