- SELECT: SELECT е най-често използваният оператор, който ни позволява да извлечем информация от таблица.
Синтаксис за SELECT:
SELECT column_name FROM table_name
Ако искате всички колони от таблицата:
SELECT * FROM table_name
- ИЗБЕРЕТЕ РАЗЛИЧНО:Понякога таблица съдържа колона, която има дублиращи се стойности. Ключовата дума DISTINCT може да се използва за връщане само на отделните стойности в колона.
Синтаксис:
SELECT DISTINCT column FROM table_name
- БРОЙ:Връща броя на редовете в таблица.
Синтаксис:
SELECT COUNT(name) FROM table_name;
С DISTINCT:
SELECT COUNT(DISTINCT(name)) FROM table_name;
- SELECT WHERE:Инструкцията WHERE ни позволява да посочим условия за колони за редовете, които да бъдат върнати.
Синтаксис:
SELECT column1,column2 FROM table WHERE conditions;
- ПОРЕД:С помощта на това можете да сортирате редове въз основа на стойност на колона или във възходящ, или в низходящ ред.
Синтаксис:
SELECT column1,column2 FROM table ORDER BY column1 ASC/DESC;
- LIMIT:Командата LIMIT ни позволява да ограничим броя на редовете, върнати за заявка.
Синтаксис:
SELECT column1,column2 FROM table LIMIT 10;
- BETWEEN:Операторът BETWEEN може да се използва за съпоставяне на стойност с диапазон от стойности.
Синтаксис:
SELECT column1 FROM table WHERE column1 BETWEEN 1 AND 10;
- IN :Използваме оператор IN, за да създадем условие, което проверява стойността, включена в наличния списък с опции.
Синтаксис:
SELECT column1 FROM table WHERE column1 IN (options)
- LIKE и ILIKE :ОператорътLIKE ни позволява да извършваме съпоставяне на образец срещу низови данни с помощта на заместващи символи:
- Процент % : Съвпада с всяка последователност от знаци
- Долна черта _ : Съвпада с всеки отделен знак
Забележка: LIKE е малка и малка буква, докато ILIKE е малка и малка буква
Примери:
SELECT * FROM customer WHERE first_name LIKE ‘A%’; SELECT * FROM customer WHERE first_name ILIKE 'a%' and last_name ILIKE 's%'; SELECT * FROM customer WHERE first_name LIKE '_her%'
Най-често срещаните агрегатни функции:
- AVG() — връща стойност с плаваща запетая
- COUNT() — връща броя на редовете
- MAX() — връща максимална стойност
- MIN() — връща минимална стойност
- SUM() — връща сумата от всички стойности
Примери:
SELECT Min(replacement_cost),MAX(replacement_cost),ROUND(AVG(replacement_cost),2) from film;
ГРУПИРАНЕ ПО:Позволява ни да обобщаваме колони според дадена категория.
Общ синтаксис:
SELECT category_col, AVG(data_col) FROM table GROUP BY category_col
- HAVING:HAVING ни позволява да използваме обобщен резултат като филтър заедно с ГРУПИРАНЕ по.
Пример:
SELECT customer_id, SUM(amount) FROM payment GROUP BY customer_id HAVING SUM(amount)<100;
- Изявление за AS:Позволява ни да създадем „псевдоним“ за колона или резултат.
SELECT column as new_name FROM table;
- СЪЕДИНЯВАНЕ:Позволява ни да комбинираме информация от множество таблици.
- Видове присъединявания:
- INNER JOIN:Вътрешното съединение ще доведе до набор от записи, които съвпадат и в двете таблици.
SELECT * FROM Table B INNER JOIN Table A ON TableA.col_match = TableB.col_match
2. ПЪЛНО ВЪНШНО СЪЕДИНЯВАНЕ (ПЪЛНО СЪЕДИНЯВАНЕ) :Ще се получи пълно външно свързване с всички записи, където има съвпадение в левите или десните записи на таблицата.
SELECT * FROM TableB FULL OUTER JOIN TableA ON TableA.col_match = TableB.col_match
3. ЛЯВО ВЪНШНО СЪЕДИНЯВАНЕ: Лявото външно съединение води до набор от записи, които са там в лявата таблица, ако няма съвпадение с дясната таблица, резултатите са нулеви.
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.col_match = TableB.col_match
Забележка: В този ред на присъединяване има значение.
4 . ДЕСНИ СОЕДИНЕНИЯ:Дясното присъединяване е същото като лявото присъединяване, с изключение на размяната на масите.
SELECT * FROM TableA RIGHT OUTER JOIN TableB ON TableA.col_match = TableB.col_match
- Union:Операторът Union се използва за комбиниране на резултатния набор от два или повече израза SELECT.
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
Благодаря ви, че прочетохте. Надявам се, че сте намерили този блог за полезен. Скоро ще публикувам друг блог за разширени SQL заявки.
Приятно кодиране :)