❤️ Вводное графическое руководство по SQL с нулевой базой!

база данных SQL
❤️ Вводное графическое руководство по SQL с нулевой базой!

Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.

📚 Предисловие

Язык SQL имеет более чем 40-летнюю историю и с тех пор используется практически повсеместно. Каждая платежная запись, которую мы потребляем, каждая собранная пользовательская информация и каждое отправленное сообщение будут храниться с использованием базы данных или связанных с ней продуктов, а языком, который управляет базой данных, является SQL!

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

В конце статьи есть тест по SQL! Посмотрите, сколько очков вы можете получить?

👉🏻Нажмите на меня, чтобы перейти к викторине по SQL!

🌴 Введение в SQL

🌼 Что такое SQL

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

  • SQL расшифровывается как язык структурированных запросов.
  • SQL дает нам возможность доступа к базе данных
  • SQL — это стандартный компьютерный язык ANSI.

SQL работает с программами баз данных, такими как MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase и другими системами баз данных. Однако из-за появления различных баз данных, что привело к появлению множества разных версий языка SQL, чтобы быть совместимым со стандартом ANSI, они должны одинаково поддерживать некоторые основные ключевые слова (такие как SELECT, UPDATE, DELETE, INSERT). , WHERE и т. д.), это основы SQL, которые мы собираемся изучить.

🌀 Типы SQL

SQL можно разделить на две части: язык манипулирования данными (DML) и язык определения данных (DDL).

  • DQL: язык запросов данных
  • Язык манипулирования данными (DML)

🌵 Узнайте, как работает SQL

SQL — это стандартный компьютерный язык ANSI для доступа к системам баз данных и управления ими. Операторы SQL используются для извлечения и обновления данных в базе данных.

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

🍄 Что такое база данных

Как следует из названия, вы можете понять, что база данных — это контейнер, используемый для хранения данных.

Например, у каждого дома есть холодильник, для чего он нужен? Холодильник – это место, где хранятся продукты.Точно так же база данных — это место, где хранятся данные. Именно потому, что у нас есть база данных, мы можем напрямую искать данные. Например, если вы каждый день используете Yu’ebao для проверки дохода своего аккаунта, он выдается вам после считывания данных из базы данных.

Наиболее распространенным типом базы данных является система управления реляционной базой данных (RDBMS):

СУРБД является основой SQL, а также основой всех современных систем баз данных, таких как MS SQL Server, IBM DB2, Oracle, MySQL и Microsoft Access и многих других. RDBMSДанные хранятся в объектах базы данных, называемых таблицами.представляет собой набор связанных элементов данных, состоящий из столбцов и строк.

Поскольку в этой статье в основном объясняются основы SQL, нет необходимости слишком много объяснять о базе данных, достаточно общего понимания.Давайте сразу приступим к изучению SQL!

🐥 Базовое изучение языка SQL

Прежде чем понять, как использовать основные операторы SQL, давайте поговорим об этом.что это?

База данных обычно содержит одну или несколько таблиц. Каждая таблица идентифицируется именем (например, «клиенты» или «заказы»). Таблица содержит записи (строки) с данными.

В следующем примере представлена ​​таблица с именем «Люди»:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

Приведенная выше таблица содержит три записи (по одной для каждого человека) и пять столбцов (идентификатор, фамилия, имя, адрес и город).

Есть таблица для запроса, так как же создать такую ​​таблицу?

🐤 CREATE TABLE – создать таблицу

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

грамматика:

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
);

Тип данных (data_type) указывает, какой тип данных может содержать столбец. Следующая таблица содержит наиболее часто используемые типы данных в SQL:

тип данных описывать
integer(size),int(size),smallint(size),tinyint(size) Содержит только целые числа, указывает максимальное количество цифр в скобках
decimal(size,d),numeric(size,d) Содержит числа с десятичными знаками, «размер» указывает максимальное количество цифр, «d» указывает максимальное количество цифр справа от десятичной точки.
char(size) Содержит строку фиксированной длины (может содержать буквы, цифры и специальные символы) и указывает длину строки в круглых скобках.
varchar(size) Содержит строки переменной длины (могут содержать буквы, цифры и специальные символы) и указывает максимальную длину строки в круглых скобках.
date(yyyymmdd) разместить дату

