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

на главную

Жанры

Основы программирования в 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.

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

Великие мифы и легенды. 100 историй о подвигах, мире богов, тайнах рождения и смерти

Мудрова Ирина Анатольевна
Старинная литература:
мифы. легенды. эпос
5.00
рейтинг книги
Великие мифы и легенды. 100 историй о подвигах, мире богов, тайнах рождения и смерти

Бастард Бога (Дилогия)

Матвеев Владимир
Фантастика:
альтернативная история
5.11
рейтинг книги
Бастард Бога (Дилогия)

Руководство по системной поведенченской психотерапии

Курпатов Андрей Владимирович
Научно-образовательная:
психотерапия и консультирование
5.00
рейтинг книги
Руководство по системной поведенченской психотерапии

Целеполагание

Владимиров Денис
4. Глэрд
Фантастика:
фэнтези
боевая фантастика
рпг
5.00
рейтинг книги
Целеполагание

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Гнев Пламенных

Дмитриева Ольга Олеговна
5. Пламенная
Фантастика:
фэнтези
4.80
рейтинг книги
Гнев Пламенных

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Кодекс Охотника. Книга XXII

Винокуров Юрий
22. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXII

Хозяин Стужи 3

Петров Максим Николаевич
3. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Хозяин Стужи 3

Сталин

Радзинский Эдвард Станиславович
3. Загадки жизни и смерти
Проза:
историческая проза
7.36
рейтинг книги
Сталин

Роза ветров

Кас Маркус
6. Артефактор
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Роза ветров

Настольная книга по теологии. Библейский комментарий АСД Том 12

Церковь христиан адвентистов седьмого дня
Научно-образовательная:
религиоведение
5.00
рейтинг книги
Настольная книга по теологии. Библейский комментарий АСД Том 12

Меткий стрелок. Том II

Вязовский Алексей
2. Меткий стрелок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Меткий стрелок. Том II

Лебединая Дорога (сборник)

Семёнова Мария Васильевна
Приключения:
исторические приключения
9.04
рейтинг книги
Лебединая Дорога (сборник)