logo

ПОЛОЖЕННЯ SQL

  • Речення SQL допомагає нам отримати набір або групи записів із таблиці.
  • Речення SQL допомагає нам визначити умову для стовпців або записів таблиці.

Нижче наведено різні пропозиції, доступні в мові структурованих запитів:

  1. РЕЧЕННЯ WHERE
  2. ГРУПУВАННЯ ЗА ПОЛОЖЕННЯМИ
  3. НАЯВНІСТЬ ЗАСТЕРЕЖЕННЯ
  4. ПОРЯДОК ЗА ПУНКТОМ

Давайте розглянемо кожен пункт один за одним на прикладі. Ми будемо використовувати базу даних MySQL для написання запитів у прикладах.

1. РЕЧЕННЯ WHERE

Речення WHERE у SQL використовується із запитом SELECT, який є однією з команд мови обробки даних. Речення WHERE можна використовувати для обмеження кількості рядків, які відображатимуться в наборі результатів, як правило, це допомагає фільтрувати записи. Він повертає лише ті запити, які відповідають конкретним умовам пропозиції WHERE. Речення WHERE використовується в операторах SELECT, UPDATE, DELETE тощо.

Речення WHERE із запитом SELECT

Символ зірочки використовується з пропозицією WHERE у запиті SELECT для отримання всіх значень стовпців для кожного запису з таблиці.

Синтаксис пропозиції where із запитом на вибірку для отримання всіх значень стовпців для кожного запису з таблиці:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Якщо згідно з вимогою ми хочемо лише отримати вибіркові стовпці, тоді ми використаємо наведений нижче синтаксис:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Розглянемо таблицю співробітників з такими даними:

E_ID Ім'я Зарплата Місто Позначення Дата_приєднання Вік
1 Сакші Кумарі 50000 Мумбаї Керівник проекту 2021-06-20 24
2 Теджасвіні Найк 75000 Делі Системний інженер 2019-12-24 23
3 Ануджа Шарма 40000 Джайпур Менеджер 2021-08-15 26
4 Анушка Тріпаті 90000 Мумбаї Тестери ПЗ 2021-06-13 24
5 Руча Джагтап 45000 Бангалор Керівник проекту 2020-08-09 23
6 Рутуджа Дешмух 60000 Бангалор Менеджер 2019-07-17 26
7 Голос Бавіскара 55000 Джайпур Системний інженер 2021-10-10 24
8 Там Шейх 45000 Пуна Інженер-програміст 2020-09-10 26
9 Сваті Кумарі 50000 Пуна Тестери ПЗ 2021-01-01 25
10 Маюрі Патель 60000 Мумбаї Керівник проекту 2020-10-02 24
одинадцять Сімран Кханна 45500 Колхапур HR 2019-01-02 26
12 Шивані Ваг 50500 Делі Розробник програмного забезпечення 2016-09-10 25
13 Кіран Махешварі 50000 Нашик HR 2013-12-12 23
14 Теджал Джайн 40000 Делі Керівник проекту 2017-11-10 25
п'ятнадцять Мохіні Шах 38000 Пуна Розробник програмного забезпечення 2019-03-05 двадцять

приклад 1:

Напишіть запит, щоб отримати всі записи про працівника, зарплата якого перевищує 50 000.

як видалити перший символ в excel

Запит:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

Наведений вище запит відображатиме всі ті записи про працівника, зарплата якого перевищує 50 000. Зарплата нижче 50 000 не відображатиметься відповідно до умов.

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Згідно з очікуваним виходом, відображаються лише ті записи, у яких зарплата працівника перевищує 50 000. У таблиці працівника є шість записів, які задовольняють задану умову.

приклад 2:

Напишіть запит, щоб оновити запис про працівника та встановіть оновлене ім’я як «Harshada Sharma», де ім’я міста працівника – Джайпур.

Запит:

 mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur'; 

ПОЛОЖЕННЯ SQL

Наведений вище запит оновить ім’я працівника на «Harshada Sharma», де місто працівника – Джайпур.

Щоб перевірити, чи оновлено записи, ми запустимо запит на вибірку.

 mysql> SELECT * FROM employees; 

