Статьи

Учебник MySQL: руководство для начинающих изучать MySQL

MySQL Tutorial — вторая статья в этой серии блогов. В предыдущей статье «  Что такое MySQL» я познакомил вас со всеми основными терминологиями, которые вы должны были понять, прежде чем начать работу с этой реляционной базой данных. В этом блоге MySQL вы изучите все операции и команды, необходимые для изучения ваших баз данных.

Темы, рассматриваемые в этой статье, в основном делятся на 4 категории: DDL, DML, DC и TCL.

  • DDL (Data Manipulation Language) состоит из тех команд , которые используются для определения базы данных. Пример: CREATE, DROP, ALTER, TRUNCATE, COMMENT, RENAME.
  • DML (Data Manipulation Language) команд сделки с манипулированием представления данных в базе данных. Пример: SELECT, INSERT, UPDATE, DELETE.
  • DCL (Data Language Control) Команда сделки с правами, разрешениями и другими элементами управления системой база данных. Пример: GRANT, INVOKE
  • TCL (Transaction Control Language) состоит из тех команд , которые в основном имеют дело с транзакцией в базе данных.

Помимо команд, ниже приведены другие темы, описанные в блоге:

Мы собираемся охватить каждую из этих категорий по одному.

В этом блоге по MySQL Tutorial я собираюсь рассмотреть приведенную ниже базу данных в качестве примера, чтобы показать вам, как писать команды.

Итак, начнем сейчас!

Учебник MySQL: команды определения данных (DDL)

Этот раздел состоит из тех команд, с помощью которых вы можете определить свою базу данных. Команды:

Теперь, прежде чем я начну с команд, позвольте мне рассказать вам, как упомянуть комментарии в MySQL.

Комментарии

Как и любой другой язык программирования, в основном есть два типа комментариев.

  • Однострочные комментарии: однострочные комментарии начинаются с ‘-‘. Таким образом, любой текст, упомянутый после — до конца строки, будет игнорироваться компилятором.

Пример:

--Select all:
SELECT * FROM Students;
  • Многострочные комментарии: Многострочные комментарии начинаются с / * и заканчиваются * /. Таким образом, любой текст, упомянутый между / * и * /, будет игнорироваться компилятором.

Пример:

/*Select all the columns
of all the records
in the Students table:*/
SELECT * FROM Students;

Теперь, когда вы знаете, как упоминать комментарии в MySQL, давайте продолжим с командами DDL.

СОЗДАЙТЕ

Оператор create используется для создания схемы, таблиц или индекса.

Заявление «CREATE SCHEMA»

Этот оператор используется для создания базы данных.

Синтаксис:

CREATE SCHEMA Database_Name;

Пример:

CREATE SCHEMA StudentsInfo;

Заявление «CREATE TABLE»

Этот оператор используется для создания новой таблицы в базе данных.

Синтаксис:
CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);
Пример:
CREATE TABLE Students
(
StudentID int,
StudentName varchar(255),
ParentName varchar(255),
Address varchar(255),
PostalCode int,
City varchar(255)
);

Заявление «CREATE TABLE AS»

Этот оператор используется для создания новой таблицы из существующей таблицы. Таким образом, эта таблица получает те же определения столбцов, что и существующая таблица.

Синтаксис:

CREATE TABLE     SELECT     FROM new_table_name AScolumn1, column2,...existing_table_name     WHERE ....;

Пример:

CREATE TABLE ExampleTable AS
SELECT Studentname, Parentname
FROM Students;

ALTER

Команда ALTER используется для добавления, изменения или удаления ограничений или столбцов.

Заявление «ALTER TABLE»

Этот оператор используется для добавления, изменения или удаления ограничений и столбцов из таблицы.

Синтаксис:

ALTER TABLE table_name
ADD column_name datatype;

Пример:

ALTER TABLE Students
ADD DateOfBirth date;

DROP

Команда DROP используется для удаления базы данных, таблиц или столбцов.

Заявление «DROP SCHEMA»

Этот оператор используется для удаления полной схемы.

Синтаксис:

DROP SCHEMA schema_name;

Пример:

DROP SCHEMA StudentsInfo;

Заявление «DROP TABLE»

