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) - на уровне таблицы
NULL и NOT NULL
Чтобы указать, может ли столбец принимать значение NULL, при определении столбца ему можно задать атрибут NULL или NOT NULL. Если этот атрибут явным образом не будет использован, то по умолчанию столбец будет допускать значение NULL.
FirstName VARCHAR(20) NOT NULL,
DEFAULT
Атрибут DEFAULT определяет значение по умолчанию для столбца.
Age INT DEFAULT 18,
CHECK
Атрибут CHECK задает ограничение для диапазона значений, которые могут храниться в столбце. Для этого после CHECK указывается в скобках условие, которому должен соответствовать столбец или несколько столбцов.
Age INT DEFAULT 18 CHECK(Age >0 AND Age < 100),
Установка имени ограничений
С помощью ключевого слова CONSTRAINT можно задать имя для ограничений. Они указываются после ключевого слова CONSTRAINT перед атрибутами на уровне таблицы.
Смысл установки имен ограничений заключается в том, что впоследствии через эти имена мы сможем управлять ограничениями - удалять или изменять их.
CONSTRAINT customers_pk PRIMARY KEY(Id)