Команды для манипулирования базами данных

Типы данных в MySQL

В MySQL представлено множество типов данных, в соответствии с которыми хранятся и обрабатываются все данные в таблицах. Перечислим некоторые из них.

Числа

Числа разделяются на целые и дробные. Целые представлены следующими типами данных:

§ TINYINT — 1 байт, т.е. принимает значения от -128 до 127 (в случае использования TINYINT UNSIGNED, т.е. без учета знака перед числом — 0..255);

§ SMALLINT — 2 байта, -32768..32767 (0..65535);

§ MEDIUMINT — 3 байта, -8388608..8388607 (0..2^24-1);

§ INT — 4 байта, -2147483648..2147483647 (0..2^32-1);

§ BIGINT — 8 байт, -2^32..2^32-1 (0..2^64).

Дробные числа представлены следующими типами данных:

§ FLOAT (4 байта);

§ DOUBLE (8 байт) — вдвое большая точность после запятой.

Строки

§ CHAR — дополняет до заданной «ширины» (например, в случае использования CHAR(6) строка из пяти символов «hello» будет храниться как «hello », т.е. с пробелом на конце);

§ VARCHAR — использует необходимый минимум памяти (в случае использования VARCHAR(6) строка из пяти символов «hello» будет храниться как «hello»);

§ BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB — бинарные данные разных размеров;

§ TEXT, TINYTEXT, MEDIUMTEXT, LONGTEXT — текстовые данные разных размеров;

§ ENUM — одно из заданных значений (например, в ячейке типа ENUM(0,1,2) может храниться ноль, единица или двойка);

§ SET — ноль или более заданных значений (в ячейке типа SET(0,1,2) может храниться любая комбинация из ноля, единицы и двойки — в том числе и пустое значение).

Другие типы

§ булев: BOOL, BOOLEAN;

§ уникальный автоматически увеличившийся идентификатор: SERIAL (== BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE);

§ дата и время: DATETIME, DATE, TIMESTAMP, TIME, YEAR.

Работа с базами данных и таблицами

Команды для манипулирования базами данных

1. Создание базы данных:

CREATE DATABASE `db_name`;

Параметр команды создания баз данных — имя, выдаваемое создаваемой базе данных. Например, для создания базы данных под названием "my_database" нужно ввести команду:

CREATE DATABASE `my_database`;

Несмотря на то, что современная версия MySQL позволяет создавать БД с кириллическими и специальными символами в названии, принято использовать латинские буквы, цифры и знаки подчеркивания («_»).

2. При одновременной работе в нескольких базах данных в командах нужно уточнять, с данными какой БД вы работаете. Для этого используется разделитель точка — «.». Так, чтобы обратиться к атрибуту "attribute" таблицы "table", находящейся в базе данных "database1", нужно использовать запись:

`database1`.`table`.`attribute`

Если же вам понадобится обратиться к аналогичному атрибуту такой же таблицы, находящейся в БД "database2", запись станет такой:

`database2`.`table`.`attribute`

Для того, чтобы вводимые команды применялись к конкретной базе данных по умолчанию, можно воспользоваться командой USE и ввести название базы данных, с которой мы будем в дальнейшем работать:

USE `my_database`;

После выполнения команды USE следующие записи будут эквивалентны:

`my_database`.`table1`

`table1`

3. Удаление существующей базы данных выполняется командой DROP DATABASE, которая в качестве единственного аргумента принимает название удаляемой базы данных. Например, чтобы удалить созданную вами в начале работы БД "my_database", нужно выполнить:

DROP DATABASE `my_database`;

После успешного удаления вы можете заново создать ее. Учтите, что если бы в вашей базе данных были таблицы и данные, вся эта информация была бы утеряна навсегда.

4. Для просмотра информации о базах данных, их таблиц, а также привилегий текущего пользователя, используется команда SHOW.

1. Увидеть список всех доступных пользователю баз данных можно с помощью команды:

SHOW DATABASES;

2. Увидеть список всех таблиц в используемой базе данных можно с помощью команды:

SHOW TABLES;

3. Для вывода информации о таблице "table_name" используйте команду:

SHOW CREATE TABLE `table_name`;

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

4. Увидеть список всех прав текущего пользователя СУБД можно с помощью команды:

SHOW GRANTS;

2. Команды для работы с таблицами БД

1. Для создания таблицы используется команда CREATE TABLE. В качестве аргумента ей передается название новой таблиц и перечисление всех атрибутов таблицы и их описаний (типы данных, значения по умолчанию, ограничения на применяемые значения и т.п.) — все перечисление берется в круглые скобки, а разделителем между атрибутами служит запятая. В общем виде команда выглядит так:

CREATE TABLE `table_name` (

`название_первого_поля` его_тип [параметры],

`название_второго_поля` его_тип [параметры],

...

`название_последнего_поля` его_тип [параметры]

);

Обратите внимание, что после последнего атрибута запятая не требуется. Пример создания таблицы "news" с тремя атрибутами (идентификатор новости, время публикации, текст новости):

CREATE TABLE `news` (

`id` MEDIUMINT(8) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,

`posted` TIMESTAMP NOT NULL,

`content` TEXT

);

2. Для удаления таблицы используется команда DROP TABLE с названием таблицы в качестве единственного аргумента. Например, для удаления созданной таблицы "news" команда будет выглядеть так:

DROP TABLE `news`;

3. Для изменения таблиц используется команда ALTER TABLE. Вид производимого изменения определятся последующими дополнительными командами:

3.1. Переименование таблицы осуществляется с помощью подкоманды RENAME. Например, чтобы переименовать таблицу "news" в "news_new", нужно выполнить следующую команду:

ALTER TABLE `news` RENAME TO `news_new`;

3.2. Для добавления нового атрибута в таблицу потребуется подкоманда ADD COLUMN, для которой нужно ввести название нового атрибута и указать его тип. Например, добавление к таблице "news" нового атрибута "author" (имя автора) будет выглядеть следующим образом:

ALTER TABLE `news` ADD COLUMN `author` VARCHAR(42);

Кроме того, можно задать положение добавляемого поля. Для этого в конец команды добавляется инструкция, указывающая, после какого столбца будет добавлено новое поле. Например, команда добавления атрибута "author" в таблицу "news" с тем, чтобы "author" стал вторым полем, выглядит следующим образом:

ALTER TABLE `news` ADD COLUMN `author` VARCHAR(42) AFTER `id`;

Чтобы поле стало первым в таблице, нужно заменить конструкцию с "AFTER ..." на ключевое слово "FIRST". Команда добавления атрибута "author" в таблицу "news" в качестве первого поля будет выглядеть так:

ALTER TABLE `news` ADD COLUMN `author` VARCHAR(42) FIRST;

3.3. Для изменения типа атрибута таблицы служит подкоманда MODIFY, для которой нужно указать таблицу, название атрибута и заново перечислить все требуемые для него параметры. Например, чтобы изменить тип атрибута "author" таблицы "news" на CHAR(42), нужно выполнить следующую команду:

ALTER TABLE `news` MODIFY COLUMN `author` CHAR(42);

3.4. Для удаления атрибута из таблицы служит подкоманда DROP COLUMN. Например, команда удаления атрибута "author" из таблицы "news" выглядит так:

ALTER TABLE `news` DROP COLUMN `author`;

Наши рекомендации