Этот оператор используется для удаления всей таблицы со всеми ее значениями.

Синтаксис:

DROP TABLE table_name;

Пример:

DROP TABLE table_name;

TRUNCATE

Этот оператор используется для удаления данных, которые присутствуют внутри таблицы, но таблица не удаляется.

Синтаксис:

TRUNCATE TABLE table_name; 

Пример:

TRUNCATE TABLE Students;

ПЕРЕИМЕНОВАТЬ

Этот оператор используется для переименования одной или нескольких таблиц.

Синтаксис:

RENAME TABLE 

     tbl_name TO new_tbl_name

     [, tbl_name2 TO new_tbl_name2] ...

Пример:

RENAME Students TO Infostudents;

Теперь, прежде чем перейти к дальнейшим разделам, позвольте мне рассказать вам о различных типах ключей и ограничений, которые вы должны упомянуть при работе с базами данных.

Различные типы ключей в базе данных

Есть в основном 5 типов ключей, которые могут быть упомянуты в базе данных.

  • Ключ-кандидат . Минимальный набор атрибутов, которые могут однозначно идентифицировать кортеж, известен как ключ-кандидат. Отношение может содержать более одного ключа-кандидата, где ключ является простым или составным ключом.
  • Super Key: набор атрибутов, которые могут однозначно идентифицировать кортеж, называется Super Key. Таким образом, ключ-кандидат — это супер-ключ, но, наоборот, это не так.
  • Первичный ключ: набор атрибутов, которые можно использовать для уникальной идентификации каждого кортежа, также является первичным ключом. Итак, если в отношениях присутствует 3-4 ключа-кандидата, то из них можно выбрать один из первичных ключей.
  • Альтернативный ключ: ключ-кандидат, отличный от первичного ключа, называется альтернативным ключом .
  • Внешний ключ: атрибут, который может принимать только значения, представленные в качестве значений какого-либо другого атрибута, является внешним ключом для атрибута, к которому он относится.

Ограничения, используемые в базе данных

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

Рисунок 1: Ограничения, используемые в базе данных: учебник по MySQL

Теперь, когда вы знаете различные типы ключей и ограничений, давайте перейдем к следующему разделу, то есть к командам манипулирования данными.

Команды управления данными (DML)

Этот раздел состоит из тех команд, с помощью которых вы можете управлять своей базой данных. Команды:

Помимо этих команд, существуют также другие манипулятивные операторы / функции, такие как:

ИСПОЛЬЗОВАНИЕ

Оператор USE используется для указания, какая база данных должна использоваться для выполнения всех операций.

Синтаксис:

USE Database_name;

Пример:

USE StudentsInfo;

ВСТАВИТЬ

Этот оператор используется для вставки новых записей в таблицу.

Оператор INSERT INTO может быть записан следующими двумя способами:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

--You need not mention the column names

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

Пример:

INSERT INTO Infostudents(StudentID, StudentName, ParentName, Address, City, PostalCode, Country)
VALUES ('06', 'Sanjana','Jagannath', 'Banjara Hills', 'Hyderabad', '500046', 'India');

INSERT INTO Infostudents
VALUES ('07', 'Shivantini','Praveen', 'Camel Street', 'Kolkata', '700096', 'India');

ОБНОВИТЬ

Этот оператор используется для изменения существующих записей в таблице.

Синтаксис:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Пример:

UPDATE Infostudents
SET StudentName = 'Alfred', City= 'Frankfurt'
WHERE StudentID = 1;

УДАЛИТЬ

Этот оператор используется для удаления существующих записей в таблице.

Синтаксис:

DELETE FROM table_name
WHERE condition;

Пример:

DELETE FROM Infostudents
WHERE StudentName='Salomao';

ВЫБРАТЬ

Этот оператор используется для выбора данных из базы данных, а возвращенные данные хранятся в таблице результатов, которая называется набором результатов .

Ниже приведены два способа использования этого оператора:

Синтаксис:

SELECT column1, column2, ...
FROM table_name;

--(*) is used to select all from the table

SELECT * FROM table_name;

Пример:

SELECT StudentName, City FROM Infostudents;
SELECT * FROM Infostudents;

Помимо отдельного ключевого слова SELECT, мы также увидим следующие операторы, которые используются с ключевым словом SELECT:

