MySQL Flashcards
Создать БД
CREATE DATABASE [IF NOT EXISTS] имя_базы_даных;
Первая форма CREATE DATABASE имя_базы_даных пытается создать базу данных, но если такая база данных уже существует, то операция возвратит ошибку.
Вторая форма CREATE DATABASE IF NOT EXISTS имя_базы_даных пытается создать базу данных, если на сервере отсутствует бд с таким именем.
Использовать БД
USE имя_базы_даных
Удалить БД
DROP DATABASE [IF EXISTS] имя_базы_даных;
Первая форма DROP DATABASE имя_базы_даных пытается удалить базу данных, но если такая база данных отсутствует на сервере, то операция возвратит ошибку.
Вторая форма DROP DATABASE IF EXISTS имя_базы_даных пытается удалить базу данных, если на сервере имеется бд с таким именем.
Создать таблицу
CREATE TABLE название_таблицы
(название_столбца1 тип_данных атрибуты_столбца1,
название_столбца2 тип_данных атрибуты_столбца2,
…………………………………………
название_столбцаN тип_данных атрибуты_столбцаN,
атрибуты_уровня_таблицы
)
После команды CREATE TABLE идет название таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных, поэтому оно должно быть уникальным. Затем в скобках перечисляются названия столбцов, их типы данных и атрибуты. В самом конце можно определить атрибуты для всей таблицы. Атрибуты столбцов, а также атрибуты таблицы указывать необязательно.
Переименование таблиц
RENAME TABLE старое_название TO новое_название;
Полное удаление данных
TRUNCATE TABLE название_таблицы;
Удаление таблиц
ROP TABLE название_таблицы;
Символьные типы
CHAR: представляет строку фиксированной длины.
VARCHAR: представляет строку переменной длины. Тип CHAR может хранить до 255 байт. Всего тип VARCHAR может хранить до 65535 байт.
TINYTEXT: представляет текст длиной до 255 байт.
TEXT: представляет текст длиной до 65 КБ.
MEDIUMTEXT: представляет текст длиной до 16 МБ
LARGETEXT: представляет текст длиной до 4 ГБ
Числовые типы
TINYINT: представляет целые числа от -128 до 127, занимает 1 байт
BOOL: фактически не представляет отдельный тип, а является лишь псевдонимом для типа TINYINT(1) и может хранить два значения 0 и 1. Однако данный тип может также в качестве значения принимать встроенные константы TRUE (представляет число 1) и FALSE (предоставляет число 0).
Также имеет псевдоним BOOLEAN.
TINYINT UNSIGNED: представляет целые числа от 0 до 255, занимает 1 байт
SMALLINT: представляет целые числа от -32768 до 32767, занимает 2 байтa
SMALLINT UNSIGNED: представляет целые числа от 0 до 65535, занимает 2 байтa
MEDIUMINT: представляет целые числа от -8388608 до 8388607, занимает 3 байта
MEDIUMINT UNSIGNED: представляет целые числа от 0 до 16777215, занимает 3 байта
INT: представляет целые числа от -2147483648 до 2147483647, занимает 4 байта
INT UNSIGNED: представляет целые числа от 0 до 4294967295, занимает 4 байта
BIGINT: представляет целые числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, занимает 8 байт
BIGINT UNSIGNED: представляет целые числа от 0 до 18 446 744 073 709 551 615, занимает 8 байт
DECIMAL: хранит числа с фиксированной точностью. Данный тип может принимать два параметра precision и scale: DECIMAL(precision, scale).
Параметр precision представляет максимальное количество цифр, которые может хранить число. Это значение должно находиться в диапазоне от 1 до 65.
Параметр scale представляет максимальное количество цифр, которые может содержать число после запятой. Это значение должно находиться в диапазоне от 0 до значения параметра precision. По умолчанию оно равно 0.
Например, в определении следующего столбца:
1
salary DECIMAL(5,2)
Число 5 - precision, а число 2 - scale, поэтому данный столбец может хранить значения из диапазона от -999.99 до 999.99.
Размер данных в байтах для DECIMAL зависит от хранимого значения.
Данный тип также имеет псевдонимы NUMERIC, DEC, FIXED.
FLOAT: хранит дробные числа с плавающей точкой одинарной точности от -3.4028 * 1038 до 3.4028 * 1038, занимает 4 байта
Может принимать форму FLOAT(M,D), где M - общее количество цифр, а D - количество цифр после запятой
.
DOUBLE: хранит дробные числа с плавающей точкой двойной точности от -1.7976 * 10308 до 1.7976 * 10308, занимает 8 байт. Также может принимать форму DOUBLE(M,D), где M - общее количество цифр, а D - количество цифр после запятой.
Данный тип также имеет псевдонимы REAL и DOUBLE PRECISION, которые можно использовать вместо DOUBLE.
Типы для работы с датой и временем
DATE: хранит даты с 1 января 1000 года до 31 деабря 9999 года (c “1000-01-01” до “9999-12-31”). По умолчанию для хранения используется формат yyyy-mm-dd. Занимает 3 байта.
TIME: хранит время от -838:59:59 до 838:59:59. По умолчанию для хранения времени применяется формат “hh:mm:ss”. Занимает 3 байта.
DATETIME: объединяет время и дату, диапазон дат и времени - с 1 января 1000 года по 31 декабря 9999 года (с “1000-01-01 00:00:00” до “9999-12-31 23:59:59”). Для хранения по умолчанию используется формат “yyyy-mm-dd hh:mm:ss”. Занимает 8 байт
TIMESTAMP: также хранит дату и время, но в другом диапазоне: от “1970-01-01 00:00:01” UTC до “2038-01-19 03:14:07” UTC. Занимает 4 байта
YEAR: хранит год в виде 4 цифр. Диапазон доступных значений от 1901 до 2155. Занимает 1 байт.
Составные типы
ENUM: хранит одно значение из списка допустимых значений. Занимает 1-2 байта
SET: может хранить несколько значений (до 64 значений) из некоторого списка допустимых значений. Занимает 1-8 байт.
Бинарные типы
TINYBLOB: хранит бинарные данные в виде строки длиной до 255 байт.
BLOB: хранит бинарные данные в виде строки длиной до 65 КБ.
MEDIUMBLOB: хранит бинарные данные в виде строки длиной до 16 МБ
LARGEBLOB: хранит бинарные данные в виде строки длиной до 4 ГБ
PRIMARY KEY
Атрибут PRIMARY KEY задает первичный ключ таблицы.
OrderId INT PRIMARY KEY
PRIMARY KEY(OrderId, ProductId) - на уровне таблицы
AUTO_INCREMENT
Атрибут AUTO_INCREMENT позволяет указать, что значение столбца будет автоматически увеличиваться при добавлении новой строки. Данный атрибут работает для столбцов, которые представляют целочисленный тип или числа с плавающей точкой.
Id INT PRIMARY KEY AUTO_INCREMENT,
UNIQUE
Атрибут UNIQUE указывает, что столбец может хранить только уникальные значения.
Phone VARCHAR(13) UNIQUE
UNIQUE(Email, Phone) - на уровне таблицы