Чтение онлайн

на главную - закладки

Жанры

Основы программирования в Linux
Шрифт:

Синтаксис языка SQL, посвященный созданию объектов баз данных и называемый DDL (data definition language, язык определения данных), невозможно охватить полностью в одной главе; все подробности есть в разделе документации, на Web-сайте MySQL.

Базовый синтаксис для создания таблиц следующий:

CREATE TABLE <таблица> {

 column type [NULL | NOT | NULL] [AUTO_INCREMENT] [PRIMARY KEY]

 [, ...]

 [, PRIMARY KEY (столбец [, ...] ) ]

)

Удалять таблицы можно с помощью очень простой синтаксической формулы

DROP TABLE
.

DROP TABLE <таблица>

Есть

всего лишь небольшое число ключевых слов, приведенных в табл. 8.10, которые вам необходимо знать для того, чтобы быстро создать таблицу.

Таблица 8.10

Ключевое слово Описание
AUTO INCREMENT
Это специальное ключевое слово сообщает MySQL о том, что, когда вы пишете в данный столбец
NULL
, следует автоматически заполнить столбец данными с помощью автоматически формируемого числа с наращением. Это чрезвычайно полезное средство; оно позволяет применять MySQL для автоматического назначения уникальных номеров строкам ваших таблиц, хотя оно может применяться только в столбцах, являющихся также первичными ключами. В других системах управления базами данных оно часто реализуется порядковым типом или управляется более явно с помощью последовательности
NULL
Специальное значение в базе данных, обычно применяемое для обозначения "неизвестной" величины, но может также использоваться для обозначения "неподходящего" значения. Например, если вы заполняете таблицу подробными данными о сотрудниках, у вас может быть столбец с адресом электронной почты. В этом случае вы будете хранить
NULL
вместо адреса данного сотрудника, чтобы показать, что для конкретного человека эта информация не известна. Запись
NOT NULL
означает, что в этом столбце нельзя хранить значения
NULL
и может оказаться полезной для того, чтобы помешать вводу в такие столбцы значений
NULL
, если, например, значение всегда должно быть известно, как в случае фамилии сотрудника
PRIMARY KEY
Указывает на то, что данные в этом столбце будут уникальными и разными во всех строках данной таблицы. У каждой таблицы может быть только один первичный ключ

Выполните упражнение 8.1.

Упражнение 8.1. Создание таблицы и вставка данных

Гораздо легче понять создание таблицы на практике, чем смотреть на базовую синтаксическую запись, поэтому сейчас вы сделаете это, создав таблицу с именем

children
, в которой будет храниться уникальный номер для каждого ребенка, его имя и возраст. Номер ребенка вы сделаете первичным ключом.

1. Вам нужен следующий оператор языка SQL

CREATE TABLE children (

 childno INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,

 fname VARCHAR(30),

 age INTEGER

);

Примечание

Обратите внимание на то, что в отличие от большинства языков программирования имя столбца (

childno
) указывается перед типом столбца (
INTEGER
).

2. Вы также можете определить первичный ключ отдельно в определении столбца. Далее приведен пример интерактивного сеанса, в котором показан альтернативный синтаксис:

mysql> use rick

Database changed

mysql> CREATE table children (

– > childno INTEGER AUTO_INCREMENT NOT NULL,

 -> fname varchar(30),

 -> age INTEGER,

 -> PRIMARY KEY(childno)

 -> );

Query OK, 0 rows affected (0.04 sec)

mysql>

Вы

можете записать команду или оператор SQL в нескольких строках, и монитор
mysql
применит подсказку
– >
, чтобы показать, что вы находитесь в строке продолжения. Как упоминалось ранее, команда SQL завершается точкой с запятой, чтобы показать, что вы закончили и готовы к обработке вашего запроса сервером базы данных.

Если вы допустили ошибку, MySQL разрешит вернуться назад к предыдущим командам, откорректировать и повторно ввести их простым нажатием клавиши <Enter>.