ПОЛОЖЕННЯ SQL

У таблиці співробітника є лише один запис, де місто працівника — «Джайпур». Ідентифікатор запису 3, що задовольняє задану умову. Отже, відповідно до заданої умови ім’я працівника з ідентифікатором працівника 3 тепер змінено на «Harshada Sharma».

приклад 3:

Напишіть запит на видалення запису працівника, де датою приєднання працівника є «2013-12-12».

Запит:

 mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12'; 

ПОЛОЖЕННЯ SQL

Наведений вище запит видалить відомості про працівника, датою приєднання якого є «2013-12-12».

Щоб перевірити результати наведеного вище запиту, ми виконаємо запит на вибірку.

 mysql> SELECT *FROM employees; 

ПОЛОЖЕННЯ SQL

У таблиці співробітників є лише один запис, де датою приєднання працівника є «2013-12-12». Ідентифікатор запису 13, що задовольняє задану умову. Таким чином, відповідно до даної умови, працівника з ідентифікатором працівника 13 тепер видалено з таблиці співробітників.

2. ГРУПУВАННЯ ЗА РЕЧЕННЯМИ

Речення Group By використовується для впорядкування подібних типів записів у групи в мові структурованих запитів. Речення Group by у структурованій мові запитів використовується з оператором Select. Речення Group by розміщується після речення where в операторі SQL. Речення Group By спеціально використовується з агрегатною функцією, тобто max (), min (), avg (), sum (), count (), щоб згрупувати результат на основі одного або кількох стовпців.

абстрактний клас на java

Синтаксис пропозиції Group By:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

Наведений вище синтаксис вибере всі дані або записи з таблиці, але впорядкує всі ці дані або записи в групи на основі імені стовпця, указаного в запиті.

Синтаксис речення Group By із агрегатними функціями:

 SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME; 

Давайте розберемося з пропозицією Group By за допомогою прикладів.

Розглянемо таблицю співробітників з такими даними:

E_ID Ім'я Зарплата Місто Позначення Дата_приєднання Вік
1 Сакші Кумарі 50000 Мумбаї Керівник проекту 2021-06-20 24
2 Теджасвіні Найк 75000 Делі Системний інженер 2019-12-24 23
3 Ануджа Шарма 40000 Джайпур Менеджер 2021-08-15 26
4 Анушка Тріпаті 90000 Мумбаї Тестери ПЗ 2021-06-13 24
5 Руча Джагтап 45000 Бангалор Керівник проекту 2020-08-09 23
6 Рутуджа Дешмух 60000 Бангалор Менеджер 2019-07-17 26
7 Голос Бавіскара 55000 Джайпур Системний інженер 2021-10-10 24
8 Там Шейх 45000 Пуна Інженер-програміст 2020-09-10 26
9 Сваті Кумарі 50000 Пуна Тестери ПЗ 2021-01-01 25
10 Маюрі Патель 60000 Мумбаї Керівник проекту 2020-10-02 24
одинадцять Сімран Кханна 45500 Колхапур HR 2019-01-02 26
12 Шивані Ваг 50500 Делі Розробник програмного забезпечення 2016-09-10 25
13 Кіран Махешварі 50000 Нашик HR 2013-12-12 23
14 Теджал Джайн 40000 Делі Керівник проекту 2017-11-10 25
п'ятнадцять Мохіні Шах 38000 Пуна Розробник програмного забезпечення 2019-03-05 двадцять

приклад 1:

Напишіть запит, щоб відобразити всі записи таблиці співробітників, але згрупувати результати на основі стовпця віку.

Запит:

 mysql> SELECT * FROM employees GROUP BY Age; 

Наведений вище запит відобразить усі записи таблиці співробітників, але згруповані за стовпцем віку.

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

приклад 2:

Напишіть запит для відображення всіх записів таблиці співробітників, згрупованих за найменуванням і окладом.

Запит:

 mysql> SELECT * FROM employees GROUP BY Salary, Designation; 

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

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Приклади пропозиції Group By із використанням агрегатних функцій

приклад 1:

Напишіть запит, щоб перерахувати кількість працівників, які працюють на певному призначенні, і згрупуйте результати за призначенням працівника.

