Создание базы данных
Выбор базы данных
Структура таблицы
Описание столбца
Cписок таблиц текущей базы данных
Числовые данные
Строковые данные
Календарные данные
Первичный ключ
Обычный и уникальный индексы
Добавление данных
Многострочный оператор INSERT
Пакетная загрузка данных
523.50K
Категория: Базы данныхБазы данных

Создание БД и таблиц. Типы данных. Индексы. Добавление данных

1.

Урок 29
•Создание БД и таблиц.
•Типы данных.
•Индексы.
•Добавление данных

2.

Запуск MySQL
Для запуска mysql необходимо:
• выбрать пункт системного меню: пуск –
программы – MySQL – MySQL Server 5.0 –
MySQL Command Line Client
• в командной строке перейти в каталог с
программой c:\mysql\bin и набрать команду:
mysql –u root
-u параметр, после которого следует имя пользователя (root)

3.

Создание нового пользователя
Создание нового пользователя user с паролем
hello
Create user user identified by ‘hello’;
Выход из оболочки производится при
помощи команды exit или quit
Mysql –uuser –phello
Mysql –u user –phello
Если необходимо скрыть пароль, то
возможно использование параметра –p без
пароля, будет запрошен пароль

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

Создание базы данных wet:
CREATE DATABASE wet;
CREATE DATABASE IF NOT EXISTS wet;
Просмотр существующих баз данных:
SHOW DATABASES;
Удаление базы данных:
DROP DATABASE wet;
DROP DATABASE IF NOT EXISTS wet;

5. Выбор базы данных

USE test;
Оператор CREATE TABLE
Полный синтаксис данного оператора выглядит следующим
образом:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)] [table_options] [select_statement]
temporary - позволяет создавать временные таблицы.
if not exists таблица создается только в том случае, если она не
существует, в противном случае никаких действий предпринимать
не следует.
create_definition – структура таблицы, параметров таблицы
table_options - параметры таблицы
select_statement – вложенный запрос, позволяющего создать
таблицу из результата, возвращаемого оператором select.

6. Структура таблицы

Структура таблицы, представляет собой список,
который определяет имена столбцов и индексов.
В качестве элемента списка могут выступать:
•описание столбца, например, counter bigint;
•определение индекса.

7. Описание столбца

null — означает, что столбец может содержать значение null (по
умолчанию).
not null — столбец не может содержать значение null.
DEFAULT default_value — значение, принимаемое по умолчанию.
auto_increment —максимальное значение столбца плюс единица.
key — или index, помечает столбец как обычный индекс.
primary key — наличие данного индекса позволяет пометить столбец как
первичный ключ.
unique [key] — помечает столбец как уникальный индекс, в котором
недопустимы повторяющиеся значения.
foreign key— внешний ключ применим только для таблиц типа InnoDB,
для всех других таблиц игнорируется.
comment— комментарий к столбцу, который отображается операторами
show create table и show full columns.
character set — определяет кодировку текстового столбца.
collate — определяет правила сравнения текстовых столбцов (сортировку).

8. Cписок таблиц текущей базы данных

show tables;
Удаление таблицы
drop table tbl;
drop table test.tbl;
Просмотр структуры таблицы
Describe tbl;
Describe test.tbl;

9.

Типы данных
Числовые данные — целые числа, не содержащие
дробной части (например, 124), а также
вещественные числа, состоящие из
последовательности цифр, разделенных точкой
(например, 56.45).
Строковые данные— последовательность
символов, заключенных в одинарные или двойные
кавычки: 'Hello world', '123', "MySQL". В качестве
стандарта в SQL определяются одинарные кавычки.
Календарные данные — специальный тип для
обозначения даты и времени.

10. Числовые данные

Точечные типы
Тип
TINYINT[(М)]
SMALLINT[(М)]
MEDIUMINT[(М)]
INT[(М)],
INTEGER[(М)]
BIGINT[(M)]
ВIТ[(М)]
BOOL, BOOLEAN
DECIMAL[(М[, D] )],
DEC[(M[,D)]],
NUMERUC [(M[,D) ]]
Объем памяти
Диапазон
1 байт
от -128 до 127 (от -27 до 27-1)
от0до255(от0до28-1)
2 байта
от -32768 до 32767 (от -215 до 215-1)
от 0 до 65535 (от 0 до 216-1)
3 байта
от -8388608 до 8388608 (от -223 до
223-1) от 0 до 16777215 (от 0 до 2241)
4 байта
от -2147683648 до 2147683648 (от 231 до 231-1) от 0 до 4294967295 (от
0 до 232-1)
8 байт
(от-263до263-1) (от 0 до 264)
(М+7)/8 байт От 1 до 64 битов, в зависимости от
значения М
1 байт
Либо 0, либо 1
М + 2 байта
Повышенная точность; зависит от
параметров М и D

11.

Приближенные типы
Тип
FLOAT [ (M, D) ]
Объем
памяти
4 байта
DOUBLE [(M, D)] , 8 байт
REAL[(M, D)] ,
DOUBLE
PRECISION[(M,D)
]
Диапазон
Минимальное значение ±1.17549435110"39 Максимальное значение
±3.402823466-1038
Минимальное значение
±2.2250738585072014-10308
Максимальное значение
±1.797693134862315-10308

12. Строковые данные

