Следующая версия
|
Предыдущая версия
|
create [2021/01/30 23:01] dja создано |
create [2021/01/30 23:16] (текущий) dja |
Базовые таблицы создаются оператором <font inherit/inherit;;inherit;;inherit>CREATE TABLE</font>: | Базовые таблицы создаются оператором **CREATE** **TABLE**: |
| <code> |
| 1. CREATE TABLE <имя таблицы>(<список спецификаций столбцов и ограничений>); |
| |
| </code> |
| |
<sql> | |
1. <font inherit/inherit;;#2980b9;;inherit>CREATE<font inherit/inherit;;#2980b9;;inherit> TABLE <имя таблицы>(<список спецификаций столбцов и ограничений>); | |
</sql> | |
Спецификация столбца включает имя столбца и тип данных значений, которые могут находиться в этом столбце. Кроме того, некоторые ограничения могут быть заданы не только отдельными спецификациями, но и в спецификации столбца. Примерами могут служить ограничения первичного и внешнего ключей (простых, не составных), а также ограничение NOT NULL. | Спецификация столбца включает имя столбца и тип данных значений, которые могут находиться в этом столбце. Кроме того, некоторые ограничения могут быть заданы не только отдельными спецификациями, но и в спецификации столбца. Примерами могут служить ограничения первичного и внешнего ключей (простых, не составных), а также ограничение NOT NULL. |
| |
Изучать аспекты языка, имеющие отношение к таблицам, мы будем на примерах таблиц учебных баз данных. | Изучать аспекты языка, имеющие отношение к таблицам, мы будем на примерах таблиц учебных баз данных. |
В таблице Product из схемы «[[http://www.sql-tutorial.ru/ru/book_firm_computer.html|Компьютерная фирма]]» имеется три столбца – <font inherit/inherit;;inherit;;inherit>maker, model, type</font> все строкового типа данных <font inherit/inherit;;inherit;;inherit>VARCHAR</font>(N). Чтобы создать эту таблицу мы можем написать следующий оператор: | |
| |
<sql> | В таблице Product из схемы «[[http://www.sql-tutorial.ru/ru/book_firm_computer.html|Компьютерная фирма]]» имеется три столбца – maker, model, type все строкового типа данных VARCHAR(N). Чтобы создать эту таблицу мы можем написать следующий оператор: |
1. <font inherit/inherit;;#2980b9;;inherit>CREATE<font inherit/inherit;;#2980b9;;inherit> TABLE Product (maker varchar(10), model varchar(50), type varchar(50)); | <code> |
</sql> | |
Значение N указывает максимальное число символов, которое могут содержать данные в данном столбце. VARCHAR является переменным типом, это означает, что если мы зададим значение с числом символов меньше N, то записано на диск будет именно заданное количество символов. Альтернативой служит точный строковый тип <font inherit/inherit;;inherit;;inherit>CHAR</font>; для него отсутствующие символы дополняются пробелами справа, т.е. на диск будет всегда записано N символов. | |
| |
Если значение N не указано, то по умолчанию подразумевается 1, т.е. один символ. | 1. CREATE TABLE Product (maker varchar(10), model varchar(50), type varchar(50)); |
| |
Как только таблица создана, в нее могут быть помещены данные с помощью [[http://www.sql-tutorial.ru/ru/book_operator_insert.html|оператора INSERT]]. Сделаем это: | </code> |
| |
<sql> | Значение N указывает максимальное число символов, которое могут содержать данные в данном столбце. VARCHAR является переменным типом, это означает, что если мы зададим значение с числом символов меньше N, то записано на диск будет именно заданное количество символов. Альтернативой служит точный строковый тип CHAR; для него отсутствующие символы дополняются пробелами справа, т.е. на диск будет всегда записано N символов. |
| |
</sql> | Если значение N не указано, то по умолчанию подразумевается 1, т.е. один символ. |
| |
- | Как только таблица создана, в нее могут быть помещены данные с помощью [[http://www.sql-tutorial.ru/ru/book_operator_insert.html|оператора INSERT]]. Сделаем это: |
| <code> |
INSERTINTO product VALUES | |
| |
- | |
| |
('A', '1232', 'PC'), | |
| |
- | |
| |
('A', '1232', 'Printer'), | |
| |
- | 1. INSERT INTO product VALUES |
| 2. ('A', '1232', 'PC'), |
| 3. ('A', '1232', 'Printer'), |
| 4. (NULL, NULL, NULL); |
| |
(NULL, NULL, NULL); | </code> |
| |
Данные успешно вставлены, но какие-то они неправильные. Во-первых, непонятно чем является модель 1232 – принтером или ПК? Во-вторых, имеется у нас еще одна модель, о которой вообще ничего неизвестно. | Данные успешно вставлены, но какие-то они неправильные. Во-первых, непонятно чем является модель 1232 – принтером или ПК? Во-вторых, имеется у нас еще одна модель, о которой вообще ничего неизвестно. |