Оператор SELECT DISTINCT

Этот оператор используется для возврата только разных или разных значений. Таким образом, если у вас есть таблица с повторяющимися значениями, вы можете использовать этот оператор для вывода различных значений.

Синтаксис:

SELECT DISTINCT column1, column2, ...
FROM table_name;

Пример:

SELECT Country FROM Students;

Заявление «ORDER BY»

Этот оператор используется для сортировки желаемых результатов в порядке возрастания или убывания. По умолчанию результаты сортируются в порядке возрастания. Если вы хотите, чтобы записи в наборе результатов были в порядке убывания, используйте ключевое слово DESC .

Синтаксис:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

Пример:

SELECT * FROM Infostudents
ORDER BY Country;  

SELECT * FROM Infostudents
ORDER BY Country DESC;

SELECT * FROM Infostudents
ORDER BY Country, StudentName;

SELECT * FROM Infostudents
ORDER BY Country ASC, StudentName DESC;

Заявление «GROUP BY»

Этот оператор используется с агрегатными функциями для группировки результирующего набора по одному или нескольким столбцам.

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

Пример:

SELECT COUNT(StudentID), Country
FROM Infostudents
GROUP BY Country
ORDER BY COUNT(StudentID) DESC;

Положение «HAVING»

Поскольку ключевое слово WHERE нельзя использовать с агрегатными функциями, было введено предложение HAVING.

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

Пример:

SELECT COUNT(StudentID), City
FROM Infostudents
GROUP BY City
HAVING COUNT(Fees) > 23000;

ЛОГИЧЕСКИЕ ОПЕРАТОРЫ

Этот набор операторов состоит из логических операторов, таких как AND / OR / NOT .

И ОПЕРАТОР

Оператор AND используется для фильтрации записей, которые основаны на более чем одном условии. Этот оператор отображает записи, которые удовлетворяют всем условиям, разделенным AND, и выдает на выходе значение TRUE.

Синтаксис:

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

Пример:

SELECT * FROM Infostudents
WHERE Country='Brazil' AND City='Rio Claro';

ИЛИ ОПЕРАТОР

Оператор ИЛИ отображает те записи, которые удовлетворяют любому из условий, разделенных ИЛИ, и выдает на выходе ИСТИНА.

Синтаксис:

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

Пример:

SELECT * FROM Infostudents
WHERE City='Toronto' OR City='Seoul';

НЕ ОПЕРАТОР

Этот оператор отображает запись, когда условие (условия) НЕ ИСТИНА.

Синтаксис:

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

Пример:

SELECT * FROM Infostudents
WHERE NOT Country='India';
--You can also combine all the above three operators and write a query like this:
SELECT * FROM Infostudents
WHERE Country='India' AND (City='Bangalore' OR City='Canada');

Арифметические, побитовые, сравнительные и составные операторы

Обратитесь к изображению ниже.

Рисунок 2: Арифметические, побитовые, операторы сравнения и сложения — MySQL Tutorial

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

Этот раздел функций включает в себя следующие функции:

Функция MIN ()

Эта функция возвращает наименьшее значение выбранного столбца в таблице.

Синтаксис:

SELECT MIN(column_name)
FROMtable_name
WHEREcondition;

Пример:

SELECT MIN(StudentID) AS SmallestID
FROM Infostudents;

Функция MAX ()

Эта функция возвращает наибольшее значение выбранного столбца в таблице.

Синтаксис:

SELECT MAX(column_name)
FROM table_name
WHERE condition;

Пример:

SELECT MAX(Fees) AS SmallestFees
FROM Infostudents;

Функция COUNT ()

Эта функция возвращает количество строк, соответствующих указанным критериям.

Синтаксис:

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

Пример:

SELECT COUNT(StudentID)
FROM Infostudents;

Функция AVG ()

Эта функция возвращает среднее значение выбранного вами числового столбца.

Синтаксис:

SELECT AVG(column_name)
FROM table_name
WHERE condition;

Пример:

SELECT AVG(Fees)
FROM Infostudents;

SUM () функция

Эта функция возвращает общую сумму выбранного вами числового столбца.

Синтаксис:

SELECT SUM(column_name)
FROM table_name
WHERE condition;

