Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Шаг 3: построение SQL_выражений управления схемой данных

Дополнительные источники | Создание базы данных MySQL | Инструмент командной строки mysql | О пропущенном блоке from | Символьные данные | Наборы символов | Текстовые данные | Числовые данные | Временные данные | Создание таблиц |


Читайте также:
  1. A) Орган управления иностранного лица находится на территории РК.
  2. III Основные концепции местного самоуправления
  3. III. РАЗЛИЧНЫЕ СХЕМЫ УПРАВЛЕНИЯ ГОСУДАРСТВЕННОЙ СОБСТВЕННОСТЬЮ: ПРИМЕРЫ ИЗ ИСТОРИЧЕСКОГО ОПЫТА И ЗАРУБЕЖНОЙ ПРАКТИКИ
  4. OHSAS 18001 система управления охраной труда и техникой безопасности на производстве
  5. V Педагогический коллектив как объект управления. Понятие и основные признаки коллектива.
  6. V. Органы управления войскового казачьего общества
  7. VI. Загрузка данных на внешние носители

 

Теперь, по завершении проектирования двух таблиц для размещения персональной информации, следующим шагом является формирова_ ние SQL_выражений для создания таблиц в БД. Вот выражение для создания таблицы person:

 

CREATE TABLE person (person_id SMALLINT UNSIGNED, fname VARCHAR(20),

 

lname VARCHAR(20), gender CHAR(1), birth_date DATE, address VARCHAR(30), city VARCHAR(20), state VARCHAR(20), country VARCHAR(20),

postal_code VARCHAR(20),

 

CONSTRAINT pk_person PRIMARY KEY (person_id));


 

В этом выражении должно быть понятно все, кроме последнего эле_ мента. При описании таблицы необходимо сообщить серверу БД, ка_ кой столбец или столбцы будут играть роль первичного ключа табли_


 

Создание таблиц  
   

 

цы. Осуществляется это путем создания ограничения (constraint) для таблицы. В описание таблицы можно добавить ограничение одного из нескольких типов. Данное ограничение является ограничением пер_ вичного ключа (primary_key constraint). Оно накладывается на столбецperson_id и получает имя pk_person. Обычно я начинаю имена ограниче_ ний первичного ключа с приставки pk_, а затем указываю имя табли_ цы, чтобы при просмотре списка таких ограничений было ясно, чем каждое из них является.

 

Говоря об ограничении, упомянем еще один тип, который мог бы быть полезным для таблицы person. В табл. 2.7 был добавлен третий столбец для допустимых значений определенных столбцов (например 'M' и 'F' для столбца gender). Это другой тип ограничения – проверочное ограни_ чение (check constraint), ограничивающее допустимые значения кон_кретного столбца. MySQL позволяет вводить в описание столбца прове_ рочное ограничение:

 

gender CHAR(1) CHECK (gender IN ('M','F')),

 

На большинстве серверов БД проверочные ограничения работают со_ ответствующим образом, а сервер MySQL допускает описание прове_ рочных ограничений, но не выполняет их проверку. Но MySQL предос_ тавляет другой символьный тип данных – enum (перечисление), кото_ рый вводит проверочное ограничение в описание типа. Вот как это вы_ глядело бы для описания столбца gender:

 

gender ENUM('M','F'),

 

Вот как выглядит создание таблицы person с введением типов данных enum для столбца gender:

 

CREATE TABLE person (person_id SMALLINT UNSIGNED, fname VARCHAR(20),

 

lname VARCHAR(20), gender ENUM('M','F'), birth_date DATE, address VARCHAR(30), city VARCHAR(20), state VARCHAR(20), country VARCHAR(20),

postal_code VARCHAR(20),

 

CONSTRAINT pk_person PRIMARY KEY (person_id));

 

Позже в данной главе будет показано, что происходит при попытке до_ бавить в столбец данные, не соответствующие проверочному ограниче_ нию (или, в случае MySQL, значениям перечисления).

 

Теперь все готово для выполнения выражения create table с помощью инструмента командной строки mysql. Вот как это выглядит:

 

mysql> CREATE TABLE person

_> (person_id SMALLINT UNSIGNED,


 

  Глава 2. Создание и заполнение базы данных
   
_> fname VARCHAR(20),
_> lname VARCHAR(20),
_> gender ENUM('M','F'),
_> birth_date DATE,
_> address VARCHAR(30),
_> city VARCHAR(20),
_> state VARCHAR(20),
_> country VARCHAR(20),
_> postal_code VARCHAR(20),
_> CONSTRAINT pk_person PRIMARY KEY (person_id)
_> );

 

Query OK, 0 rows affected (0.27 sec)

 

После обработки выражения create table сервер MySQL возвращает со_ общение «Query OK, 0 rows affected» (Запрос выполнен без ошибок, 0 строк подверглось обработке), что говорит об отсутствии синтаксиче_ ских ошибок в выражении. Если требуется убедиться, что таблица per_ son действительно существует, можно использовать команду describe (описать) (или desc для краткости) и посмотреть описание таблицы:

 

mysql> DESC person; +_____________+______________________+______+_____+_________+_______+ | Field | Type | Null | Key | Default | Extra | +_____________+______________________+______+_____+_________+_______+

 

| person_id | smallint(5) unsigned | | PRI |   | |
| fname | varchar(20) | YES | | NULL | |
| lname | varchar(20) | YES | | NULL | |
| gender | enum('M','F') | YES | | NULL | |
| birth_date | date | YES | | NULL | |
| address | varchar(30) | YES | | NULL | |
| city | varchar(20) | YES | | NULL | |
| state | varchar(20) | YES | | NULL | |
| country | varchar(20) | YES | | NULL | |
| postal_code | varchar(20) | YES | | NULL | |

 

+_____________+______________________+______+_____+_________+_______+ 10 rows in set (0.06 sec)


Дата добавления: 2015-08-17; просмотров: 69 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Шаг 2: уточнение| Что такое Null?

mybiblioteka.su - 2015-2024 год. (0.007 сек.)