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

Что такое Null?

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


Читайте также:
  1. Lt;question> Что такое резюме?
  2. Lt;question>Что такое микротема?
  3. Lt;question>Что такое норма литературного языка?
  4. Lt;question>Что такое «тезис»?
  5. quot;Что такое дружба и мой взгляд на дружбу".
  6. А, да-да-да, было такое.
  7. августа, на центральной площади Олимпийского парка, пройдет концерт Легендарной группы SCOOTERПропустить такое просто НЕВОЗМОЖНО!

 

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

 

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


 

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

 

Смысл столбцов 1 и 2 результата выполнения выражения describe оче_ виден. Столбец 3 показывает, можно ли пропустить тот или иной стол_ бец при вводе данных в таблицу. Я намеренно пока не включил эту тему в обсуждение (краткие рассуждения по этому вопросу можно найти во врезке «Что такое Null?»), она будет полностью рассмотрена в главе 4. Четвертый столбец показывает, участвует ли столбец в формировании какого_либо ключа (первичного или внешнего). В данном случае стол_ бец person_id отмечен как первичный ключ. Столбец 5 показывает, бу_ дет ли определенный столбец заполнен значением по умолчанию в слу_ чае, если он пропущен при вводе данных в таблицу. Для столбца per_ son_id значением по умолчанию является 0, хотя оно будет использова_ но только один раз, поскольку каждая строка таблицы person должна содержать в данном столбце уникальное значение (это первичный ключ). Шестой столбец (названный Extra (дополнительно)) содержит любую другую информацию, относящуюся к столбцу.

 

Теперь, после создания таблицы person, следующий шаг – создать таб_ лицу favorite_food:

 

mysql> CREATE TABLE favorite_food

 

_> (person_id SMALLINT UNSIGNED, _> food VARCHAR(20),

 

_> CONSTRAINT pk_favorite_food PRIMARY KEY (person_id, food), _> CONSTRAINT fk_person_id FOREIGN KEY (person_id)

_> REFERENCES person (person_id)

_> );

 

Query OK, 0 rows affected (0.10 sec)

 

Это очень похоже на выражение create table для таблицы person, за не_ сколькими исключениями:

 

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

 

этому первичный ключ данной таблицы состоит из двух столбцов: person_id и food.

 

• Таблица favorite_food содержит другой тип ограничения – ограниче_ ние внешнего ключа (foreign_key constraint). Оно ограничивает зна_чения столбца person_id таблицы favorite_food, позволяя ему вклю_ чать только те значения, которые есть в таблице person. При таком ограничении не получится включить в таблицу favorite_food строку, показывающую, что person_id 27 любит пиццу, если в таблице person нет строки со значением 27 для person_id.

Если при создании таблицы ограничение внешнего ключа не было указано, его можно добавить позже с помощью оператора alter table (изменить таблицу).


 

После выполнения выражения create table по команде describe будет выведено следующее:


 

42 Глава 2. Создание и заполнение базы данных

 

mysql> DESC favorite_food;+______________+______________________+______+_____+_________+_______+

 

| Field | Type | Null | Key | Default | Extra |

 

+______________+______________________+______+_____+_________+_______+

 

| person_id | smallint(5) unsigned | | PRI |   | |
| food | varchar(20) | | PRI |   | |

 

+______________+______________________+______+_____+_________+_______+

 

Теперь, когда есть таблица, следующим логичным шагом будет доба_ вить в нее кое_какие данные.

 


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


<== предыдущая страница | следующая страница ==>
Шаг 3: построение SQL_выражений управления схемой данных| Формирование числовых ключей

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