Пример:

SELECT SUM(Fees)
FROM Infostudents;

СПЕЦИАЛЬНЫЕ ОПЕРАТОРЫ

Этот раздел включает в себя следующие операторы:

МЕЖДУ Оператором

Этот оператор является включающим оператором, который выбирает значения (числа, тексты или даты) в заданном диапазоне.

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Пример:

SELECT * FROM Infostudents
WHERE Fees BETWEEN 20000 AND 40000;

IS NULL Оператор

Поскольку невозможно проверить значения NULL с помощью операторов сравнения (=, <,>), мы можем вместо этого использовать операторы IS NULL и IS NOT NULL.

Синтаксис:

--Syntax for IS NULL

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

--Syntax for IS NOT NULL

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

Пример:

SELECT StudentName, ParentName, Address FROM Infostudents
WHERE Address IS NULL;

SELECT StudentName, ParentName, Address FROM Infostudents
WHERE Address IS NOT NULL;

Как оператор

Упомянутые ниже два подстановочных знака, которые используются вместе с оператором LIKE:

  • % — знак процента представляет ноль, один или несколько символов
  • _ — Подчеркивание представляет один символ

Синтаксис:

SELECT column1, column2, ...
FROM table_name
WHERE column LIKE pattern;

Обратитесь к следующей таблице для различных шаблонов, которые вы можете упомянуть с оператором LIKE.

Пример:

SELECT * FROM Infostudents
WHERE StudentName LIKE 'S%';

Оператор IN

Это сокращенный оператор для нескольких условий ИЛИ, который позволяет указать несколько значений в предложении WHERE.

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

Пример:

SELECT * FROM Infostudents
WHERE Country IN ('Algeria', 'India', 'Brazil');

Примечание: вы также можете использовать IN при написании вложенных запросов . Рассмотрим следующий синтаксис:

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT STATEMENT);

СУЩЕСТВУЕТ Оператор

Этот оператор используется для проверки, существует ли запись или нет.

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

Пример:

SELECT StudentName
FROM Infostudents
WHERE EXISTS (SELECT ParentName FROM Infostudents WHERE StudentId = 05 AND Price < 25000);

ВСЕ оператор

Этот оператор используется с предложением WHERE или HAVING и возвращает true, если все значения подзапроса удовлетворяют условию.

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
(SELECT column_name FROM table_name WHERE condition);

Пример:

SELECT StudentName
FROM Infostudents
WHERE StudentID = ALL (SELECT StudentID FROM Infostudents WHERE Fees > 20000);

ЛЮБОЙ оператор

Аналогично оператору ALL оператор ANY также используется с предложением WHERE или HAVING и возвращает true, если какое-либо из значений подзапроса удовлетворяет условию.

Синтаксис:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name FROM table_name WHERE condition);

Пример:

SELECT StudentName
FROM Infostudents
WHERE StudentID = ANY (SELECT SttudentID FROM Infostudents WHERE Fees BETWEEN 22000 AND 23000);

Теперь, когда я много рассказал вам о командах DML, позвольте мне вкратце рассказать вам о вложенных запросах , объединениях и операциях над множествами .

Вложенные Запросы

Вложенные запросы — это те запросы, которые имеют внешний запрос и внутренний подзапрос. Таким образом, в основном подзапрос — это запрос, который вложен в другой запрос, такой как SELECT, INSERT, UPDATE или DELETE. Обратитесь к изображению ниже:

Рисунок 3: Представление вложенных запросов — MySQL Tutorial

СОЕДИНЕНИЯ используются для объединения строк из двух или более таблиц на основе связанного столбца между этими таблицами. Ниже приведены типы соединений:

  • INNER JOIN: это объединение возвращает те записи, которые имеют совпадающие значения в обеих таблицах.
  • FULL JOIN: это объединение возвращает все записи, которые имеют совпадение в левой или правой таблице.
  • LEFT JOIN: это соединение возвращает записи из левой таблицы, а также те записи, которые удовлетворяют условию из правой таблицы.
  • RIGHT JOIN: это соединение возвращает записи из правой таблицы, а также те записи, которые удовлетворяют условию из левой таблицы.

Обратитесь к изображению ниже.

