SQL ПОРЪЧАЙ ПО
SQL ПОРЪЧАЙ ПО клаузата се използва за сортиране на данните, съхранявани в таблици в базата данни . Сортирането може да се извърши повъзходящ начин, низходящ начин или въз основа на множество колони на таблицата .
Като цяло редът на сортиране по подразбиране е възходящ ред.
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
Следва синтаксисът на обща клауза ORDER BY:
Пример:
Нека разгледаме следните Клиенти таблица.
ID | NAME | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
1 | Химани гупта | 21 | Модинагар | 22000 |
2 | Шива тивари | 22 | Бхопал | 21000 |
3 | Аджит бхаргав | 45 | Меерут | 65 000 |
4 | Ритеш ядав | 36 | Азамгарх | 26000 |
5 | Balwant singh | 45 | Варанаси | 36000 |
6 | Махеш шарма | 26 | Матура | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Горната заявка ще сортира всички записи във възходящ ред въз основа на колоните ИМЕ и ЗАПЛАТА.
Изход:
ID | NAME | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
3 | Аджит бхаргав | 45 | Меерут | 65 000 |
5 | Balwant singh | 45 | Варанаси | 36000 |
1 | Химани гупта | 21 | Модинагар | 22000 |
6 | Махеш шарма | 26 | Матура | 22000 |
4 | Ритеш ядав | 36 | Азамгарх | 26000 |
2 | Шива тивари | 22 | Бхопал | 21000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Горната заявка ще сортира всички записи в таблицата по низходящ начин въз основа на колоната NAME.
Изход:
ID | NAME | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
2 | Шива тивари | 22 | Бхопал | 21000 |
4 | Ритеш ядав | 36 | Азамгарх | 26000 |
6 | Махеш шарма | 26 | Матура | 22000 |
1 | Химани гупта | 21 | Модинагар | 22000 |
5 | Balwant singh | 45 | Варанаси | 36000 |
3 | Аджит бхаргав | 45 | Меерут | 65 000 |
Има различни теми под клаузата на SQL ORDER BY. А именно те са:
- SQL ПОРЪДКА ПО ASC – Сортира данните във възходящ начин
- SQL ПОРЪДКА ПО DESC – Сортира данните по низходящ начин
- SQL ПОРЪДКА НА СЛУЧАЙНА НАСТРОЙКА – Сортира произволни данни
- SQL ПОРЪЧАЙ ПО ОГРАНИЧЕНИЕ – Избира ограничени данни от базата данни
- SQL ПОРЪЧАЙ ПО множество колони – Сортира данните въз основа на множество колони.
Нека обсъдим всеки от тях подробно.
SQL ПОРЪЧКА ПО ASC
SQL ПОРЪЧАЙ ПО ASC клаузата сортира данните във възходящ ред въз основа на някои колони. Обикновено редът на сортиране по подразбиране е възходящ начин.
Пример:
Нека разгледаме следните Клиенти таблица.
ID | NAME | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
1 | Химани гупта | 21 | Модинагар | 22000 |
2 | Шива тивари | 22 | Бхопал | 21000 |
3 | Аджит бхаргав | 45 | Меерут | 65 000 |
4 | Ритеш ядав | 36 | Азамгарх | 26000 |
5 | Balwant singh | 45 | Варанаси | 36000 |
6 | Махеш шарма | 26 | Матура | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Горната заявка ще сортира всички записи във възходящ ред въз основа на колоните ИМЕ и ЗАПЛАТА.
Изход:
ID | NAME | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
3 | Аджит бхаргав | 45 | Меерут | 65 000 |
5 | Balwant singh | 45 | Варанаси | 36000 |
1 | Химани гупта | 21 | Модинагар | 22000 |
6 | Махеш шарма | 26 | Матура | 22000 |
4 | Ритеш ядав | 36 | Азамгарх | 26000 |
2 | Шива тивари | 22 | Бхопал | 21000 |
SQL ПОРЪЧКА ПО DESC
SQL ORDER BY DESC клаузата сортира данните в низходящ ред въз основа на някои колони.
Пример:
Нека разгледаме следните Клиенти таблица.
ID | NAME | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
1 | Химани гупта | 21 | Модинагар | 22000 |
2 | Шива тивари | 22 | Бхопал | 21000 |
3 | Аджит бхаргав | 45 | Меерут | 65 000 |
4 | Ритеш ядав | 36 | Азамгарх | 26000 |
5 | Balwant singh | 45 | Варанаси | 36000 |
6 | Махеш шарма | 26 | Матура | 22000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Горната заявка ще сортира всички записи в таблицата по низходящ начин въз основа на колоната NAME.
Изход:
ID | NAME | ВЪЗРАСТ | АДРЕС | ЗАПЛАТА |
2 | Шива тивари | 22 | Бхопал | 21000 |
4 | Ритеш ядав | 36 | Азамгарх | 26000 |
6 | Махеш шарма | 26 | Матура | 22000 |
1 | Химани гупта | 21 | Модинагар | 22000 |
5 | Balwant singh | 45 | Варанаси | 36000 |
3 | Аджит бхаргав | 45 | Меерут | 65 000 |
SQL ПОРЪЧКА ПО ОГРАНИЧЕНИЕ
SQL ORDER BY LIMIT клаузата помага при извличането на определен брой записи от таблицата на базата данни. Обикновено се използва в ситуации, когато има голям брой кортежи, които отговарят на даденото условие. Той задава горна граница за броя на записите, които се извличат.
За да се използва клаузата LIMIT в SQL, трябва да се използва ROWNUM клауза с него.
Забележка:Трябва да се отбележи, че клаузата LIMIT не се поддържа от всички версии на SQL.
Тази клауза може да бъде посочена с помощта на SQL 2008 OFFSET или FETCH FIRST клаузи .
Пример:
Нека разгледаме следния Студент таблица.
RollNo | Име | Оценка |
12001 | Адитя | 9 |
12002 | Сахил | 6 |
12003 | Хема | 8 |
12004 | Робин | 9 |
12005 | Сита | 7 |
12006 | Ан | 10 |
12007 | Юсуф | 7 |
12008 | Алекс | 5 |
SELECT * FROM Student LIMIT 5;
Горната заявка ще върне само първите 5 ученици от таблицата на студентите.
Изход:
12001 | Адитя | 9 |
12002 | Сахил | 6 |
12003 | Хема | 8 |
12004 | Робин | 9 |
12005 | Сита | 7 |
Клаузата LIMIT може да се използва и с клаузата ORDER BY.
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
Горната заявка ще върне първите 3 ученици с най-високи оценки в низходящ ред.
Изход:
12006 | Ан | 10 |
12001 | Адитя | 9 |
12004 | Робин | 9 |
Операторът LIMIT е особено полезен в ситуации, в които трябва да бъдат извлечени ограничени данни, без да се използват условни изрази.
Операторът LIMIT може да се използва и с оператора OFFSET.
LIMIT с OFFSET
Трябва да се отбележи, че стойността OFFSET трябва да е по-голяма от нула , и не може да бъде отрицателен. Ако бъде предоставена отрицателна стойност, тя ще върне грешка.
Пример:
Нека разгледаме същата таблица Student.
RollNo | Име | Оценка |
12001 | Адитя | 9 |
12002 | Сахил | 6 |
12003 | Хема | 8 |
12004 | Робин | 9 |
12005 | Сита | 7 |
12006 | Ан | 10 |
12007 | Юсуф | 7 |
12008 | Алекс | 5 |
SELECT * FROM Student LIMIT 5 OFFSET 2 ORDER BY RollNo;
Тази заявка ще върне първите 5 записа на таблицата Student, с изключение на първите 2 записа.
Изход:
RollNo | Име | Оценка |
12003 | Хема | 8 |
12004 | Робин | 9 |
12005 | Сита | 7 |
12006 | Ан | 10 |
12007 | Юсуф | 7 |
ОГРАНИЧАЙТЕ ВСИЧКИ
Има друга клауза, подобна на LIMIT, известна като LIMIT ALL . Клаузата LIMIT ALL няма да постави ограничение и ще върне всички записи в таблицата.
Пример:
Нека отново разгледаме същата таблица Student.
RollNo | Име | Оценка |
12001 | Адитя | 9 |
12002 | Сахил | 6 |
12003 | Хема | 8 |
12004 | Робин | 9 |
12005 | Сита | 7 |
12006 | Ан | 10 |
12007 | Юсуф | 7 |
12008 | Алекс | 5 |
Запитване:
SELECT * FROM Student LIMIT ALL;
RollNo | Име | Оценка |
12001 | Адитя | 9 |
12002 | Сахил | 6 |
12003 | Хема | 8 |
12004 | Робин | 9 |
12005 | Сита | 7 |
12006 | Ан | 10 |
12007 | Юсуф | 7 |
12008 | Алекс | 5 |
SQL ПОРЪЧАЙ ПО множество колони
SQL ПОРЪЧАЙ ПО множество колони ще върне въведените данни в колоната, като ги сортира с помощта на множество колони, които са дадени в заявката.
Той ще сортира данните въз основа на реда на имената на колоните, които са предоставени след клаузата ORDER BY. Името на колоните трябва да се добави в съответния ред, в който потребителят иска сортирането да се случи.
Могат да се добавят множество имена на колони, като се разделят със запетая (,). Също така, ключовите думи ASC или DESC могат да се използват за определяне на реда на сортиране.
Пример:
Нека разгледаме следния Служител таблица с четири колони, а именно идентификатор, име, фамилия и заплата.
id | first_name | фамилно_име | заплата |
1 | Лиза | Улман | 3000 |
2 | Ада | Мюлер | 2400 |
3 | Томас | Зелено | 2400 |
4 | Майкъл | Мюлер | 3000 |
5 | Мери | Зелено | 2400 |
Запитване:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Изход:
id | first_name | фамилно_име | заплата |
4 | Майкъл | M uller | 3000 |
1 | Лиза | U лман | 3000 |
3 | Томас | G реен | 2400 |
5 | Мери | G реен | 2400 |
2 | Ада | M uller | 2400 |
Следователно, първо, продукцията е сортирана по заплата в низходящ ред и след това по фамилно име във възходящ ред. Трябва да се отбележи, че ако ASC или DESC не са споменати, то по подразбиране ще сортира и двете колони във възходящ ред.
Заключение
И така, по-горе са някои от най-важните и често използвани клаузи ORDER BY, които се използват от разработчиците ежедневно, за да изпълняват специфични операции върху базата данни и да извличат данни. Тези клаузи могат да се използват поотделно или могат да се използват заедно, по комбиниран начин, за извършване на операции с база данни.