3. Теперь у вас есть таблица, в которую можно вводить данные. Данные добавляются с помощью SQL-команды

INSERT
. Поскольку вы определили столбец
childno
как
AUTO_INCREMENT
, в него не вводятся данные, вы просто разрешаете MySQL разместить в нем уникальный номер.

mysql> INSERT INTO children(fname, age) VALUES("Jenny", 21);

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO children(fname, age) VALUES("Andrew", 17);

Query OK, 1 row affected (0.00 sec)

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

SELECT
:

mysql> SELECT childno, fname, age FROM children;

+---------+--------+-----+

| childno | fname | age |

+---------+--------+-----+

| 1 | Jenny | 21 |

| 2 | Andrew | 17 |

2 rows in set (0.00 sec) mysql>

Вместо явного перечисления столбцов для выборки вы могли бы применить для указания столбцов звездочку (*), которая перечислит все столбцы в названной таблице. Это очень удобно в интерактивном режиме, но в рабочем программном коде всегда следует явно называть столбец или столбцы, предназначенные для выборки.

Как это работает

Вы открыли интерактивный сеанс подключения к серверу базы данных и переключились на базу данных

rick
. Затем вы ввели команду SQL для создания вашей таблицы, используя нужное количество строк для ввода команды. Как только вы завершили команду с помощью знака
;
, MySQL создала вашу таблицу. Затем вы применили команду
INSERT
для ввода данных в вашу новую таблицу, позволив в столбце
childno
автоматически размещать числа. В заключение вы применили команду
SELECT
для вывода данных вашей таблицы.

Объем данной главы не позволяет дать полное описание языка SQL и тем более принципов проектирования баз данных. Дополнительную информацию см. на Web-сайте www.mysql.com.

Графические средства

Работа с таблицами и данными в командной строке хороша и удобна во всех отношениях, но в наши дни большинство людей предпочитает графические средства.

У СУРБД MySQL два основных графических средства: MySQL Administrator и MySQL Query Browser. Точное имя пакета с этими средствами зависит от используемого вами дистрибутива; например, в дистрибутивах Red Hat ищите mysql-gui-tools и mysql-administrator. В дистрибутиве Ubuntu вам, возможно, сначала придется переключиться на универсальный ("Universe") репозитарий, а затем искать mysql-admin.

Поделиться:
Популярные книги

Барон переписывает правила

Ренгач Евгений
10. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Барон переписывает правила

Мачеха Золушки - попаданка

Максонова Мария
Фантастика:
попаданцы
сказочная фантастика
фэнтези
5.00
рейтинг книги
Мачеха Золушки - попаданка

Князь Андер Арес 2

Грехов Тимофей
2. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Князь Андер Арес 2

Правильный лекарь. Том 5

Измайлов Сергей
5. Неправильный лекарь
Фантастика:
городское фэнтези
аниме
сказочная фантастика
попаданцы
5.00
рейтинг книги
Правильный лекарь. Том 5

Неудержимый. Книга XII

Боярский Андрей
12. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XII

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Спасите меня, Кацураги-сан! Том 4

Аржанов Алексей
4. Токийский лекарь
Фантастика:
городское фэнтези
попаданцы
дорама
фэнтези
5.00
рейтинг книги
Спасите меня, Кацураги-сан! Том 4

Капитан космического флота

Борчанинов Геннадий
2. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
5.00
рейтинг книги
Капитан космического флота

Принадлежать им

Зайцева Мария
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Принадлежать им

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х

Ученик. Книга третья

Первухин Андрей Евгеньевич
3. Ученик
Фантастика:
фэнтези
7.64
рейтинг книги
Ученик. Книга третья

Солнечный флот

Вайс Александр
4. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Солнечный флот

По прозвищу Святой. Книга первая

Евтушенко Алексей Анатольевич
1. Святой
Фантастика:
попаданцы
альтернативная история
6.40
рейтинг книги
По прозвищу Святой. Книга первая

Барон меняет правила

Ренгач Евгений
2. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон меняет правила