|
Программирование >> Создание клиентов mysql
В конце инструкции CREATE TABLE определяются первичный и вторичный ключи. MySQL проследит, чтобы в столбец ID помещались уникальные значения, а кроме того, для столбцов ID и Name будут созданы индексы, что ускорит поиск в них. На имена баз данных, таблиц и столбцов накладывается ряд ограничений. Если заглянуть за кулисы , то окажется, что базы данных представляются в виде каталогов файловой системы сервера, а таблицы являются файлами этих каталогов. Из практических соображений длина имен ограничена 64-мя символами. Если в операционной системе, где установлена СУБД MySQL, в именах файлов учитывается регистр, то имена баз данных и таблиц в MySQL тоже будут чувствительными к регистру. Имена столбцов всегда не зависят от регистра. Все имена могут состоять из букв, чисел, знаков подчеркивания ( ) и символов доллара ($). Из соображений удобочитаемости желательно, чтобы имена начинались с буквы. Вставка записей Инструкция INSERT добавляет строку в таблицу. Общий формат ее таков: INSERT INTO имя таблицы VALUES (значение, ...) Необходимо задать значения всех столбцов, причем в том порядке, в котором определения столбцов указывались в инструкции CREATE TABLE. В главе 13, Инструкции SQL , будут описаны разновидности инструкции INSERT, позволяющие указывать подмножество столбцов, а также вставлять в таблицу записи, возвращаемые подчиненной инструкцией SELECT. Инструкция, показанная в листинге 6.4, создает новую строку в таблице item. В столбец ID будет записано ближайшее доступное число. Обратите внимание на то, что строковые значения берутся в одинарные кавычки. INSERT INTO item VALUES( NULL, toothbrush, 1.25, A deluxe toothbrush Обновление записей Для изменения полей существующих записей предназначена инструкция UPDATE, общий формат которой следующий: UPDATE имя таблицы SET выражение, ... WHERE условие отбора Удаление записей 75 В выражении стоит оператор присваивания, по левую сторону от которого указывается имя столбца, а по правую - записываемое значение. Если требуется обновить более одного столбца, следует задать соответствующее число выражений, разделенных запятыми. Предложение WHERE задает правило отбора обновляемых строк. Если оно отсутствует, изменению подвергнутся все строки таблицы. Инструкция, показанная в листинге 6.5, обновляет значения столбцов Name и Price элемента с идентификатором 1. Другие строки остаются нетронутыми. UPDATE item SET Name = Toothbrush, Price=1.15 WHERE ID=1 Условия отбора строк необходимо тщательно проверять, чтобы по ошибке не удалить тысячу строк вместо одной. На всякий случай можно воспользоваться опцией --safe-updates программы mysql, указав в ней максимальное число удаляемых строк. Но еще лучше перед выполнением инструкции UPDATE ввести эквивалентную инструкцию SELECT, чтобы проверить, какие записи соответствуют условию отбора. Удаление записей Инструкция DELETE удаляет строку из таблицы. Общий формат инструкции таков: DELETE FROM имятаблицы WHERE условие отбора Если предложение WHERE отсутствует, будут удалены все строки таблицы. В листинге 6.6 демонстрируется удаление отдельной строки. DELETE FROM item WHERE ID=16 Запросы Инструкция SELECT извлекает строки из одной или нескольких таблиц. С ее помощью можно реализовать большинство реляционных операций, описанных в главе 5, Реляционная модель . Формат этой инструкции сложнее, чем у других инструкций: SELECT имя столбца,... FROM имя таблицы, ... WHERE условие отбора GROUP BY имя столбца,... ORDER BY имястолбца, ... LIMIT лимит Правда, многие предложения инструкции являются необязательными. SELECT * FROM item В листинге 6.7 представлен простейший вариант инструкции SELECT. В данном случае отображаются все столбцы всех строк таблицы item. Символ звездочки (*) заменяет собой имена всех столбцов. Запрос, показанный в листинге 6.8, возвращает тот же результат, но имена столбцов на этот раз перечислены явно. Порядок имен важен, так как именно в этом порядке столбцы войдут в результирующую таблицу. SELECT ID, Name, Price, Description FROM item Если указаны не все столбцы, операция выборки превратится в операцию проекции (см. главу 5, Реляционная модель ). Дополнительный фильтр записей задается с помощью предложения WHERE (листинг 6.9). SELECT ID, Name FROM item WHERE ID > 2 AND ID < 10 Показанное в листинге 6.9 предложение WHERE состоит из двух операций сравнения. В условиях отбора могут присутствовать многие операторы языков третьего поколения, а также целый ряд встроенных функций. Обо всех них пойдет речь в главах 10, Типы данных, переменные и выражения , и 12, Встроенные функции . Можно также вычислять выражения, не ссылаясь на таблицы. Например, в листинге 6.10 показано, как узнать текущие дату и время, извлекая значение из встроенной функции NOW (). mysql> SELECT NOW(); NOW() 2001-04-13 11:54:23 1 row in set (0.00 sec)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.069
При копировании материалов приветствуются ссылки. |