Пример:

В этом примере показано, как создать таблицу с именем «Люди».

Таблица содержит 5 столбцов с названиями столбцов: «Id_P», «LastName», «FirstName», «Address» и «City»:

CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

Тип данных столбца Id_P — int и содержит целые числа. Тип данных остальных 4 столбцов — varchar с максимальной длиной 255 символов.

Пустая таблица «Люди» выглядит так:

Данные могут быть записаны в пустую таблицу с помощью оператора INSERT INTO.

🐑 ВСТАВИТЬ – вставить данные

Оператор INSERT INTO используется для вставки новой строки в таблицу.

грамматика:

INSERT INTO 表名称 VALUES (值1, 值2,....);

Мы также можем указать столбец для вставки данных:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);

Пример:

Этот пример демонстрирует два способа вставки записей в таблицу «Лица»:

1. Вставьте новую строку

INSERT INTO Persons VALUES (1, 'Gates', 'Bill', 'Xuanwumen 10', 'Beijing');

2. Вставьте данные в указанный столбец

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees');

После успешной вставки данные выглядят следующим образом:

После того, как эти данные вставлены, они проходят черезSELECTЗапрос делается высказыванием, так что не спешите говорить об этом сразу!

🐼 SELECT — запросить данные

Оператор SELECT используется для выбора данных из таблицы, а результаты сохраняются в таблице результатов (называемой набором результатов).

грамматика:

SELECT * FROM 表名称;

Мы также можем указать столбцы запрашиваемых данных:

SELECT 列名称 FROM 表名称;

📢 Примечание:Операторы SQL не чувствительны к регистру, SELECT эквивалентен select.

Пример:

SQL SELECT * пример:

SELECT * FROM Persons;

📢 Примечание:Звездочка (*) — это ярлык для выбора всех столбцов.

Чтобы получить содержимое столбцов с именами «Фамилия» и «Имя» (из таблицы базы данных с именем «Люди»), используйте следующую инструкцию SELECT:

SELECT LastName,FirstName FROM Persons;

🐫 DISTINCT - удалить повторяющиеся значения

Если в таблице есть несколько строк повторяющихся данных, как отобразить их снова? может понятьDISTINCT.

грамматика:

SELECT DISTINCT 列名称 FROM 表名称;

Пример:

Чтобы выбрать все значения из столбца «LASTNAME», нам нужно использоватьSELECTЗаявление:

SELECT LASTNAME FROM Persons;

Можно обнаружить, что Уилсон указан несколько раз в наборе результатов.

Чтобы выбрать только уникальные значения из столбца «LASTNAME», нам нужно использовать оператор SELECT DISTINCT:

SELECT DISTINCT LASTNAME FROM Persons;

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

🐸 ГДЕ – Условный фильтр

Если вам нужно выбрать определенные данные из таблицы, добавьте предложение WHERE в инструкцию SELECT.

грамматика:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;

В предложении WHERE можно использовать следующие операторы:

оператор описывать
= равный
<> не равно
> больше, чем
< меньше, чем
>= больше или равно
<= меньше или равно
BETWEEN в пределах определенного диапазона
LIKE поиск шаблона

📢 Примечание:В некоторых версиях SQL оператор может быть записан как !=.

Пример:

Если мы хотим выбрать только людей, которые живут в городе «Пекин», нам нужно добавить предложение WHERE в оператор SELECT:

SELECT * FROM Persons WHERE City='Beijing';

📢 Примечание:SQL использует одинарные кавычки для заключения текстовых значений (большинство систем баз данных также принимают двойные кавычки). Если это число, не используйте кавычки.

🐹 И и ИЛИ – Операторы