Запит:

 mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation; 

Наведений вище запит відобразить призначення з відповідною кількістю працівників, які працюють над цим призначенням. Усі ці результати будуть згруповані за стовпцем позначення.

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Відповідно до очікуваного результату відображається позначення з відповідною кількістю співробітників.

приклад 2:

Напишіть запит для відображення суми зарплати працівника по містах, згрупованих за віком працівника.

Запит:

"формула масона"
 mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City; 

Наведений вище запит спочатку обчислить суму зарплат, які працюють у кожному місті, а потім відобразить суму зарплати з відповідною зарплатою, але згрупованою за стовпцем віку.

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Відповідно до очікуваного результату відображається сума заробітної плати працівника відповідно до міста, до якого належить працівник. Якщо два співробітники належать до одного міста, то вони будуть в одній групі.

3. ЗАСТЕРЕЖЕННЯ, ЩО Є:

Коли нам потрібно поставити будь-які умови до стовпця таблиці, ми використовуємо пропозицію WHERE у SQL. Але якщо ми хочемо використати будь-яку умову для стовпця в пропозиції Group By у той час, ми використаємо пропозицію HAVING із пропозицією Group By для умов стовпця.

Синтаксис:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Розглянемо таблицю співробітників з такими даними:

E_ID Ім'я Зарплата Місто Позначення Дата_приєднання Вік
1 Сакші Кумарі 50000 Мумбаї Керівник проекту 2021-06-20 24
2 Теджасвіні Найк 75000 Делі Системний інженер 2019-12-24 23
3 Ануджа Шарма 40000 Джайпур Менеджер 2021-08-15 26
4 Анушка Тріпаті 90000 Мумбаї Тестери ПЗ 2021-06-13 24
5 Руча Джагтап 45000 Бангалор Керівник проекту 2020-08-09 23
6 Рутуджа Дешмух 60000 Бангалор Менеджер 2019-07-17 26
7 Голос Бавіскара 55000 Джайпур Системний інженер 2021-10-10 24
8 Там Шейх 45000 Пуна Інженер-програміст 2020-09-10 26
9 Сваті Кумарі 50000 Пуна Тестери ПЗ 2021-01-01 25
10 Маюрі Патель 60000 Мумбаї Керівник проекту 2020-10-02 24
одинадцять Сімран Кханна 45500 Колхапур HR 2019-01-02 26
12 Шивані Ваг 50500 Делі Розробник програмного забезпечення 2016-09-10 25
13 Кіран Махешварі 50000 Нашик HR 2013-12-12 23
14 Теджал Джайн 40000 Делі Керівник проекту 2017-11-10 25
п'ятнадцять Мохіні Шах 38000 Пуна Розробник програмного забезпечення 2019-03-05 двадцять

приклад 1:

Напишіть запит для відображення імен працівників, зарплати та міста, де максимальна зарплата працівника перевищує 40 000, і згрупуйте результати за призначенням.

Запит:

 mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000; 

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Наведені вище результати показують, що ім’я працівника, зарплата та місто працівника, де зарплата працівника перевищує 40 000, згруповані за призначенням. (Працівники з подібним найменуванням розміщуються в одній групі, а з іншим – окремо).

приклад 2:

Напишіть запит на відображення ПІБ та найменування співробітника, де сума зарплати працівника перевищує 45000 і згрупуйте результати за містами.

Запит:

 mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000; 

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Наведений вище результат показує ім’я працівника, посаду та зарплату працівника. Сума заробітної плати більше 45000 по містах. (Співробітники зі схожими містами розміщуються в одній групі, а ті, у яких інші міста не схожі, розміщуються окремо).

4. НАКАЗ ЗА ПУНКТОМ

Щоразу, коли ми хочемо відсортувати щось у SQL, ми використовуємо пропозицію ORDER BY. Речення ORDER BY у SQL допоможе нам сортувати дані на основі певного стовпця таблиці. Це означає, що всі дані, які зберігаються в певному стовпці, для якого ми виконуємо пропозицію ORDER BY, будуть відсортовані. Значення відповідних стовпців відображатимуться в тій послідовності, у якій ми отримали значення на попередньому кроці.

