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

Итак, в этом посте мы обсудим некоторые из основных промежуточных SQL-запросов для специалистов по данным. Мы обсудим 4 SQL-запроса, и вопрос в том, зачем учить эти 4 SQL-запроса?

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

  1. Триггер в SQL и как его использовать в нашем запросе?
  2. Разделить по в SQL
  3. Ограничение в SQL, и как мы используем синтаксис LIMIT, чтобы ограничить наш запрос в таблице SQL?
  4. COALESCE в SQL и как она помогает нам избавиться от значений NULL?

1. Триггер в SQL

В этом посте мы поговорим о возможностях триггеров в SQL.

Что такое триггер в SQL?

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

Триггер в основном разделен на три части

1. Trigger_Time
2. Trigger_Event
3. Table_name

1. Trigger_Time: время срабатывания означает, когда вы хотите, чтобы этот триггер запускался, например, до или после события.
В приведенном ниже запросе мы использовали ранее, почему? Потому что мы хотим, чтобы наш код выполнялся до того, как код будет вставлен в нашу таблицу.

2. Trigger_Event: триггерное событие — это когда мы хотим запустить этот триггер, например INSERT, UPDATE и DELETE.

В приведенном выше примере мы используем INSERT, потому что мы хотим запустить наш триггер при выполнении события INSERT.

3. Table_name: имя таблицы — это имя нашей таблицы

Итак, давайте подробно обсудим синтаксис триггера с надлежащим практическим объяснением

кода между BEGIN и END заключается в том, что всякий раз, когда мы вставляем значение в таблицу Voter, триггер проверяет возраст, меньше ли он 18 или больше 18 лет. Ничего происходит, если оно больше или равно 18, а если меньше 18, то триггер покажет ошибку, и мы установим сообщение.

Например, см. изображение выше, мы устанавливаем message_text = ' age must be ›=18', поэтому всякий раз, когда мы пытаемся вставить значение меньше 18, появляется это сообщение об ошибке. В разделе вывода, когда мы пытаемся вставить Эндрю, 17 лет, запрос показывает ошибку, которая содержит наше пользовательское сообщение. Вот что срабатывает в SQL и как их использовать в вашем запросе.

Проверьте приведенный ниже код для более практического понимания

DELIMITER $$
/* creating a trigger whose name is age_checker */
  CREATE TRIGGER age_checker
     /* defining when our trigger run before inserting or after inserting
        in our case we choose before inserting that's why we use BEFORE */
      BEFORE INSERT ON Voter FOR EACH ROW
      BEGIN 
     /* Now we are checking the inserted value in our age column if it is 
        less then 18 then show our error message */ 
        IF NEW.age < 18
        THEN 
           SIGNAL SQLSTATE '45000'
              /* setting our error message in the MESSAGE_TEXT */
              SET MESSAGE_TEXT = 'AGE MUST BE >= 18';
        END IF;
     END;
DELIMETER;

2. Разделение в SQL

В этом посте мы обсудим раздел и как его использовать в SQL.

Итак, первый вопрос: что такое раздел в SQL?

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

Пожалуйста, посмотрите на второе изображение выше.
В таблице есть пять строк, в которых есть столбец с названием «пол» с тремя кандидатами-мужчинами и двумя кандидатами-женщинами, так что, если нам нужен новый столбец что показывает количество самцов и самок?

Синтаксис разделения группирует строки в соответствии с похожим значением, что означает, что в нашем запросе мы используем разделение по полу. Это означает, что мы хотим сгруппировать наши строки в соответствии с полом, поэтому в столбце пола есть только два уникальных значения: первое — M, а второе — F, поэтому строки делятся на две группы.
1 Строки, которые содержат M в столбце пола
2 Строки содержат F в столбце пола

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

В выводе видно, что построен новый столбец с именем no_of_male_female, и этот столбец содержит количество строк в группе. Например, в группе F есть две строки, поэтому отображается 2, а в группе M три строки, поэтому отображается 3.

Некоторым может быть интересно,
в чем разница между группировкой и секционированием в SQL, поскольку обе операции похожи. Итак, ответ таков: если вы используете группу, ваши пять строк преобразуются только в две строки. Почему?