AND и OR объединяют два или более условий в предложении WHERE.

  • Оператор AND отображает запись, если выполняются и первое, и второе условия.
  • Оператор ИЛИ отображает запись, если выполняется только одно из первого и второго условий.

грамматика:

Пример оператора И:

SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值;

Пример оператора ИЛИ:

SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值;

Пример:

Так как в таблице Persons слишком мало данных, добавьте еще несколько записей:

INSERT INTO Persons VALUES (2, 'Adams', 'John', 'Oxford Street', 'London');
INSERT INTO Persons VALUES (3, 'Bush', 'George', 'Fifth Avenue', 'New York');
INSERT INTO Persons VALUES (4, 'Carter', 'Thomas', 'Changan Street', 'Beijing');
INSERT INTO Persons VALUES (5, 'Carter', 'William', 'Xuanwumen 10', 'Beijing');
SELECT * FROM Persons;

Пример оператора И:

Используйте AND, чтобы отобразить всех людей с фамилией «Картер» и именем «Томас»:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter';

Пример оператора ИЛИ:

Используйте ИЛИ, чтобы отобразить всех людей с фамилией «Картер» или «Томас»:

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter';

Объедините операторы И и ИЛИ:

Мы также можем комбинировать И и ИЛИ (используя круглые скобки для формирования сложных выражений):

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter';

🐰 ЗАКАЗАТЬ ПО – сортировать

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

грамматика:

SELECT * FROM 表名称 ORDER BY 列1,列2 DESC;

Сортировка по умолчанию — ASC по возрастанию, а DESC — по убыванию.

Пример:

Показать в алфавитном порядкеLASTNAMEназвание:

SELECT * FROM Persons ORDER BY LASTNAME;

Нулевые значения (NULL) сортируются по умолчанию после строк со значениями.

Отображение в числовом порядкеID_P, и в алфавитном порядкеLASTNAMEназвание:

SELECT * FROM Persons ORDER BY ID_P,LASTNAME;

Отображение в порядке убывания номеровID_P:

SELECT * FROM Persons ORDER BY ID_P DESC;

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

🐱 ОБНОВЛЕНИЕ – обновить данные

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

грамматика:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;

Пример:

Обновите столбец в строке:

В настоящее времяPersonsВ таблице много полей, т.к.null данные, которые могут бытьUPDATEДобавьте ИМЯ для людей, чья ФАМИЛИЯ "Уилсон":

UPDATE Persons SET FirstName = 'Fred' WHERE LastName = 'Wilson';

Обновите несколько столбцов подряд:

UPDATE Persons SET ID_P = 6,city= 'London' WHERE LastName = 'Wilson';

🐨 УДАЛИТЬ – удалить данные

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

грамматика:

DELETE FROM 表名称 WHERE 列名称 = 值;

Пример:

Удалить строку:

УдалитьPersonsСтроки в таблице с фамилией «Фред Уилсон»:

DELETE FROM Persons WHERE LastName = 'Wilson';

Удалить все строки:

Все строки можно удалить, не удаляя таблицу. Это означает, что структура, свойства и индексы таблицы завершены:

DELETE FROM table_name;

🐵 TRUNCATE TABLE — очистить данные таблицы

Если нам нужно удалить только данные в таблице, но не саму таблицу, как мы это делаем?

Вы можете использовать команду TRUNCATE TABLE (удалить только данные из таблицы):

грамматика:

TRUNCATE TABLE 表名称;

Пример:

В этом примере показано, как удалить таблицу с именем «Люди».

TRUNCATE TABLE persons;

🐯 DROP TABLE – выпадающий стол

Оператор DROP TABLE используется для удаления таблицы (структура таблицы, атрибуты и индексы также удаляются).

грамматика:

DROP TABLE 表名称;

Пример:

В этом примере показано, как удалить таблицу с именем «Люди».

drop table persons;

Как видно из рисунка выше, таблица была успешно удалена при первом удалении.persons, при повторном выполнении удаления выдается ошибка, что таблица не найденаpersons, таблица описания была удалена.

🚀 Расширенное изучение языка SQL

🚢 НРАВИТСЯ – найди похожие значения

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

грамматика:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 LIKE 值;

Пример:

PersonsВнесите данные в таблицу:

INSERT INTO Persons VALUES (1, 'Gates', 'Bill', 'Xuanwumen 10', 'Beijing');
INSERT INTO Persons VALUES (2, 'Adams', 'John', 'Oxford Street', 'London');
INSERT INTO Persons VALUES (3, 'Bush', 'George', 'Fifth Avenue', 'New York');
INSERT INTO Persons VALUES (4, 'Carter', 'Thomas', 'Changan Street', 'Beijing');
INSERT INTO Persons VALUES (5, 'Carter', 'William', 'Xuanwumen 10', 'Beijing');
select * from persons;

1. Теперь мы хотим выбрать людей, которые живут в городах, начинающихся с «N», из таблицы «Люди» выше:

SELECT * FROM Persons WHERE City LIKE 'N%';

2. Далее мы хотим выбрать из таблицы «Люди» людей, которые живут в городах, оканчивающихся на «г»:

SELECT * FROM Persons WHERE City LIKE '%g';

3. Далее мы хотим выбрать из таблицы «Люди» людей, которые живут в городах, содержащих «lon»:

SELECT * FROM Persons WHERE City LIKE '%on%';

4. Используя ключевое слово NOT, мы можем выбрать людей из таблицы «Люди», которые живут в городах, которые не содержат «lon»:

SELECT * FROM Persons WHERE City NOT LIKE '%on%';

📢 Примечание:«%» можно использовать для определения подстановочных знаков (отсутствующих букв в шаблоне).

🚤 IN - заблокировать несколько значений

Оператор IN позволяет нам указать несколько значений в предложении WHERE.

грамматика:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 IN (值1,值2,值3);

Пример:

Теперь мы хотим отPersonsВыберите из таблицы людей с фамилиями Адамс и Картер:

SELECT * FROM Persons WHERE LastName IN ('Adams','Carter');

⛵️ МЕЖДУ – выбор данных интервала

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

грамматика:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2;

Пример:

1. Запрос отображает людей от «Адамс» (включительно) до «Картер» (исключительно) в алфавитном порядке:

SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter';

2. Чтобы запросить результаты, противоположные приведенным выше, вы можете использовать НЕ:

SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter';

📢 Примечание:Разные базы данных обрабатывают оператор BETWEEN...AND по-разному.

Некоторые базы данных будут перечислять людей между «Адамс» и «Картер», но не «Адамс» и «Картер»; некоторые базы данных будут перечислять людей между «Адамс» и «Картер» и включать «Адамс» и «Картер»; в то время как другие базы данных перечислите людей между «Адамс» и «Картер», включая «Адамс», но не включая «Картер».

Итак, проверьте, как ваша база данных обрабатывает оператор BETWEEN....AND!

🚂 AS — псевдоним

С помощью SQL именам столбцов и имен таблиц можно назначать псевдонимы (псевдонимы), которые упрощают чтение и запись программ запросов.

грамматика:

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

SELECT 列名称/(*) FROM 表名称 AS 别名;

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

SELECT 列名称 as 别名 FROM 表名称;

Пример:

Используйте псевдонимы имен таблиц:

SELECT p.LastName, p.FirstName
FROM Persons p 
WHERE p.LastName='Adams' AND p.FirstName='John';

Используйте псевдонимы имен столбцов:

SELECT LastName "Family", FirstName "Name" FROM Persons;

📢 Примечание:В практическом применении этоASМожно не указывать, но необходимо добавить псевдоним столбца." ".

🚁 ПРИСОЕДИНЯЙТЕСЬ — объединение нескольких столов

JOINИспользуется для запроса данных из двух или более таблиц на основе связи между столбцами в этих таблицах.

Иногда, чтобы получить полные результаты, нам нужно получить результаты из двух или более таблиц. нам нужно реализоватьjoin.

Таблицы в базе данных могут быть связаны друг с другом ключами. Первичный ключ (Primary Key) — это столбец, значение каждой строки в этом столбце уникально. В таблице значение каждого первичного ключа уникально. Целью этого является перекрестное объединение данных между таблицами без дублирования всех данных в каждой таблице.

Как показано на рисунке, столбец «Id_P» является первичным ключом в таблице Persons. Это означает, что никакие две строки не могут иметь одинаковый Id_P. Даже если у двух людей одинаковые имена, Id_P может отличить их друг от друга.

❤️ Чтобы продолжить эксперимент ниже, нам нужно создать еще одну таблицу: Заказы.

create table orders (id_o number,orderno number,id_p number);
insert into orders values(1,11111,1);
insert into orders values(2,22222,2);
insert into orders values(3,33333,3);
insert into orders values(4,44444,4);
insert into orders values(6,66666,6);
select * from orders;

Как показано, столбец «Id_O» является первичным ключом в таблице «Заказы», ​​а столбец «Id_P» в таблице «Заказы» используется для ссылки на людей в таблице «Люди» без использования их точных имен.

select * from persons p,orders o where p.id_p=o.id_p;

Как видите, столбец «Id_P» соединяет две приведенные выше таблицы.

грамматика:

select 列名
from 表A
INNER|LEFT|RIGHT|FULL JOIN 表B
ON 表A主键列 = 表B外键列;

Различные соединения SQL:

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

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

Пример:

Если бы мы хотели получить список всех заказов, мы могли бы использовать следующий оператор SELECT:

SELECT p.LastName, p.FirstName, o.OrderNo
FROM Persons p
INNER JOIN Orders o
ON p.Id_P = o.Id_P
ORDER BY p.LastName DESC;

🚜 ОБЪЕДИНЕНИЕ – объединение наборов результатов

UNIONОператор используется для объединения наборов результатов двух или более операторов SELECT.

Синтаксис ОБЪЕДИНЕНИЯ:

SELECT 列名 FROM 表A
UNION
SELECT 列名 FROM 表B;

📢 Примечание:Оператор UNION по умолчанию выбирает разные значения. Если результат запроса должен отображать повторяющиеся значения, используйтеUNION ALL.

ОБЪЕДИНЕНИЕ ВСЕХ синтаксис:

SELECT 列名 FROM 表A
UNION ALL
SELECT 列名 FROM 表B;

Кроме того, имена столбцов в результирующем наборе UNION всегда совпадают с именами столбцов в первом операторе SELECT в UNION.

Создайте таблицу Person_b для экспериментов:

CREATE TABLE Persons_b
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
INSERT INTO Persons_b VALUES (1, 'Bill', 'Gates', 'Xuanwumen 10', 'Londo');
INSERT INTO Persons_b VALUES (2, 'John', 'Adams', 'Oxford Street', 'nBeijing');
INSERT INTO Persons_b VALUES (3, 'George', 'Bush', 'Fifth Avenue', 'Beijing');
INSERT INTO Persons_b VALUES (4, 'Thomas', 'Carter', 'Changan Street', 'New York');
INSERT INTO Persons_b VALUES (5, 'William', 'Carter', 'Xuanwumen 10', 'Beijing');
select * from persons_b;

Пример:

Используйте команду ОБЪЕДИНЕНИЕ:

Перечислите разные лица в person и person_b:

select * from persons
UNION
select * from persons_b;

📢 Примечание:Операторы SELECT внутри UNION должны иметь одинаковое количество столбцов. Столбцы также должны иметь схожие типы данных. Кроме того, порядок столбцов в каждом операторе SELECT должен быть одинаковым.

🚌 NOT NULL — не нуль

NOT NULLОграничение требует, чтобы столбец не принимал значения NULL.

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

грамматика:

CREATE TABLE 表
(
列 int NOT NULL
);

Как и выше, создайте таблицу и установите значение столбца не может быть пустым.

Пример:

create table lucifer (id number not null);
insert into lucifer values (NULL);

📢 Примечание:если вставитьNULLзначение, будет сообщено об ошибкеORA-01400Подсказка не может быть вставлена!

⭐️ Расширяйте небольшие знания:NOT NULLТакже может использоваться для условий запроса:

select * from persons where FirstName is not null;

Так же,NULLтакже может:

select * from persons where FirstName is null;

Заинтересованные друзья, вы можете попробовать сами!

🚐 ПРОСМОТР – посмотреть

В SQL представление представляет собой визуальную таблицу, основанную на наборе результатов оператора SQL.

Представление содержит строки и столбцы, как настоящая таблица. Поля в представлении — это поля из реальных таблиц в одной или нескольких базах данных. Мы можем добавлять функции SQL, операторы WHERE и JOIN к представлениям, и мы можем отправлять данные, как если бы они были из одной таблицы.

грамматика:

CREATE VIEW 视图名 AS
SELECT 列名
FROM 表名
WHERE 查询条件;

📢 Примечание:Представления всегда показывают самые последние данные. Всякий раз, когда пользователь запрашивает представление, механизм базы данных перестраивает данные с помощью операторов SQL.

Пример:

Ниже мы создаем представление, фильтруя таблицу Persons для людей, которые живут в Пекине:

create view persons_beijing as
select * from persons where city='Beijing';

Запросить представление выше:

Если вам нужно обновить столбцы или другую информацию в представлении без удаления, используйтеCREATE OR REPLACE VIEWОпции:

CREATE OR REPLACE VIEW 视图名 AS
SELECT 列名
FROM 表名
WHERE 查询条件;

Пример:

Теперь нам нужно отфильтровать записи, чья ФАМИЛИЯ — Гейтс:

create or replace view persons_beijing as
select * from persons where lastname='Gates';

Удалить представление относительно просто, как и таблицу, используяDROPПросто:

drop view persons_beijing;

❤️ Язык высокого уровня, который будет рассмотрен в этой главе, сначала остановится здесь, и не следует вводить слишком много за один раз~

🎯 Изучение общих функций SQL

SQL имеет множество встроенных функций для подсчета и вычислений.

Синтаксис использования функции:

SELECT function(列) FROM 表;

❤️ Давайте рассмотрим часто используемые функции ниже!

🍔 СРЕДНИЙ – средний

Функция AVG возвращает среднее значение числового столбца. Значения NULL не учитываются при расчете.

грамматика:

SELECT AVG(列名) FROM 表名;

Пример:

Вычислите среднее значение поля "orderno".

select avg(orderno) from orders;

Конечно, его также можно использовать в условиях запроса, например, при запросе записей ниже среднего:

select * from orders where orderno < (select avg(orderno) from orders);

🍕COUNT – общее количество строк

Функция COUNT() возвращает количество строк, соответствующих указанным критериям.

грамматика:

count()может иметь различный синтаксис в:

  • COUNT(*) : возвращает количество записей в таблице.
  • COUNT (имя столбца DISTINCT): возвращает количество различных значений для указанного столбца.
  • COUNT(column_name): возвращает количество значений в указанном столбце (NULL не учитывается).
SELECT COUNT(*) FROM 表名;
SELECT COUNT(DISTINCT 列名) FROM 表名;
SELECT COUNT(列名) FROM 表名;

Пример:

СЧИТАТЬ(*) :

select count(*) from persons;

COUNT (имя столбца DISTINCT):

select count(distinct city) from persons;

COUNT(название столбца):

select count(city) from persons;

🍘 МАКС – максимальное значение

MAXФункция возвращает максимальное значение в столбце. Значения NULL не учитываются при расчете.

грамматика:

SELECT MAX(列名) FROM 表名;

MIN и MAX также можно использовать с текстовыми столбцами для получения максимального или минимального значения в алфавитном порядке.

Пример:

select max(orderno) from orders;

🍢 МИН – минимальное значение