Тип
Объем памяти
CHAR(M)
М символов
Максимальный
размер
М символов
VARCHAR(M)
tinyblob, tinytext
BLOB, TEXT
L+1 символов
L+1 символов
L+2 символов
М символов
28-1 символов
216-1 символов
MEDIUMBLOB,
MEDIUMTEXT
LONGBLOB,
LONGTEXT
L+3 символов
224-1 символов
L+4 символов
232-1 символов
ENOM('valuel', 'value2 1 или 2 байта
',...)
SET('valuel', 'value2', 1, 2, 3, 4 или 8
...)
байт
65535 элементов
64 элемента

13. Календарные данные

Тип
Объем
памяти
Диапазон
DATE
3 байта
от '1000-01-01' до '9999-1231'
от '-828:59:59' до '828:59:59'
TIME
3 байта
DATATIME
8 байт
от'1000-01-01
00:00:00'до'9999-12-31
00:00:00'
TIMESTAMP[(M)]
4 байта
YEAR[(M)]
1 байт
от'1970-01-01
00:00:00'до'2038-12-31
59:59:59'
ОТ 1901 ДО 2155 ДЛЯ
YEAR(4)
от 1970 до 2069 для year (2)

14.

Индексы
Идея индексов состоит в том, чтобы создать для столбца
копию, которая постоянно будет поддерживаться в
отсортированном состоянии.
Виды индексов:
Первичный ключ — главный индекс таблицы.
Обычный индекс — таких индексов может быть несколько.
Уникальный индекс — уникальных индексов также может
быть несколько, но значения индекса не должны повторяться.
Полнотекстовый индекс— специальный вид индекса для
столбцов типа text, позволяющий производить полнотекстовый
поиск.
В таблице может быть не более 32 индексов, а
многостолбцовый индекс может охватывать не более 16
столбцов.

15. Первичный ключ

Столбцы, помеченные атрибутом primary key, не могут принимать
значение null.
CREATE TABLE catalogs (id_catalog INT(11) NOT NULL
PRIMARY KEY, name TINYTEXT NOT NULL);
Альтернативный способ объявления первичного ключа
CREATE TABLE catalogs (id_catalog INT(11) NOT NULL, name
TINYTEXT NOT NULL, PRIMARY KEY(id_catalog));
В качестве первичного ключа может выступать не только
целочисленный столбец, но и текстовые данные. В этом случае
необходимо обязательно добавить в круглых скобках число
символов, входящих в индекс.

16.

CREATE TABLE catalogs (id_catalog INT(11) NOT NULL, name
TINYTEXT NOT NULL, PRIMARY KEY(name(10)));
Первичный ключ создается по первым 10 символам столбца name.
Можно индексировать от 1 до 1000 символов текстового столбца.
Создание многостолбцового (составного) первичного ключа
CREATE TABLE catalogs (id_catalog INT(11) NOT NULL, name
TINYTEXT NOT NULL, PRIMARY KEY(id_catalog,
name(10)));
Только целочисленный тип данных может быть снабжен
атрибутом auto_increment, который обеспечивает автоматическое
создание уникального индекса. Передача столбцу, снабженному
этим атрибутом, значения null или 0 приводит к автоматическому
присвоению ему максимального значения столбца плюс 1
CREATE TABLE catalogs (id_catalog INT(11) NOT NULL
PRIMARY KEY AUTO_INCREMENT, name TINYTEXT NOT
NULL);

17. Обычный и уникальный индексы

Таблица может содержать несколько обычных и уникальных
индексов, для того чтобы их различать, индексы могут иметь
собственные имена. Объявление индекса производится при
помощи ключевого слова index или key. Для уникальных
индексов, которые не позволяют добавлять в таблицу записи с
уже существующими значениями, вводится дополнительное
ключевое слово unique, т. е. пишется unique index и unique key.
KEY first (id_product), KEY second (id_user);
В отличие от первичного ключа, для обычных индексов
недопустимо их определение вместе со столбцом. Индекс
объявляется отдельно в конце таблицы при помощи ключевого
слова index или key.

18. Добавление данных

Однострочный оператор INSERT
Cинтаксис оператора insert первой формы:
INSERT [INTO] tbl [(col_name,...)] VALUES
(expression,...)
Данный оператор вставляет новую запись в таблицу tbl,
значения записи перечисляются в списке expression,
порядок следования столбцов может задаваться списком
col_name. Значения передаются в списке после ключевого
слова values.
Cинтаксис оператора insert с ключевым словом set:
INSERT [INTO] tbl SET col_name=expr, ...
Оператор заносит в таблицу tbl новую запись, столбец
col_name в котором получает значение ехрr.

19. Многострочный оператор INSERT

Многострочный оператор insert совпадает по форме
с однострочным оператором. В нем используется
ключевое слово values, после которого добавляется
не один, а несколько списков expression.
INSERT INTO catalogs VALUES
(0, 'Процессоры'),
(0, 'Материнские платы'),
(0, 'Видеоадаптеры'),
(0, 'Жесткие диски'),
(0, 'Оперативная память');

20. Пакетная загрузка данных

Для пакетной загрузки данных из текстового
файла в таблицу в СУБД MySQL предназначен
специальный оператор load data. Оператор имеет
следующий синтаксис:
LOAD DATA [LOCAL] INFILE 'filename' INTO
TABLE tbl
English     Русский Правила