timbios Опубликовано 19 июля, 2021 Жалоба Поделиться Опубликовано 19 июля, 2021 Для создания таблиц в MySQL используется следующий формат: CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci; При успешном выполнении команды будет выведено сообщение: Чтобы в базе создать таблицу используется команда CREATE TABLE. При этом нужно описать столбцы, которые будут у этой таблицы. Давайте создадим табличку, в которой будут храниться пользователи. У каждого пользователя будет идентификатор, email и имя: CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT , `email` VARCHAR(255) NOT NULL , `name` VARCHAR(255) NOT NULL , PRIMARY KEY (`id`), UNIQUE (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; id, name, email - это имена столбцов. INT, VARCHAR(255) - типы данных NOT NULL означает, что поле не может иметь значение NULL (или другими словами, оно всегда должно иметь какое-то значение). PRIMARY KEY (первичный ключ) - это столбец, значения в котором будут всегда уникальными (к примеру - ID записи). AUTO_INCREMENT можно указать для первичного ключа, тогда при добавлении новых записей это поле будет заполняться автоматически. При добавлении первой записи он будет равен 1, потом 2 и т.д. UNIQUE(имя столбца) - создание уникального индекса. Уникальный индекс накладывает ограничения на уникальность значений в рамках столбца email. Это мы делаем для того, чтобы у двух разных пользователей нельзя было задать одинаковый email. Типы данных Обозначение Занимаемый объем (байт) Область применения TINYINT, BOOL 1 При использовании в формате представления без знака позволяет хранить значения от 0 до 255; в противном случае — от -128 до 127. В будущем должен быть предусмотрен новый логический тип, но до сих пор для представления логических значений использовался тип данных TINYINT, т.е. BOOL синоним TINYINT(1) SMALLINT 2 Целое число в диапазоне от -32768 до 32767 MEDIUMINT 3 Целое число в диапазоне от -8388608 до 8388607 INT, INTEGER 4 Целое число в диапазоне от -2e32 до 2e32 - 1 BIGINT 8 Целое число в диапазоне от -2e64 до 2e64 - 1 FLOAT 4 Число с плавающей точкой одинарной точности DOUBLE 8 Число с плавающей точкой двойной точности DECIMAL Произвольное, в зависимости от точности Распакованное число с плавающей точкой, которое хранится в таком же формате, как CHAR. Используется для представления небольших десятичных значений, таких как денежные суммы DATE 3 Отображается в формате YYYY-MM-DD DATETIME, TIMESTAMP 8 Отображается в формате YYYY-MM-DD HH:MM:SS TIME 3 Отображается в формате HHH:MM:SS, где HHH — значение от -838 до 838. Это позволяет применять значения типа time для представления продолжительности времени между двумя событиями YEAR 1 Отображается в формате YYYY, который представляет значения от 1901 до 2155 CHAR N байт Строка постоянной длины. Строка, имеющая длину меньше объявленной, дополняется справа пробелами. Значение N должно быть меньше или равно 255 VARCHAR N байт Строка переменной длины. BINARY N байт Сохраняет байтовые строки TINYBLOB, TINYTEXT до 255 Сохраняет строки, операции сортировки и сравнения данных типа blob выполняются с учетом регистра; операции с данными типа text — без учета регистра BLOB, TEXT до 64 Кбайт Длинные строки MEDIUMBLOB, MEDIUMTEXT до 16 Мбайт Длинные строки LONGBLOB, LONGTEXT до 4 Гбайт Длинные строки ENUM(value1, ..., valueN) 1 или 2 Коллекция значений (65536 возможных значений) SET(value1, ..., valueN) до 8 Коллекция значений (64 возможных значений) Чтобы посмотреть структуру новой таблицы введите: DESCRIBE users; После создания таблиц их можно изменять, вот несколько полезных команд для изменения их структуры: // Переименование таблицы ALTER TABLE имя_таблицы RENAME новое_имя_таблицы // Добавление столбца ALTER TABLE имя_таблицы ADD имя_столбца тип_данных // Переименование столбца ALTER TABLE имя_таблицы RENAME COLUMN старое_имя_столбца TO новое_имя_столбца; // Удаление столбца ALTER TABLE имя_таблицы DROP имя_столбца // Удаление всей таблицы DROP TABLE имя таблицы; Добавление данных в таблицу Для добавления данных используется запрос INSERT. Синтаксис: INSERT INTO имя_таблицы ([столбцы]) VALUES ([значения]); Запрос данных из таблицы Данные из таблиц получают с помощью запроса SELECT. Самый простой запрос, позволяющий просмотреть записи таблицы, выглядит так: SELECT * FROM users; Звездочка означает взять все столбцы таблицы Если нам не нужен в результате id, можно написать так: SELECT name, email FROM users; Для ограничения выдачи используется ключевое слово LIMIT. Выведем только первые 2 записи. SELECT * FROM users LIMIT 2; Для того, чтобы выполнить смещение на 2 записи, нужно использовать ключевое слово OFFSET. SELECT * FROM users LIMIT 2 OFFSET 2; Таким образом мы пропустили 2 первые записи и ограничили выборку двумя следующими записями. Чтобы вывести следующие 2 нужно увеличить смещение еще на 2, изменив значение OFFSET: SELECT * FROM users LIMIT 2 OFFSET 4; С помощью OFFSET и LIMIT реализуется пагинация записей. DISTINCT (переводится с английского как "индивидуальный", "отдельный"). Используется, чтобы оставить не повторяющиеся записи. SELECT DISTINCT name FROM users; Если нужно отфильтровать значения по какому-то условию, используется WHERE. Например: SELECT * FROM users WHERE name = "Иван"; Используя операторы AND и OR можно задать несколько условий. SELECT * FROM users WHERE name = "Иван" OR name = "Ольга"; С помощью ключевого слова NOT можно инвертировать условие: SELECT * FROM users WHERE NOT name = "Ольга"; Сортировка Для сортировки значений используется ключевое слово ORDER BY. По умолчанию ORDER BY делает сортировку в порядке возрастания (ASC). SELECT * FROM users ORDER by name; Если нужно отсортировать в обратном порядке нужно добавить ключевое слово DESC: SELECT * FROM users ORDER by name DESC; Это основные и самые часто используемые команды. Если нужно что-то еще - гуглится без проблем. Автор статьи: Артём Ивашкевич Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения