| |
вать
которые в PHP вряд ли целесообразно. Например, тип перечисления задает, что
зна-
чение соответствующего поля может быть не любой строкой или числом, а только
одним из нескольких указанных при создании таблицы значений: value1, value2 и
т. д. Вот как выглядит имя типа перечисления:
ENUM(value1,value2,value3,...)
В отличие от всех остальных типов, множества означают, что в соответствующем
поле может содержаться не одно, а сразу несколько значений (value1, value2 и т.
Часть IV. Стандартные функции PHP 370
д., т. е. — множество значений). Формат задания данных такого типа имеет
следую-
щий вид:
SET(value1,value2,value3,...)
Значений в множестве может быть не сколько угодно, а не более 64 штук. Ино-
гда это сильно мешает при программировании.
Модификаторы и флаги типов
К типу можно также присоединять модификаторы, которые задают его "поведение" и
те операции, которые можно (или, наоборот, запрещено) выполнять с соответствую-
щими столбцами. Самые распространенные из них сведены в табл. 26.6.
Таблица 26.6. Основные модификаторы MySQL
Модификатор Описание
not null Означает, что поле не может содержать неопределенное зна-
чение — в частности, поле обязательно должно быть инициа-
лизировано при вставке новой записи в таблицу (если не за-
дано значение по умолчанию)
primary key Отражает, что поле является первичным ключом, т. е. иден-
тификатором записи, на которой можно ссылаться
auto_increment При вставке новой записи поле получит уникальное значение,
так что в таблице никогда не будут существовать два поля с
одинаковыми номерами. (Мы поговорим об этом чуть позже.)
Default Задает значение по умолчанию для поля, которое будет ис-
пользовано, если при вставке записи поле не было проини-
циализировано явно
Удаление таблицы
drop table ИмяТаблицы
Удаляет таблицу ИмяТаблицы. Таблица не обязательно должна быть пустой, так что
будьте внимательны, чтобы случайно не "аннулировать" нужную таблицу с данными.
Вставка записи
insert into ИмяТаблицы(ИмяПоля1 ИмяПоля2 ...) values('зн1','зн2',...)
Добавляет в таблицу ИмяТаблицы запись, у которой поля, обозначенные как
ИмяПоляN, установлены в значения, соответственно, знN. Те поля, которые в этой
команде не перечислены, получают "неопределенные" значения (неопределенное зна-
Глава 26. Работа с базой данных MySQL 371
чение — это не пустая строка, а просто признак, который говорит MySQL, что у
дан-
ного поля нет никакого значения). Впрочем, если для не указанного здесь поля
при
создании таблицы был задан not null, то данная команда закончится неуспешно.
Значения полей можно заключать и в обычные кавычки, но, по-моему, апострофы тут
использовать удобнее. При вставке в таблицу бинарных данных (или текстовых, со-
держащих апострофы и слэши) некоторые символы должны быть "защищены" обрат-
ными слэшами, а именно, символы \, ' и символ с нулевым кодом.
Удаление записей
delete from ИмяТаблицы where Выражение
Удаляет из таблицы ИмяТаблицы все записи, для которых выполнено Выражение.
Пара-
метр Выражение — это просто логическое выражение, составленное почти что по
правилам PHP. Вот показательный пример:
(id<10) and (name regexp 'a*b') and (age=25)
В выражении, помимо имен полей, констант и операторов, могут также встречаться
простейшие "вычисляемые" части, например: (id<10+11*234).
Вообще говоря, формат выражения един для всех команд запросов, которые мы
встретим в дальнейшем. Например, он же используется и в операции select, и в
операции update.
Поиск записей
select * from Таблица where Выражение [order by ИмяПоля [desc]]
Эта команда — основная и очень мощная. Предназначена она для того, чтобы искать
все записи, удовлетворяющие выражению Выражение. Ее возможности гораздо более
богаты, чем то сжатое изложение, которое я вам предлагаю, и о них можно
прочитать
в книгах, посвященных SQL. Если записей несколько, то при указанном предложении
order by они будут отсортированы по тому полю, имя которого записывается правее
этого ключевого слова (если задан описатель desc, то упорядочивание происходит
в
обратном порядке). В предложении order by могут также задаваться несколько по-
лей.
Особое значение имеет символ *. Он предписывает, что из отобранных записей сле-
дует извлечь все поля, когда будет выполнена ком
|
|