- Речення SQL допомагає нам отримати набір або групи записів із таблиці.
- Речення SQL допомагає нам визначити умову для стовпців або записів таблиці.
Нижче наведено різні пропозиції, доступні в мові структурованих запитів:
- РЕЧЕННЯ WHERE
- ГРУПУВАННЯ ЗА ПОЛОЖЕННЯМИ
- НАЯВНІСТЬ ЗАСТЕРЕЖЕННЯ
- ПОРЯДОК ЗА ПУНКТОМ
Давайте розглянемо кожен пункт один за одним на прикладі. Ми будемо використовувати базу даних 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 не відображатиметься відповідно до умов.
Ви отримаєте наступний результат:
Згідно з очікуваним виходом, відображаються лише ті записи, у яких зарплата працівника перевищує 50 000. У таблиці працівника є шість записів, які задовольняють задану умову.
приклад 2:
Напишіть запит, щоб оновити запис про працівника та встановіть оновлене ім’я як «Harshada Sharma», де ім’я міста працівника – Джайпур.
Запит:
mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur';
Наведений вище запит оновить ім’я працівника на «Harshada Sharma», де місто працівника – Джайпур.
Щоб перевірити, чи оновлено записи, ми запустимо запит на вибірку.
mysql> SELECT * FROM employees;
У таблиці співробітника є лише один запис, де місто працівника — «Джайпур». Ідентифікатор запису 3, що задовольняє задану умову. Отже, відповідно до заданої умови ім’я працівника з ідентифікатором працівника 3 тепер змінено на «Harshada Sharma».
приклад 3:
Напишіть запит на видалення запису працівника, де датою приєднання працівника є «2013-12-12».
Запит:
mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12';
Наведений вище запит видалить відомості про працівника, датою приєднання якого є «2013-12-12».
Щоб перевірити результати наведеного вище запиту, ми виконаємо запит на вибірку.
mysql> SELECT *FROM employees;
У таблиці співробітників є лише один запис, де датою приєднання працівника є «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;
Наведений вище запит відобразить усі записи таблиці співробітників, але згруповані за стовпцем віку.
Ви отримаєте наступний результат:
приклад 2:
Напишіть запит для відображення всіх записів таблиці співробітників, згрупованих за найменуванням і окладом.
Запит:
mysql> SELECT * FROM employees GROUP BY Salary, Designation;
Наведений вище запит відобразить усі записи таблиці співробітників, але згруповані за стовпцями зарплати та призначення.
Ви отримаєте наступний результат:
Приклади пропозиції Group By із використанням агрегатних функцій
приклад 1:
Напишіть запит, щоб перерахувати кількість працівників, які працюють на певному призначенні, і згрупуйте результати за призначенням працівника.
Запит:
mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation;
Наведений вище запит відобразить призначення з відповідною кількістю працівників, які працюють над цим призначенням. Усі ці результати будуть згруповані за стовпцем позначення.
Ви отримаєте наступний результат:
Відповідно до очікуваного результату відображається позначення з відповідною кількістю співробітників.
приклад 2:
Напишіть запит для відображення суми зарплати працівника по містах, згрупованих за віком працівника.
Запит:
"формула масона"
mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City;
Наведений вище запит спочатку обчислить суму зарплат, які працюють у кожному місті, а потім відобразить суму зарплати з відповідною зарплатою, але згрупованою за стовпцем віку.
Ви отримаєте наступний результат:
Відповідно до очікуваного результату відображається сума заробітної плати працівника відповідно до міста, до якого належить працівник. Якщо два співробітники належать до одного міста, то вони будуть в одній групі.
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;
Ви отримаєте наступний результат:
Наведені вище результати показують, що ім’я працівника, зарплата та місто працівника, де зарплата працівника перевищує 40 000, згруповані за призначенням. (Працівники з подібним найменуванням розміщуються в одній групі, а з іншим – окремо).
приклад 2:
Напишіть запит на відображення ПІБ та найменування співробітника, де сума зарплати працівника перевищує 45000 і згрупуйте результати за містами.
Запит:
mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000;
Ви отримаєте наступний результат:
Наведений вище результат показує ім’я працівника, посаду та зарплату працівника. Сума заробітної плати більше 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.
Ви отримаєте наступний результат:
Відповідно до очікуваного результату, записи відображаються в порядку зростання призначення працівника.
приклад 2:
Напишіть запит для відображення імені та зарплати працівника в порядку зростання зарплати працівника з таблиці співробітників.
Запит:
mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC;
Тут, у запиті SELECT, речення ORDER BY застосовується до стовпця «Зарплата» для сортування записів. Ми використали ключове слово ASC для сортування зарплати працівника в порядку зростання.
Ви отримаєте наступний результат:
підключення до бази даних у java
Всі записи відображаються в порядку зростання заробітної плати працівника.
приклад 3:
Напишіть запит, щоб відсортувати дані в порядку спадання імен співробітників, які зберігаються в таблиці співробітників.
Запит:
mysql> SELECT * FROM employees ORDER BY Name DESC;
Тут ми використали речення ORDER BY із запитом SELECT, застосованим до стовпця Name для сортування даних. Ми використали ключове слово DESC після пропозиції ORDER BY, щоб сортувати дані в порядку спадання.
Ви отримаєте наступний результат:
Усі записи відображаються в порядку спадання імені співробітника.