2. Создание БД
Узнать, какие базы существуют в
настоящее время на сервере, можно при помощи команды SHOW:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
Если база данных test существует, попробуйте обратиться к
ней:
mysql>
USE test
Database
changed
В команде USE, как и QUIT, точка с запятой не нужна
(конечно, данные команды тоже можно завершать точкой с запятой - никакого вреда
от этого не будет). Команда USE отличается от остальных и кое-чем еще: она
должна задаваться одной строкой.
Базу данных test (если, конечно, у вас есть доступ к ней)
можно использовать для работы с приведенными ниже примерами, но все созданное в
ней может быть уничтожено любым другим пользователем, имеющим к ней доступ.
Поэтому вам лучше попросить у своего администратора MySQL разрешение на
создание собственной базы. Предположим, вы захотите назвать ее menagerie
(``зверинец''). В таким случае администратору нужно будет набрать примерно
такую команду:
mysql>
GRANT ALL ON menagerie.* TO your_mysql_name;
где your_mysql_name - присвоенное вам имя MySQL.
(http://www.mysql.ru/docs/man/Database_use.html)
Если администратор при выдаче разрешения создаст для вас
базу, с ней можно сразу начинать работу. В противном случае вам придется
создать ее самостоятельно:
mysql> CREATE DATABASE
menagerie;
В Unix имеет значение регистр символов в именах баз данных
(в отличие от ключевых слов SQL), так что в этой ОС вам всегда придется
называть свою базу menagerie, а не Menagerie, MENAGERIE или еще как-нибудь. Это
же правило распространяется и на имена таблиц (в Windows данное ограничение не
действует, однако при обращении к базам и таблицам в пределах одного запроса,
тем не менее, можно использовать только один регистр).
При создании базы данных она автоматически не выбирается;
выбирать ее нужно отдельно. Сделать menagerie текущей базой можно с помощью
следующей команды:
mysql> USE menagerie
Database changed
Создавать базу нужно только однажды, но выбирать ее
приходится в каждом сеансе работы с mysql. Делать это можно с помощью команды
USE, представленной выше. А можно выбирать базу и из командной строки при
запуске mysql. Для этого достаточно лишь ввести ее имя после параметров
соединения, которые нужно вводить в любом случае. Например:
shell>
mysql -h host -u user -p menagerie
Enter
password: ********
Обратите внимание: в вышеприведенной команде menagerie не
является паролем. Ввести пароль в командной строке после параметра -p можно без
пробела (например, -pmypassword, а не -p mypassword). Впрочем, пароль в
командной строке все равно лучше не вводить, так как таким образом его могут и
подсмотреть.
(http://www.mysql.ru/docs/man/Creating_database.html)
Как вы уже успели убедиться, создать базу данных было
просто. Однако пока что в ней ничего нет - в этом можно удостовериться при
помощи команды SHOW TABLES:
mysql>
SHOW TABLES;
Empty set
(0.00 sec)
При помощи команды CREATE
TABLE определим структуру новой таблицы:
mysql>
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1),
birth DATE, death DATE);
Тип VARCHAR отлично подойдет для хранения имени животного,
имени владельца и названия вида, так как длина данных этого типа может
варьироваться. Конечно, длины таких столбцов вовсе не должны совпадать и не
должны быть равны 20 - можно выбрать любое значение в пределах от 1 до 255
(если при выборе длины столбца вы ошибетесь, и при работе с базой окажется, что
столбец маловат, можно будет исправить ошибку при помощи команды ALTER TABLE).
Пол животного можно обозначать несколькими способами,
например буквами "m" и "f", или словами male (мужской) и
female (женский). С буквами "m" и "f" будет проще.
Применение типа данных DATE для хранения дат рождения и
смерти вполне очевидно.
Теперь, когда таблица создана, команда SHOW TABLES должна вывести следующее:
mysql>
SHOW TABLES;
+---------------------+
| Tables in
menagerie |
+---------------------+
| pet
|
+---------------------+
Проверить, правильно была ли таблица создана в соответствии
с планом, можно при помощи команды DESCRIBE:
mysql>
DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
|
Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | |
NULL | |
|
owner | varchar(20) | YES | |
NULL | |
| species |
varchar(20) | YES | | NULL
| |
| sex | char(1) | YES
| | NULL |
|
|
birth | date | YES
| | NULL |
|
| death | date
| YES | | NULL
| |
+---------+-------------+------+-----+---------+-------+
Использовать команду DESCRIBE можно в любое время, например,
если вы забудете имена столбцов или типы, к которым они относятся.
(http://www.mysql.ru/docs/man/Creating_database.html)
Создав таблицу, нужно позаботиться об ее заполнении. Для
этого предназначены команды LOAD DATA и INSERT.
Предположим, ваши записи соответствуют приведенным в этой
таблице (обратите внимание: MySQL принимает даты в формате ГГГГ-ММ-ДД;
возможно, к такой записи вы не привыкли). name owner
species sex birth
death
Fluffy Harold cat
f 1993-02-04
Claws Gwen cat
m 1994-03-17
Buffy Harold dog
f 1989-05-13
Fang Benny dog
m 1990-08-27
Bowser Diane dog m 1998-08-31 1995-07-29
Chirpy Gwen bird
f 1998-09-11
Whistler Gwen bird
1997-12-09
Slim Benny snake
m 1996-04-29
Так как вы начинаете работу с пустой таблицей, заполнить ее
будет проще всего, если создать текстовый файл, содержащий по строке на каждое
из животных, а затем загрузить его содержимое в таблицу одной командой.
Создайте текстовый файл с именем `pet.txt', содержащий по
одной записи в каждой строке (значения столбцов должны быть разделены символами
табуляции и даны в том порядке, который был определен командой CREATE TABLE).
Незаполненным полям (например, неизвестный пол или даты смерти живых на
сегодняшний день животных), можно присвоить значение NULL. В текстовом файле
это значение представляется символами \N. Например, запись для птицы Whistler
должна выглядеть примерно так (между значениями должны располагаться одиночные
символы табуляции): name owner species sex
birth death
Whistler Gwen
bird \N
1997-12-09 \N
Загрузить файл `pet.txt' в таблицу можно с помощью следующей
команды:
mysql>
LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
Маркер конца строки и символ, разделяющий значения столбцов,
можно специально задать в команде LOAD DATA, но по умолчанию используются
символы табуляции и перевода строки. Воспринимая их, команда сможет корректно
прочитать файл `pet.txt'.
При добавлении одиночных записей используется команда
INSERT. В самом простом варианте ее применения необходимо задать значения
каждого столбца, в том порядке, в каком они были перечислены в команде CREATE
TABLE. Предположим, Диана (Diane) купила хомячка по имени Puffball. Соответствующую
запись в таблицу с можно внести с помощью команды INSERT примерно так:
mysql>
INSERT INTO pet
-> VALUES
('Puffball','Diane','hamster','f','1999-03-30',NULL);
Обратите внимание на то, что здесь строковые выражения и
даты представлены в виде ограниченных кавычками строк. Кроме того, в команде
INSERT отсутствующие данные можно прямо заменять на NULL. Пользоваться
эвфемизмом \N, как в команде LOAD DATA, нужды нет.
(http://www.mysql.ru/docs/man/Loading_tables.html) |