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.
Теперь, когда вы, ребята, знаете 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. Мы видели различные команды, которые помогут вам писать запросы и играть с вашими базами данных.