SQL特殊语句查询

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

http://www.w3school.com.cn/sql/sql_func_now.asp

猜你喜欢

转载自blog.csdn.net/weixin_42034217/article/details/85078709