Як ми всі знаємо, сортування означає або в ПОРЯДКУ Зростання, або в ПОРЯДКУ ЗБИВАННЯ. Таким же чином РЕЧЕНЦЯ ORDER BY сортує дані в порядку зростання або спадання відповідно до наших вимог. Дані будуть відсортовані в порядку зростання кожного разу, коли Ключове слово ASC використовується з реченням ORDER by і the Ключове слово DESC відсортує записи в порядку спадання.

За замовчуванням сортування в SQL виконуватиметься за допомогою пропозиції ORDER BY у порядку Зростання, якщо ми не згадали порядок сортування.

Перш ніж перейти до прикладу пропозиції ORDER BY для сортування записів, спочатку ми розглянемо синтаксис, щоб нам було легко ознайомитися з прикладом.

Синтаксис речення ORDER BY без ключових слів asc і desc:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Синтаксис пропозиції ORDER BY для сортування в порядку зростання:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Синтаксис пропозиції ORDER BY для сортування в порядку спадання:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Уявімо, що у нас є таблиця співробітників із такими даними:

E_ID Ім'я Зарплата Місто Позначення Дата_приєднання Вік
1 Сакші Кумарі 50000 Мумбаї Керівник проекту 2021-06-20 24
2 Теджасвіні Найк 75000 Делі Системний інженер 2019-12-24 23
3 Ануджа Шарма 40000 Джайпур Менеджер 2021-08-15 26
4 Анушка Тріпаті 90000 Мумбаї Тестери ПЗ 2021-06-13 24
5 Руча Джагтап 45000 Бангалор Керівник проекту 2020-08-09 23
6 Рутуджа Дешмух 60000 Бангалор Менеджер 2019-07-17 26
7 Голос Бавіскара 55000 Джайпур Системний інженер 2021-10-10 24
8 Там Шейх 45000 Пуна Інженер-програміст 2020-09-10 26
9 Сваті Кумарі 50000 Пуна Тестери ПЗ 2021-01-01 25
10 Маюрі Патель 60000 Мумбаї Керівник проекту 2020-10-02 24
одинадцять Сімран Кханна 45500 Колхапур HR 2019-01-02 26
12 Шивані Ваг 50500 Делі Розробник програмного забезпечення 2016-09-10 25
13 Кіран Махешварі 50000 Нашик HR 2013-12-12 23
14 Теджал Джайн 40000 Делі Керівник проекту 2017-11-10 25
п'ятнадцять Мохіні Шах 38000 Пуна Розробник програмного забезпечення 2019-03-05 двадцять

приклад 1:

Напишіть запит для сортування записів у порядку зростання позначення співробітника з таблиці співробітників.

Запит:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Тут, у запиті SELECT, речення ORDER BY застосовано до стовпця «Designation» для сортування записів, але ми не використовували ключове слово ASC після речення ORDER BY для сортування в порядку зростання. Отже, за замовчуванням дані будуть відсортовані в порядку зростання, якщо ми не вкажемо ключове слово asc.

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Відповідно до очікуваного результату, записи відображаються в порядку зростання призначення працівника.

приклад 2:

Напишіть запит для відображення імені та зарплати працівника в порядку зростання зарплати працівника з таблиці співробітників.

Запит:

 mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC; 

Тут, у запиті SELECT, речення ORDER BY застосовується до стовпця «Зарплата» для сортування записів. Ми використали ключове слово ASC для сортування зарплати працівника в порядку зростання.

Ви отримаєте наступний результат:

підключення до бази даних у java
ПОЛОЖЕННЯ SQL

Всі записи відображаються в порядку зростання заробітної плати працівника.

приклад 3:

Напишіть запит, щоб відсортувати дані в порядку спадання імен співробітників, які зберігаються в таблиці співробітників.

Запит:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Тут ми використали речення ORDER BY із запитом SELECT, застосованим до стовпця Name для сортування даних. Ми використали ключове слово DESC після пропозиції ORDER BY, щоб сортувати дані в порядку спадання.

Ви отримаєте наступний результат:

ПОЛОЖЕННЯ SQL

Усі записи відображаються в порядку спадання імені співробітника.