Как вы уже успели убедиться, создать базу данных было просто. Однако пока
что в ней ничего нет - в этом можно удостовериться при помощи команды SHOW
TABLES
:
mysql> SHOW TABLES; Empty set (0.00 sec)
Гораздо труднее определиться со структурой своей базы, т.е. с тем, какие могут понадобиться таблицы, и какие столбцы должны содержаться в каждой из них.
Вам обязательно будет нужна таблица, содержащая по записи на каждое из
животных. Назвать ее можно pet
, и храниться в ней будут, как минимум,
имена. Но так как само по себе имя неинформативно, в таблице должны будут
присутствовать и другие данные. Например, если домашние животные есть
более чем у одного члена вашей семьи, в таблицу можно добавить и имя
владельца каждого животного. Кроме того, в базу стоит внести и
описательную информацию - например, вид и пол животного.
Но вот как быть с возрастом? Эта информация тоже может оказаться полезной, но хранить такие данные в базе неудобно. Возраст со временем меняется, а это значит, что придется довольно часто обновлять записи. Значительно удобнее хранить фиксированные значения - например, даты рождения. В таком случае возраст всегда можно получить, вычислив разницу между текущей датой и датой рождения. В MySQL есть функции для арифметических действий над данными, так что это совсем несложно. Хранение даты рождения имеет и другие преимущества:
Можно было бы придумать и еще какие-нибудь данные, которые неплохо было бы
хранить в таблице pet, но пока что мы ограничимся уже выбранными: именем
(name
), именем владельца (owner
), видом (species
), полом (sex
), датой
рождения (birth
) и датой смерти (death
).
При помощи команды 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
можно в любое время, например, если вы
забудете имена столбцов или типы, к которым они относятся.
User Comments
A Simple Example could be:
mysql> create table myTest(id int(3), name varchar(20));
where myTest is the name of the table to be created
id is a field of Integer type, with a width of 3,
name is a field of VarChar type, with a width of 20.
Hope it helps...Cheers!
Rule one of database design: the primary key!
CREATE TABLE orders(ordernumber varchar(8) PRIMARY KEY, etc.);
In case you have a table that doesn't contain a primary key; can you still update the table to add a primary key? what is the syntax/command?
of course you can add a primary key to an existing table. Both in creating as in altering a table you are able to assign primary keys to multiple columns (in case you want a combined index or primary key). The syntax for adding a key to your table is:
ALTER TABLE tbl_name ADD PRIMARY KEY (index_col_name1 [,index_col_name2, ...])
See the ALTER TABLE section in the reference manual for further options and explanation.
The commands
mysql-> show tables;
and
mysql-> describe pet;
are MySQL specific (not part of SQL-std.)
how do i specify the foriegn key
you do not need to specify foregn key
Add your own comment.