(1)LIMIT子句(MySql)

----LIMIT 子句用于规定要返回的记录的数目,一般和Order By一起使用

     经常用于数据的分页查询,但是一旦数据量一大,limit的性能就会急速下降

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

格式:select * from table  limit  m,n     其中m代表表的某一行数据,n表示的是要查找的多少行数据,从m+1行数据开始查找

SELECT * FROM persons LIMIT 5; 查看person表中前5行的数据

SELECT * FROM persons LIMIT 510;查看person表的第6-15条数据

SELECT * FROM persons LIMIT 95-1;查看person表第96-last的所有数据

(2)between

----between语句一般和and或者是not一起使用,会选取介于两个值之间的数据范围,可以是文本,数值或日期

格式: SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

原表:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
4 Gates Bill Xuanwumen 10 Beijing

 

SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter

 

 结果集:

 

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

 

 重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" 之间的人,但不包括 "Adams" 和 "Carter" ;某些数据库会列出介于 "Adams" 和 "Carter" 之间并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 "Adams" ,但不包括 "Carter" 。

(3)Inner join、Left join、Right join和Full join

----Inner join和join是一样的,也称为内连接,表示在表中存在至少一个匹配时,返回行数据,和where的使用效果是相同的

原表:

"Persons" 表:

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

"Orders" 表:

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

当我们想要查找出所有有订单信息的客户时:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
where Person.Id_P = Order.Id_P
ORDER BY Persons.LastName

使用内连接时:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastNam

结果:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

 

----Left Join:左连接的结果是除了匹配条件的数据还包含左边表中的所有数据

     Right Join:右连接的结果是除了匹配条件的数据还包含右边表中的所有数据

     Full Join:只要其中某个表存在匹配,FULL JOIN 关键字就会返回行,就是不管左右两边的表的行内是否存在数据

     这三者统称为外链接

当我们想要查找所有人的订单情况时:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

结果:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
Bush George  

当我们想要查找所有的订单情况以及订单的客户信息时:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

结果:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
    34764

当我们想要查找所有人包括所有的订单信息情况时;

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

结果:

 

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
Bush George  
    34764
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