Программирование >>  Программный интерфейс приложений 

1 ... 202 203 204 [ 205 ] 206 207 208 ... 264


разделяются запятыми. Каждый определенный спецификатор применяется ко всем типам таблиц (если иное не указано).

AUT0 INCREMENT = П. Первое значение auto INCREMENT, генерируемое для таблицы (используется только для таблиц MylSAM).

AVG ROW LENGTH = /7. Приблизительная средняя длина строки таблицы. Эта опция используется MySQL для расчета максимального размера файла данных и требуется только для таблиц со столбцами типов blob или TEXT, размеры файлов которых могут превышать 4 Гбайта.

CHECKSUM = {О I 1}. Если эта опция имеет значение \, MySQL рассчитывает контрольную сумму для каждой строки таблицы. Это незначительно отражается на скорости обновления таблицы, однако повышает шансы успешной проверки таблицы (используется только для таблиц MylSAM).

COMMENT = string . Комментарий к таблице, максимальная длина которого не должна превышать 60 символов.

DELAY KEY WRITE = (О 1 1}. Если эта ОПЦИЯ имеет значение \, кэш индекса обновляется периодически пля всей таблицы, а не после каждой операции вставки (используется только для таблиц формата MylSAM).

MAX ROWS = п. Максимальное число строк, которое планируется хранить в таблице.

MINROWS = п. Минимальное число строк, которое планируется хранить в таблице.

PACK KEYS = {О 1 1). Если эта опция имеет значение L блоки индексов группируются с более высоким процентным соотношением, чем обычно. Это, безусловно, отражается на скорости обновления, однако повышается эффективность извлечения. Если же эта опция имеет значение О, блоки индексов не фуппируются специальным образом. Другими словами, фуппируются только индексы с ключевыми значения\ш типов CHAR или VARCHAR длиной 8 символов и более (используется только для таблиц формата MylSAM и формата ISAM).

PASSWORD = string . Определяет пароль для шифрования файла описания таблицы. Как правило, эта опция не приводит к желаемому эффекту, поскольку активизируется только для определенных клиентов.

TYPE = (ISAM I MYISAM heap). Определяет формат хранения таблицы. Основные характеристики форматов хранения описаны в разделе Спецификация типа памяти главы 3, Синтаксис и использование языка SQL . В версии MySQL 3.23 и более поздних по умолчанию используется формат MylSAM. В более ранних версиях MySQL оператор CREATE TABLE создает таблицы в формате ISAM.



При добавлении предложения select statement (запрос select) таблица создается с помошью результируюшего набора, возвращаемого запросом. Строки, содержащие дублирующие значения в столбцах уникального индекса, либо пропускаются, либо заменяются существующими строками. Рещение об этом принимается в зависимости от наличия слова ignore или replace. Если НИ ОДНО ИЗ НИХ не определено, возникает ошибка, и все оставшиеся записи пропускаются.

Предположим, например, что необходимо создать таблицу с тремя столбцами. Столбец id представляет собой ключ pri>4ARY key, а два столбца имени индексируются вместе. Можно воспользоваться следующим оператором:

CREATE TABLE customer (

id SMALLINT UNSIGNED NOT NULL AUTO INCREMENT,

last name CHAR(30) NOT NULL,

first name CHAR(20) NOT NULL,

PRIMARY KEY (id),

INDEX {last name, first name)

Теперь давайте создадим временную таблицу и для ускорения работы сделаем ее НЕАР-таблицей (т.е. зафуженной в память):

CREATE TEMPORARY TABLE tmp table

(id MEDiaMINT NOT NULL UNIQaE, name CHAR(40)) TYPE = HEAP

Создать новую таблицу, как копию уже существующей, можно следующим образом:

CREATE TABLE prez copy SELECT * FROM president

Чтобы создать таблицу, используя только часть другой таблицы, достаточно ввести следующий оператор:

CREATE TABLE prez alive SELECT last name, first name, birth FROM president WHERE death IS NULL

Если описание определяется для таблицы, созданной и заполненной с помощью оператора select, то заданное описание применяется уже после вставки содержимого таблицы. Так, например, определить включение извлеченного столбца в ключ primary key можно следующим образом;

CREATE TABLE new tbl (PRIMARY KEY (a)) SELECT a, b, с FROM old tbl

DELETE

DELETE [LOW PRIORITY) FROM lhl name [WHERE where expr] [LIMIT n]

Удаляет строки из таблицы tblname. Удалению подлежат все строки, удовлетворяющие описанным в выражении wherejexpr условиям:

DELETE FROM score WHERE event id = 14

DELETE FROM member WHERE expiration < CURRENT DATE



Если предложение where пропущено, из таблицы удаляются все записи.

После выполнения оператор delete возвращает количество удаленных записей. Исключение составляют лишь те случаи, когда не определено предложение where и удаляются все записи таблицы. В MySQL эта процедура оптимизирована и вместо последовательного удаления всех строк просто создаются новые файлы данных и индексов. Хотя такой подход значительно ускоряет работу, подсчет строк не выполняется, в результате чего возвращается нулевое значение. Для подсчета числа удаленных строк следует определить предложение where, удовлетворяющее всем строкам. Например:

DELETE FROM tbl name WHERE 1 > О

Этот оператор, однако, будет выполняться несколько медленней, чем оператор без предложения where.

При определении ключевого слова low priority оператор не выполняется до тех пор, пока все клиенты не закончат чтение таблицы. Это ключевое слово впервые появилось в версии MySQL 3.22.5.

Значение п предложения limit определяет максимальное число строк, которые будут удалены. Предложение limit впервые появилось в MySQL 3 22.7.

DESCRIBE

{describe] desc} tblname {colname \ /)адалч}. Этот оператор выводит такую же информацию, как и оператор show columns. Более подробно о его использовании рассказывается в разделе, посвященном описанию оператора show.

DROP DATABASE

drop database [if exists] dbname. Удаляет определенную базу данных. Рекомендуется всегда проверять выполнение оператора по завершению его работы. Оператор приостановит свою работу, если указанная таблица не существует (и не определено предложение if exists) или запустивший его пользователь не обладает достаточными привилегиями. Предложение if exists можно использовать, чтобы избежать вывода сообщения об ошибке при отсутствии указанной базы данных. Это предложение впервые появилось в MySQL версии 3.22.2.

Как известно, база данных представляется в виде каталога, расположенного внутри каталога данных. Если в этот каталог базы данных поместить файлы, не имеющие никакого отношения к таблицам, то в процессе выполнения оператора drop database они удалены не будут. Не удалится и собственно каталог.



1 ... 202 203 204 [ 205 ] 206 207 208 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика