SQL特殊語句查詢
阿新 • • 發佈:2019-01-01
top語句:用於規定要返回的記錄數目
select top 5 name from Students /*查詢學生表中,前5名學生的姓名*/ select top 20 percent name from Students /*查詢學生表中,前20%的學生姓名*/ /*查詢員工工資前十員工*/ select top 10 * from emp order by sal /*查詢員工工資前十與後十平均工資之差*/ select avg(emp1. sal)-avg(emp2.sal) from (select top 10 sal from emp order by emp.sal desc) AS emp1(sal), (select top 10 sal from emp order by emp.sal asc) AS emp2(sal)
Limit語句:用於強制SELECT語句返回指定的記錄數。
limit接收一個或兩個數字引數,第一個引數指定第一個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。
select * from table limit 5, 10; //檢索記錄行6-15
SELECT * from 表名 WHERE 條件 limit 5,-1; //檢索6到最後一條資料
SELECT * from 表名 WHERE 條件 limit 5; //檢索前5條資料
注意:初始記錄行的偏移量是0而不是1
FIRST() :函式返回指定的欄位中第一個記錄的值,LAST() 函式同理
//查詢 "OrderPrice" 列的第一個值。 SELECT FIRST(OrderPrice) FirstOrderPrice FROM Orders
Mid函式:MID 函式用於從文字欄位中提取字元。
//現在,我們希望從表Persons中的 "City" 列中提取前 3 個字元。
SELECT MID(City,1,3) SmallCity FROM Persons
ROUND() 函式:用於把數值欄位舍入為指定的小數位數。
//價格舍入為最接近的整數。
SELECT ProductName, ROUND(UnitPrice,0) UnitPrice FROM Products
連線:
連線join,等價於內連線inner join
左外連線:left join
右外連線:right join
全連線:full join
//對於連線,我們平時這麼幹:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
//如果使用join語句的話應該
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
//左連線
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
//右連線
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
//全連線
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name