Рисунок 4: Представление объединений: учебник по MySQL

Давайте рассмотрим приведенную ниже таблицу отдельно от таблицы Infostudents, чтобы понять синтаксис соединений.

ВНУТРЕННЕЕ СОЕДИНЕНИЕ

Синтаксис:

SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

Пример:

SELECT Courses.CourseID, Infostudents.StudentName
FROM Courses
INNER JOIN Infostudents ON Courses.StudentID = Infostudents.StudentID;

ПОЛНОЕ СОЕДИНЕНИЕ

Синтаксис:

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;

Пример:

SELECT Infostudents.StudentName, Courses.CourseID
FROM Infostudents
FULL OUTER JOIN Orders ON Infostudents.StudentID=Orders.StudentID
ORDER BY Infostudents.StudentName;

ЛЕВЫЙ РЕЙТИНГ

Синтаксис:

SELECT column_name(s)
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;

Пример:

SELECT Infostudents.StudentName, Courses.CourseID
FROM Infostudents
LEFT JOIN Courses ON Infostudents.CustomerID = Courses.StudentID
ORDER BY Infostudents.StudentName;

ПРАВИЛЬНОЕ СОЕДИНЕНИЕ

Синтаксис:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;

Пример:

SELECT Courses.CourseID
FROM Courses
RIGHT JOIN Infostudents ON Courses.StudentID = Infostudents.StudentID 
ORDER BY Courses.CourseID;

Операции над множествами

В основном это три операции над множествами: UNION, INTERSECT, SET DIFFERENCE. Вы можете обратиться к изображению ниже, чтобы понять операции над множествами в SQL.

Операции над множествами в SQL - MySQL Tutorial - Edureka

Теперь, когда вы, ребята, знаете DML commadsn. Давайте перейдем к следующему разделу и посмотрим команды DCL.

Команды управления данными (DCL)

Этот раздел состоит из тех команд, которые используются для управления привилегиями в базе данных. Команды:

ГРАНТ

Эта команда используется для предоставления пользователю прав доступа или других привилегий для базы данных.

Синтаксис:

GRANT privileges ON object TO user;

Пример:

GRANT CREATE ANY TABLE TO localhost;

КЕУОКЕ

Эта команда используется для отзыва прав доступа пользователя, заданных с помощью команды GRANT.

Синтаксис:

REVOKE privileges ON object FROM user;

Пример:

REVOKE INSERT ON *.* FROM Infostudents;

Теперь давайте перейдем к последнему разделу этого блога, т.е. к командам TCL.

Команды управления транзакциями (TCL)

Этот раздел команд в основном касается транзакций базы данных. Команды:

COMMIT

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

Синтаксис:

COMMIT;

Пример:

DELETE FROM Infostudents WHERE Fees = 42145;

COMMIT;

ROLLBACK

Эта команда используется для отмены транзакций с момента выполнения последней команды COMMIT или ROLLBACK.

Синтаксис:

ROLLBACK;

Пример:

DELETE FROM Infostudents WHERE Fees = 42145;

ROLLBACK;

SAVEPOINT

Эта команда создает точки в группах транзакций, в которых выполняется ROLLBACK. Таким образом, с помощью этой команды вы можете просто откатить транзакцию до определенной точки без отката всей транзакции.

Синтаксис:

SAVEPOINT SAVEPOINT_NAME; --Syntax for saving the SAVEPOINT

ROLLBACK TO SAVEPOINT_NAME; --Syntax for rolling back to the Savepoint command

Пример:

SAVEPOINT SP1;

DELETE FROM Infostudents WHERE Fees = 42145;

SAVEPOINT SP2;

RELEASE SAVEPOINT

Вы можете использовать эту команду для удаления SAVEPOINT, которую вы создали.

Синтаксис:

RELEASE SAVEPOINT SAVEPOINT_NAME;

Пример:

RELEASE SAVEPOINT SP2;

УСТАНОВИТЬ СДЕЛКУ

Эта команда дает имя транзакции.

Синтаксис:

SET TRANSACTION [ READ WRITE | READ ONLY ];

Надеюсь, вам понравилось читать эту статью на MySQL Tutorial. Мы видели различные команды, которые помогут вам писать запросы и играть с вашими базами данных.