Поскольку группа по показывает количество групп, в нашем предыдущем запросе наша таблица разделена на две группы, M и F, поэтому группа по показывает только первую строку каждой группы, что означает, что если группа содержит десять строк, но он показывает только 1 строкув выходных данных, потому что показывает 1 строку каждой группы.

Но если к тому времени вы используете секционирование, количество строк останется неизменным, поскольку вы видите количество строк в выходных данных, а количество строк в таблице останется прежним.
Разделение в SQL показывает все строки.
У обоих есть преимущества и недостатки, которые вы можете использовать в соответствии со своими требованиями.

Проверьте приведенный ниже код, если он вам нужен

/* count function used to count number of gender after partition and then 
   show output in no_of_male_female column */

SELECT * , COUNT(gender) OVER (PARTITION BY gender) 
AS no_of_male_female FROM EMPLOYEE;

3. Ограничить запрос

LIMIT в SQL и принцип его работы, хотя LIMIT не поддерживается в некоторых базах данных SQL, таких как SQL-серверы и доступ MS.

Предложение LIMIT широко используется в базах данных SQL и в первую очередь для ограничения строки.
Например: если мы хотим найти 10 лучших или десять худших альбомов в базе данных, то ограничение полезно. Мы используем LIMIT 10 в последнем запросе, и наша работа выполнена.

Но вот вопрос, как работает LIMIT, и как мы можем его эффективно использовать?

Мы можем использовать LIMIT двух типов

1. LIMIT ( любое постоянное значение )
Например, приведенный ниже код выбирает первые восемь строк из таблицы
SELECT * FROM table_name LIMIT 8;

2. LIMIT(x, y)
Это более точный способ ограничить наши таблицы.
Аргумент x используется для удаления нескольких строк сверху.
Аргумент y показывает количество строк, которое вы хотите после исключения.
Например:
Выберите * FROM table_name LIMIT 3,2;
этот запрос удаляет три строки сверху, а затем показывает две строки после исключения трех строк.

Проверьте приведенный ниже код.

/* This command is used to select first two rows */

SELECT * FROM EMPLOYEE LIMIT 2;


/* This command is used to select 3 rows after eliminating first two rows */

SELECT * FROM EMPLOYEE LIMIT 2,3;

4. Функция ОБЪЕДИНЕНИЕ

Знаете ли вы, что в SQL есть несколько замечательных функций, которые экономят ваше время?
Здесь я говорю о функции COALESCE, и эта функция поражает вас, поэтому, пожалуйста, прочитайте весь пост.

Функция COALESCE принимает n значений.

COALESCE(value_1,value_2,......, value_n)

Итак, давайте поймем это; см. выше 4-е изображение. Вы видите, что есть таблица EMPLOYEE, которая содержит столбец, имя которого находится, и в этом столбце есть 3 значения NULL. Так что, если мы захотим заменить это значение NULL осмысленным словом? Как и на изображении выше, мы хотим заменить все значения NULL словом Missing_value.

Мы можем сделать это с помощью функции COALESCE, просто увидев код на изображении выше. Функция COALESCE заменяет все значения NULL словом Missing_value.

Давайте разберемся с функцией COALESCE шаг за шагом.
Шаг 1:Первый аргумент, который мы передаем в функцию COALESCE, — это имя столбца, в котором мы хотим найти значения NULL. Вот почему мы используем местоположение.

Шаг 2. Если найдено несколько значений, ничего не происходит; как вы увидите в выводе кода на изображении, значение остается прежним, но если оно нашло значения NULL, то что оно делает, так это то, что оно просто заменяет эти значения NULL словом, которое мы даем в качестве второго аргумента в функции COALESCE. и мы дали Missing_value в качестве второго аргумента, и поэтому он заменяет все значения NULL, присутствующие в столбце местоположения, на Missing_value.

Вот как работает функция COALESCE в SQL. Нам дали пример использования одного столбца. Мы также делаем то же самое, если хотим заменить значения NULL в нескольких столбцах; мы также можем сделать это, следуя приведенному выше синтаксису.

Проверьте приведенный ниже код.

/* So we are targeting the location column from our EMPLOYEE table and 
   then replacing the NULL values with Missing_value text */
SELECT COALESCE(location,"Missing_value") as Location
FROM EMPLOYEE;

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

Подпишитесь на мою рассылку

Свяжитесь со мной в Linkedin



А пока удачного кодирования.