SQL (Structured Query Language) – нь датабааз дээр ажиллах стандарт хэл бөгөөд датаг шинэчилэх, хадгалах, боловсруулах, хувиргах болон ашиглах үндсэн зорилготой. Энэхүү нийтлэлээрээ та бүхэнд SQL дээр түгээмэл ашиглагддаг Query-нүүдийг нэгтгэн хүргэж байна.
Select
Датаны тодорхой багануудыг сонгоно.
SELECT column 1, column 2, …
FROM table_name;
Select distinct
Тухайн сонгосон багануудын давхардлыг арилгаж харуулна.
SELECT DISTINCT column 1, column 2, …
FROM table_name;
Where
Тухайн нөхцлийг хангах утгуудыг шүүж харуулна.
SELECT column 1, column 2, …
FROM table_name
WHERE condition;
And
Хэд хэдэн нөхцөл зэрэг биелэх утгуудыг шүүж харуулна.
SELECT column 1, column 2, …
FROM table_name
WHERE condition 1 AND condition 2 AND condition 3
Or
Хэд хэдэнд нөхцлийн аль нэг нь биелэх утгуудыг шүүж харуулна.
SELECT column 1, column 2, …
FROM table_name
WHERE condition 1 OR condition 2 OR condition 3
Not
Тухайн нөхцөл худал байх утгуудыг шүүж харуулна.
SELECT column 1, column 2, …
FROM table_name
WHERE NOT condition;
Min
Сонгосон баганын хамгийн бага утгыг харуулна.
SELECT MIN (column_name)
FROM table_name
WHERE condition;
Max
Сонгосон баганын хамгийн их утгыг харуулна.
SELECT MAX (column_name)
FROM table_name
WHERE condition;
Count
Тухайн нөхцлийг хангаж буй утгуудыг тоог харуулна (Мөрийн тоог)
SELECT COUNT (column_name)
FROM table_name
WHERE condition;
Avg
Тухайн нөхцлийг хангаж буй сонгосон баганын дундаж утгыг харуулна.
SELECT AVG (column_name)
FROM table_name
WHERE condition;
Sum
Сонгосон баганын нийлбэр утгыг харуулна.
SELECT SUM (column_name)
FROM table_name
WHERE condition;
Like
Where нөхцөл дээр ашиглагдах бөгөөд тодорхой хэв шинжийг агуулсан утгуудыг шүүхэд ашиглана.
SELECT column1, column 2, …
FROM table_name
WHERE condition like pattern;
Жишээ:
-- Хэрэглэгчийн нэр нь а-р эхэлсэн хүмүүсийг шүүнэ.
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%'
-- Хэрэглэгчийн нэрний 2 дахь үсэг нь n байх хүмүүсийг шүүнэ.
SELECT * FROM Customers
WHERE CustomerName LIKE '_n%'
-- Like ашиглах зарим жишээнүүд:
WHERE CustomerName LIKE 'a%' - "а" үсгээр эхэлсэн өгөгдлийг шүүнэ
WHERE CustomerName LIKE '%a' - "а" үсгээр төгссөн өгөгдлийг шүүнэ
WHERE CustomerName LIKE '%xy%' - Дундаа "xy" агуулсан өгөгдлийг шүүнэ
WHERE CustomerName LIKE '_r%' - 2 дахь үсэг нь "r" байх өгөгдлийг шүүнэ
WHERE CustomerName LIKE 'a_%_%' - "а" - р эхэлсэн, ядаж 3 тэмдэгтийн урттай өгөгдлийг шүүнэ
WHERE ContactName LIKE 'a%o' - "а" - р эхлээд "o" - р төгссөн өгөгдлийг шүүнэ
IN
Where нөхцөлтэй хамт ашиглагдах бөгөөд тухайн баганын утгуудын авах тодорхой утгуудыг зааж өгнө.
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, …);
Жишээ:
-- Хэрэглэгчийн датанаас хэрэглэгчийн нэр нь Alex болон John гэсэн нэртэй хүмүүсийг шүүнэ.
SELECT * FROM Customers
WHERE CustomerName IN ('Alex', 'John')
Between
Тухайн баганын тоон утгын авах дээд доод хязгаарыг зааж өгнө.
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2
Жишээ:
-- 1000-2000 дүнтэй худалдан авалт хийсэн хүмүүсийг шүүнэ.
SELECT * FROM Customers
WHERE PurchaseAmount BETWEEN '1000' AND '2000'
Case when
Тухайн нөхцөл биелэх үед ямар утга авахыг зааж өгөх бөгөөд ихэвчлэн нөхцөл шалган шинэ багана үүсгэхэд ашиглана.
SELECT ColumnName,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
END AS NewColumnName
from table_name
Insert into select
Нэг Table-с нөгөө рүү дата хуулахад ашиглана.
INSERT INTO table2
SELECT * FROM table
WHERE condition;
Aliases
Table болон багананд нэр өгөхөд ашиглана.
SELECT column_name(s) AS new_name
FROM table_name;
Inner Join
2 Table-ыг нийлүүлэхдээ тухайн 2 table-д хоёуланд нь байх утгуудыг авна.
SELECT column_name(s)
FROM table_name
INNER JOIN table2
ON table1.column_name = table2.column_name;
Left Join
2 table-г нийлүүлэхдээ зүүн талын Table дээр баруун талын table-н таарч буй утгуудыг нийлүүлнэ.
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
Right Join
2 table-г нийлүүлэхдээ баруун талын Table дээр зүүн талын table-н таарч буй утгуудыг нийлүүлнэ.
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name
Order by
Тухайн баганын утгуудыг өсөхөөр болон буурахаар эрэмбэлнэ
SELECT column_name(s)
FROM table_name
ORDER BY column1, column2, … ASC|DESC
Group by
Тухайн баганын утгуудаар групп хийж харуулна.
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Having
Group by ашиглах үед Where нөхцөл ашиглахгүйгээр having ашиглаж нөхцөл бичнэ.
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);