Основные команды SQL. Шпаргалка.

Язык SQL или Structured Query Language (язык структурированных запросов) предназначен для управления данными в системе баз данных.  В этой статье будет рассказано о часто используемых командах SQL. Идеально подойдёт для тех, кто хочет освежить свои знания об SQL.

Для примеров мы будем использовать OC Debian, MariaDB и консоль. Поехали…

Настройка базы данных для примеров.

Если у вас не стоит база данных, ставим ее.

apt-get install mariadb-server

Подключаемся к серверу :

mysql -u root -p
  • -u : User.
  • -p : Password.
  • -h : Host.

Создаем новую базу данных testdb :

CREATE DATABASE testdb;

Показать доступные базы данных :

SHOW DATABASES;

Выбрать базу данных testdb для использования :

USE testdb;

Удаление базы данных :

DROP DATABASE database_name;

Работа с таблицами.

Создадим таблицу со столбцами id, user, pass, data. Причем id будет автоматически увеличивать свое значение :

CREATE TABLE test_tbl(
   id INT NOT NULL AUTO_INCREMENT,
   user VARCHAR(100) NOT NULL,
   pass VARCHAR(40) NOT NULL,
   date DATE,
   PRIMARY KEY ( id )
   );
  • INT : тип столбца среднее целое число. Подписанный диапазон составляет от -2147483648 до 2147483647 .
  • VARCHAR : тип строка переменной длины ,может содержать буквы, цифры и специальные символы(100 , максимально сто символов).
  • NOT NULL : столбец не может не содержать значение ( не может быть пустым).
  • AUTO_INCREMENT : создает уникальный идентификатор при вставке новой записи  в таблицу.
  • PRIMARY KEY ( id ) : данное ограничение позволяет однозначно идентифицировать каждую запись в таблице. Первичный ключ должен содержать уникальные значения. Первичный ключ не может содержать NULL значений. Каждая таблица должна иметь первичный ключ, и каждая таблица может иметь только один первичный ключ.
  • DATA : тип дата. Формат: гггг-ММ-ДД.

Просмотр таблиц в базе :

SHOW TABLES;

Просмотра сведений о таблице :

DESCRIBE table_name;

Добавление данных в таблицу :

INSERT INTO test_tbl (user, pass, data)
  VALUES ('root', '12345', '2019-11-24');

Если заполняем все столбцы, можно просто перечислить значения :

INSERT INTO test_tbl
  VALUES ('2','test', 'test123', '2019.11.24');

Обновление данных в таблице. Скажем заменим поля user и pass для id 1 :

UPDATE test_tbl
  SET user = 'test', pass = 'root'
  WHERE id = 1 ;

WHERE это условие при котором будет произведена замена.

Удаление всех данных из таблице :

DELETE FROM table_name;

Удаление таблицы :

DROP TABLE table_name; 

Создание запросов.

SELECT

SELECT используется для получение данных. Давайте получим значения столбца user и pass .

SELECT user, pass
  FROM test_tbl;

Или получим всю таблицу :

SELECT * FROM test_tbl;

SELECT DISTINCT

В столбцах таблицы могут содержаться повторяющиеся данные. Используйте SELECT DISTINCT для получения только неповторяющихся данных.

SELECT DISTINCT col_name1, col_name2, …
  FROM table_name;

WHERE

В запросе мы можем использовать всяко разные условия. Выведем например все данные где user = ‘test’ :

SELECT * FROM test_tbl
  WHERE user = 'test';
  • сравнение текста;
  • сравнение численных значений;
  • логические операции AND (и), OR (или) и NOT (отрицание).

ORDER BY

ORDER BY используется для сортировки результатов запроса по убыванию или возрастанию. ORDER BY отсортирует по возрастанию, если не будет указан способ сортировки ASC или DESC.

SELECT * FROM test_tbl ORDER BY id DESC;

BETWEEN

С помощью BETWEEN мы можем выбрать определенный промежуток. Могут использованы числовые и текстовые значения, а также даты. Например с 2 по 4 запись :

SELECT * FROM test_tbl
  WHERE id BETWEEN 2 AND 4;

LIKE

Оператор LIKE используется в WHERE, чтобы задать шаблон поиска похожего значения.

  • _ — Подчеркнутый символ представляет собой один символ .
  • % — Знак процента представляет нулевой, один или несколько символов.
  • WHERE name LIKE ‘text%’ : Находит любые значения, начинающиеся с «text» .
  • WHERE name LIKE ‘%text’ : Находит любые значения, заканчивающиеся на «text» .
  • WHERE name LIKE ‘%text%’ : Находит любые значения, которые имеют «text» в любой позиции .
  • WHERE name LIKE ‘_text%’ : Находит любые значения, которые имеют «text» во второй позиции .
  • WHERE name LIKE ‘text_%_%’ : Находит любые значения, начинающиеся с «text» и длиной не менее 3 символов .
  • WHERE name LIKE ‘text%data’ : Находит любые значения, начинающиеся с «text» и заканчивающиеся на «data» .

IN

С помощью оператора IN можно задать несколько значений в WHERE.

SELECT <столбец 1>, <столбец 2>, …
  FROM <table_name>
  WHERE <имя столбца> IN (<значение 1>, <значение 2>, …); 

Агрегатные функции

  • COUNT (Имя столбца) — возвращает количество строк
  • SUM ( Имя столбца ) — возвращает сумму значений в данном столбце
  • AVG ( Имя столбца ) — возвращает среднее значение данного столбца
  • MIN ( Имя столбца ) — возвращает наименьшее значение данного столбца
  • MAX ( Имя столбца ) — возвращает наибольшее значение данного столбца
SELECT SUM(id) FROM test_tbl ;

SELECT MAX(id) FROM test_tbl ;

SELECT COUNT(user) FROM test_tbl
WHERE id = 1 ;

Резервное копирование базы и восстановление.

Утилита mysqldump позволяет получить дамп содержимого базы данных или совокупности баз для создания резервной копии. Давайте сразу сделаем копию базы :

mysqldump -uroot -p testdb > /tmp/test_copy.sql
  • -u : User
  • -p : Password
  • -h : Host
  • testdb : Name data base.
  • test_copy.sql : Файл дампа.

Если нужно создать копию нескольких баз, то указываем их после параметра -B

mysqldump -uroot -p -B testdb testdb1 testdb2 > /tmp/test_copy.sql

А для того чтобы сделать дамп всех баз данных, необходимо использовать параметр —all-databases (или сокращенно -A), пример:

mysqldump -uroot -p -A > /tmp/all_base.sql

Восстановление дампа базы :

mysql -uroot -p testdb < /tmp/testdb_copy.sql

Или через mysql-console:

mysql> use testdb;
mysql> source /tmp/testdb_copy.sql

На этом мы закончим с базовыми командами SQL )))

If you have found a spelling error, please, notify us by selecting that text and tap on selected text.

Один ответ на “Основные команды SQL. Шпаргалка.”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *