Логотип Зефирнет

SQL: полное руководство от основ до продвинутого уровня

Дата:

Эта статья была опубликована в рамках Блогатон по Data Science.

Введение

По данным Бюро статистики труда, прогнозируется, что к 19 году количество рабочих мест для ученых, занимающихся компьютерными и информационными исследованиями, специалистов по данным вырастет как минимум на 2026 процентов. Данные собираются и обрабатываются в каждой компании независимо от домена.
Исследователи данных погружаются в данные, чтобы найти ценную информацию, полезную для компании.

Зачем изучать SQL?

Большинство компаний хранят и управляют своими данными с помощью системы управления реляционными базами данных (RDBMS).
SQL расшифровывается как язык структурированных запросов и позволяет пользователям получать доступ к данным и управлять ими. Компании используют различные системы, такие как MySQL, PostgreSQL, базы данных Oracle и т. д., для хранения данных. Между всеми этими различными версиями SQL есть небольшие различия, но перейти на другую относительно легко, как только вы овладеете одной производительностью.

Узнайте больше о SQL на нашем Блог!

Я буду использовать Oracle Live SQL в этой статье, но вы можете попробовать его и в любой другой версии. В случае какой-либо ошибки вы можете найти решения в Google.

Специалисты по данным имеют дело с уже поддерживаемыми базами данных, но мы начнем с основ.

Что такое таблица базы данных в SQL?

Данные в базах данных хранятся в таблицах, о которых можно думать, как в электронных таблицах Excel. В каждой электронной таблице есть строки и столбцы. Каждая строка состоит из данных, относящихся к объекту (например, человеку, компании и т. д.), а каждый столбец состоит из данных, касающихся определенного аспекта строки (например, имя, идентификатор учетной записи, возраст и т. д.).

SQL | Таблица базы данных

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

Соглашение об именах SQL

Обратите внимание, что SQL не чувствителен к регистру. Он обрабатывает «таблицу» так же, как «ТАБЛИЦА». Но принято писать команды SQL заглавными буквами, таблицы базы данных именуются строчными буквами, а вместо пробелов используются символы подчеркивания.

Создать таблицы

Синтаксис для создания новых таблиц в SQL приведен ниже.

CREATE TABLE имя_таблицы (тип данных столбца 1, тип данных столбца 1, );

МЫ ИСПОЛЬЗУЕМ СОЗДАТЬ ТАБЛИЦУ  оператор, за которым следует имя таблицы. Затем мы упоминаем имена столбцов вместе с их типом данных в круглых скобках. Обратите внимание, что каждый оператор SQL заканчивается точкой с запятой.

Некоторые из широко используемых типов данных в SQL: VARCHAR (строка), BOOL (логическое значение), int (целое число), FLOAT (числа с плавающей запятой), DATETIME (DateTime) и т. д. Вы можете обратиться к документации, чтобы узнать больше о типах данных. .

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

СОЗДАТЬ ТАБЛИЦУ работника (employee_id INT, e_name VARCHAR (20), возраст INT, зарплата INT, работа VARCHAR (20));

Примечание: Число внутри VARCHAR обозначает максимально возможную длину строки. Здесь мы предполагаем, что длина строки не будет превышать 20.

ВСТАВИТЬ значения в SQL

Ассоциация ВСТАВИТЬ ИГНОРИРОВАТЬ В оператор вставляет новую запись в таблицу базы данных. Синтаксис показан ниже.

INSERT IGNORE INTO имя_таблицы(столбец1, столбец2, . . .) VALUES (значение1, значение2, . . . );

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

ВСТАВИТЬ ИГНОР В ЗНАЧЕНИЯ сотрудников (1, «Алекс», 27,28000, «Дизайнер»); ВСТАВИТЬ ИГНОР В ЗНАЧЕНИЯ сотрудников (2, «Джо», 30,45000, «Бэкенд-разработчик»); ВСТАВИТЬ ИГНОР В ЗНАЧЕНИЯ сотрудников (3, «Рик», 25,65000, «Ученый по данным»); ВСТАВИТЬ ИГНОР В ЗНАЧЕНИЯ сотрудника (4, «Ник», 21,30000, «Бэкенд-разработчик»); ВСТАВИТЬ ИГНОР В ЗНАЧЕНИЯ сотрудников (5, «Кэти», 21,35000, «Дизайнер»);

Мы можем просмотреть данные нашей таблицы с помощью оператора SELECT, который мы рассмотрим далее.
Мини задание: Добавьте в таблицу еще пять сотрудников (убедитесь, что employee_id уникален).

ВЫБРАТЬ ИЗ

Ассоциация ВЫБОР Оператор используется для выбора данных из базы данных. То от оператор перечисляет таблицу базы данных, из которой мы будем брать данные.

ВЫБЕРИТЕ имя_столбца_1, имя_столбца_2, . . . ОТ имя_таблицы;

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

ВЫБЕРИТЕ * ОТ сотрудника;
SQL | Таблица - выбрать и из
Вывод в Oracle Live SQL

Мини задание: Отображение имен всех сотрудников

Итак, прямо сейчас мы можем отобразить содержимое таблицы базы данных без фильтрации. Но что, если мы хотим показать имена сотрудников, у которых зарплата больше 50,000 XNUMX покедолларов (да, вы все правильно прочитали). Вот различные утверждения, такие как WHERE, LIKE, IN и т. д.
На таких утверждениях мы сейчас и сосредоточимся.

ГДЕ

Оператор WHERE отфильтровывает записи на основе условия, указанного после оператора, синтаксис такой, как показано ниже.

ВЫБЕРИТЕ столбец1, столбец2, . . . ОТ имя_таблицы ГДЕ условие;

 Ниже приведен код для фильтрации сотрудников с зарплатой более 50,000 XNUMX покедолларов.

ВЫБЕРИТЕ * ОТ сотрудника, ГДЕ зарплата> 50000;
SQL

Обратите внимание, что оператор WHERE размещается после оператора FROM.
Внутри условия мы можем использовать логические выражения (ИЛИ, И и НЕ), а также операторы сравнения, такие как >, <, =, = (в SQL мы используем = вместо == для сравнения на равенство) и т. д.
Мы также можем использовать определенные выражения, такие как IN, BETWEEN, LIKE и т. д.

И, ИЛИ и НЕ

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

И, или и не

LIKE

Прежде чем объяснять оператор LIKE, предположим, что мы хотим отфильтровать Backend-разработчиков, работающих в нашей компании. Вы можете использовать оператор WHERE и оператор сравнения, как показано ниже.

SELECT * FROM сотрудника WHERE job='Backend Developer'; 

Проблема с такого рода запросами заключается в том, что, как вы можете видеть в нашей таблице базы данных, в нашей таблице есть еще один разработчик бэкэнда (Ник), который не был отфильтрован, поскольку его должность называется «Разработчик бэкэнда». Итак, чтобы решить эту проблему, мы будем использовать оператор LIKE.
Таким образом, мы можем найти разработчиков Backend, используя приведенный ниже запрос.

ВЫБЕРИТЕ * ОТ сотрудника, ГДЕ работа КАК '% Backend%';

Символ % представляет ноль, один или несколько символов.

Нравится | SQL

Мини задание: Найдите сотрудников, чье имя начинается с гласной (Подсказка: вам нужно использовать несколько операторов ИЛИ).

Здесь есть одна загвоздка: строчные и прописные буквы в строке не совпадают. При поиске по слову «Бэкенд» не будут найдены все экземпляры, содержащие «бэкэнд» в названии должности.
Итак, чтобы избавиться от этого недостатка, нам нужно временно преобразовать строку в верхний или нижний регистр, а затем сравнить ее.
Например, модифицированный запрос будет

ВЫБЕРИТЕ * ОТ сотрудника, ГДЕ ВВЕРХ (работа) КАК '% BACKEND%';  

МЕЖДУ

Мы хотим найти всех сотрудников с зарплатой от 25,000 40,000 до XNUMX XNUMX (включительно). Мы можем сделать это, используя операторы AND и сравнения, как показано ниже.

ВЫБЕРИТЕ * ОТ сотрудника, ГДЕ зарплата>=25000 И зарплата<=40000;

Другой способ сделать это с помощью МЕЖДУ Оператор. Оператор BETWEEN является инклюзивным: включаются начальное и конечное значения.
Мы можем выполнить вышеуказанный запрос, используя оператор BETWEEN.

ВЫБЕРИТЕ * ОТ сотрудника, ГДЕ зарплата ОТ 25000 ДО 40000;

Мини задание: Отфильтровать всех сотрудников с зарплатой от 30,000 40,000 до XNUMX XNUMX (эксклюзив).

IN

Здесь мы явно определяем список значений и возвращаем записи, содержащие любое значение из списка. Мы хотим выбрать сотрудников с employee_id 1, 3 или 5.

ВЫБЕРИТЕ * ОТ сотрудника, ГДЕ employee_id В (1,3,5);
In

Это похоже на объединение нескольких условий с помощью оператора ИЛИ (WHERE employee_id=1 OR employee_id=3 . . .)
Мини задание: Выберите все имена сотрудников с employee_id 2 и 5.

ОГРАНИЧИТЬ/ИЗОБРАТЬ

Хорошо, теперь хватит отфильтровывать по некоторым условиям. Что, если мы хотим выбрать только 3 лучших сотрудников таблицы. Мы можем быстро добиться этого, используя ОГРАНИЧЕНИЯ ключевое слово и ставится в конце кода запроса. Просто введите LIMIT и количество записей, которые мы хотим показать, и все готово.

Примечание: Помните, мы кратко говорили о разных версиях SQL и о том, как могут быть небольшие различия в синтаксисе. Нам нужно использовать «FETCH FIRST number ROWS ONLY» вместо «LIMIT number» в Oracle SQL. Дополнительные сведения см. в документации по версии SQL.

Покажем 2 верхние записи таблицы.

ВЫБЕРИТЕ * ОТ сотрудника FETCH FIRST 2 ROWS ONLY;
Ограничение / получение | SQL

СОРТИРОВАТЬ ПО

Как следует из названия, СОРТИРОВАТЬ ПО Оператор сортирует результат в порядке возрастания или убывания.
Столбец (или столбцы), по которому должны быть отсортированы результаты, добавляется после ключевого слова ORDER BY.
По умолчанию результаты сортируются в порядке возрастания. Чтобы отсортировать его по убыванию, нам нужно добавить По убыванию в конце инструкции ORDER BY.
Допустим, мы хотим отобразить 3 самых высокооплачиваемых сотрудников. Код будет таким, как показано ниже.

ВЫБЕРИТЕ * ОТ сотрудника ЗАКАЗАТЬ ПО ЗП DESC ВЫБЕРИТЕ ТОЛЬКО ПЕРВЫЕ 3 СТРОКИ;
Сортировать по

Мини задание: Выберите 3 самых молодых сотрудников.

Заключение по SQL

Так что это для основ. Я настоятельно рекомендую вам попробовать решить вопросы по кодированию SQL Basic Select на Hackerrank.
Это не конец, так как SQL состоит из более сложных тем, таких как соединения, оконные функции и т. д. Тем не менее, это шаг в правильном направлении.

Источники
Я создал все изображения, показанные в статье (автор).

Материалы, показанные в этой статье, не принадлежат Analytics Vidhya и используются по усмотрению Автора. 

Источник: https://www.analyticsvidhya.com/blog/2022/01/learning-sql-from-basics-to-advance/

Spot_img

Последняя разведка

Spot_img