MINФункция возвращает наименьшее значение в столбце. Значения NULL не учитываются при расчете.

грамматика:

SELECT MIN(列名) FROM 表名;

Пример:

select min(orderno) from orders;

🍰 СУММ – суммирование

SUMФункция возвращает общее количество (total) числового столбца.

грамматика:

SELECT SUM(列名) FROM 表名;

Пример:

select sum(orderno) from orders;

🍪 ГРУППИРОВАТЬ ПО – группировать по

Оператор GROUP BY используется в сочетании с агрегатными функциями для группировки наборов результатов на основе одного или нескольких столбцов.

грамматика:

SELECT 列名A, 统计函数(列名B)
FROM 表名
WHERE 查询条件
GROUP BY 列名A;

Пример:

Получите общее количество людей, проживающих в Пекине, в таблице Persons, сгруппированных по LASTNAME:

select lastname,count(city) from persons 
where city='Beijing' 
group by lastname;

если не добавитьGROUP BY Он сообщит об ошибке:

это обычное делоORA-00937Это не ошибка функции группировки одной группы.

🍭 HAVING – соединение в конце предложения

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

грамматика:

SELECT 列名A, 统计函数(列名B)
FROM table_name
WHERE 查询条件
GROUP BY 列名A
HAVING 统计函数(列名B) 查询条件;

Пример:

Получите LASTNAME в таблице Persons с общим количеством людей, живущих в Пекине больше 1, сгруппированных по LASTNAME:

select lastname,count(city) from persons 
where city='Beijing' 
group by lastname
having count(city) > 1;

🍷 UCASE/UPPER – верхний регистр

UCASE/UPPERФункция преобразует значение поля в верхний регистр.

грамматика:

select upper(列名) from 表名;

Пример:

Выберите содержимое столбцов «LastName» и «FirstName», затем преобразуйте столбец «LastName» в верхний регистр:

select upper(lastname),firstname from persons;

🍶 LCASE/LOWER – нижний регистр

LCASE/LOWERФункция преобразует значение поля в нижний регистр.

грамматика:

select lower(列名) from 表名;

Пример:

Выберите содержимое столбцов «LastName» и «FirstName», затем преобразуйте столбец «LastName» в нижний регистр:

select lower(lastname),firstname from persons;

👛 LEN/LENGTH - получить длину

LEN/LENGTHФункция возвращает длину значения в текстовом поле.

грамматика:

select length(列名) from 表名;

Пример:

Получите значение длины символа LASTNAME:

select length(lastname),lastname from persons;

🍗 ОКРУГЛ — числовое округление

ROUNDФункция используется для округления числового поля до указанного количества знаков после запятой.

грамматика:

select round(列名,精度) from 表名;

Пример:

2 бита зарезервированы:

select round(1.1314,2) from dual;
select round(1.1351,2) from dual;

📢 Примечание:ROUNDКомпромиссокруглениеиз!

Округление:

select round(1.1351,0) from dual;
select round(1.56,0) from dual;

🍞 NOW/SYSDATE – текущее время

NOW/SYSDATEФункция возвращает текущую дату и время.

грамматика:

select sysdate from 表名;

Пример:

Получить текущее время:

select sysdate from dual;

📢 Примечание:Если вы используете базу данных Sql Server, используйтеgetdate()функция для получения текущей даты и времени.

🍺 напишите в конце

Если вы выполнили все вышеперечисленное, вы можете пройти тест:SQL-викторина, и посмотрите, как вы справляетесь с этим! ❤️ В викторине будут оцениваться:

Каждый вопрос оценивается в 1 балл. После того, как вы ответили на все 20 вопросов, ваша викторина будет оценена, и вам будут даны правильные ответы на вопросы, в которых вы ошиблись. Среди них зеленый — правильный ответ, а красный — неправильный ответ.

Начните викторину прямо сейчас!Удачи.

⭐️ Напишите свой результат ниже评论区В нем, позвольте мне увидеть, насколько хорош уровень каждого? ⭐️