Artem Shmatok11859 Человек хозяин своей жизни. 5 months ago... мысли

Как поменять порядок столбцов в таблице MySQL?

Иногда необходимо изменить порядок следования столбцов в таблице MySQL.
В приложении phpMyAdmin нет такой функции.
Это легко сделать, выполнив следующий запрос:
ALTER TABLE `table_name` MODIFY `column_name` column_definition AFTER column_before;
ALTER TABLE `table_name` MODIFY `name` varchar(255) NOT NULL DEFAULT '' AFTER id;


table_name - имя таблицы,
column_name - имя колонки, которую нужно перенести,
column_definition - определения колонки (можно посмотреть, выполнив запрос "SHOW CREATE TABLE table_name"),
column_before - имя колонки, после которой нужно вставить переносимую колонку.

Быстрая обработка запросов в таблицах с большим объемом записей

Настройка innodb_buffer_pool_size определяет размер буфера для Innodb движка. Это часть оперативной памяти, в которой Mysql будет хранить данные для чтения таблиц и их индексов. Чем больше размер этого параметра, тем меньше операций с диском. А значит, тем быстрее работает Mysql.

Устанавливается в my.cnf
innodb_buffer_pool_size = 2G
Ключевые теги: innodb_buffer_pool_size · MySQL

Посчитать количество одинаковых записей в таблице

SELECT `row`, COUNT(`row`) AS cnt FROM `table` GROUP BY `row`
Ключевые теги: GROUP BY, одинаковые записи · MySQL

MySQL - описание типов полей (INT, VARCHAR, TEXT) и прочее

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

Целочисленные типы

TINYINT - Наименьший целочисленный тип. Диапазон значений - -128..127

SMALLINT - Малый целый тип. Диапазон значений - -32768..32767 и соответственно
0..65535 для беззнакового целого.

MEDIUMINT - Средний целый тип. Значения могут быть от -8388608 до 8388607 и
от 0 до 16777215 при указании UNSIGNED.

INT - Обычный целый тип. Значения - -2147483648..2147483647 и 0..4294967295 для беззнакового целого.
Отлично подходит для чисел, а также для хранения дат (TIMESTAMP - функция time() в пхп) и IPv4 (нужно использовать беззнаковый тип)

BIGINT - Большой целочисленный тип. Значения лежат в пределах от -9223372036854775808 до 9223372036854775807 и от 0 до 18446744073709551615 для UNSIGNED. Впрочем, примите к сведению, что все арифметический действия производятся при помощи BIGINT со знаком, поэтому не следует пользоваться значениями, большими, чем 9223372036854775807.

Типы чисел с плавающей точкой

FLOAT - Малое число с плавающей точкой. Разрядность не указывается - для этого типа она считается <= 24. Значения этого типа лежат в границах от -3.402823466E+38 до -1.175494351E-38, 0 и от 1.175494351E-38 до 3.402823466E+38.

DOUBLE - Простое число с плавающей точкой (с двойной размерностью). Значения - от -1.7976931348623157E+308 до -2.2250738585072014E-308, 0 и от 2.2250738585072014E-308 до 1.7976931348623157E+308 Синонимами к DOUBLE являются REAL и DOUBLE PRECISION

DECIMAL - Unpacked число с плавающей точкой. Unpacked означает то, что значение хранится в строке, по символу на каждый разряд числа, точку и знак. Диапазон значений этого типа такой же, как и у DOUBLE. Синоним к DECIMAL - NUMERIC.

Типы даты/времени

DATE - Тип для хранения даты. Допустимые значения - от ‘1000-01-01′ до ‘9999-12-31′. Дата хранится в виде YYYY-MM-DD.

DATETIME - Комбинация даты и времени. Допустимые значения - от ‘1000-01-01 00:00:00′ до ‘9999-12-31 23:59:59′. Данные зранятся в виде ‘YYYY-MM-DD HH:MM:SS’.

TIMESTAMP - Еще одна дата. Значения лежат в диапазоне от ‘1970-01-01 00:00:00′ до некоторого времени в 2037-году. В зависимости от значения параметра M формат хранения данных может быть YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD или YYMMDD (значения 14, 12, 8 или 6). По умолчанию в поля такого типа значения заносятся с текщими датой и временем.

TIME - Время. Значения могут лежать в границах ‘-838:59:59′..’838:59:59′ и представляются в формате ‘HH:MM:SS’. YEAR[(2 или 4)] Хранит год. В зависимости от значения указанного в скобках (по умолчанию - 4), год хранится в виде YYYY или YY.

Строковые типы

CHAR - Строка, всегда имеющая длину M (в случае, когда занесенное значение короче, оно дополняется пробелами). M может лежать в пределах от 1 до 255. Приставка NATIONAL указывет на необходимость использования кодовой таблицы, используемой по умолчанию.

VARCHAR - Аналогично посленему, за исключением того, что длина значения может быть произвольной (от 1 до 255 :), а все пробелы в конце строки удалаются.

TINYTEXT - Тип BLOB или TEXT, длиной от 1 до 255 символов.

TEXT - Тип BLOB или TEXT, длиной от 1 до 65535 символов.

MEDIUMTEXT - Тип BLOB или TEXT, длиной от 1 до 16777215 символов.

LONGTEXT - Тип BLOB или TEXT, длиной от 1 до 4294967295 символов.

Дополнительные типы

ENUM(’значение1′, ‘значение2′, …)
Перечислимый тип - тип, значения которого строго определены
(списком в скобках). Допустимое количество значений - от 1 до 65535.

SET(’значение1′, ‘значение2′, …)
Набор (множество) - тип, значения которого могут быть множествами,
состоящими из элементов, указаных в скобках. Каждое множество может
иметь не больше 64 элементов. Посоветовал бы использовать для полей где несколько значений (1/0)
Ключевые теги: типы полей · MySQL

Как изменить следующий AutoIndex номер

Например у нас в таблице 100 записей, мы удаляем 50 не нужных и при следующем добавлении записи AutoIndex будет не как нам надо 51, а 101.
Чтобы сделать по порядку, нужно внести изменения:

ALTER TABLE table_name AUTO_INCREMENT=51
Ключевые теги: AutoIndex, autoincrement · MySQL
1 2 Новые записи »