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