(1)LIMIT子句(MySql)
----LIMIT 子句用于规定要返回的记录的数目,一般和Order By一起使用
经常用于数据的分页查询,但是一旦数据量一大,limit的性能就会急速下降
格式:select * from table limit m,n 其中m代表表的某一行数据,n表示的是要查找的多少行数据,从m+1行数据开始查找
SELECT * FROM persons LIMIT 5; 查看person表中前5行的数据SELECT * FROM persons LIMIT 5,10;查看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
原表:
IdLastNameFirstNameAddressCity
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
结果集:
IdLastNameFirstNameAddressCity
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_PLastNameFirstNameAddressCity
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
"Orders" 表:
Id_OOrderNoId_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65
当我们想要查找出所有有订单信息的客户时:
SELECTPersons.LastName, Persons.FirstName, Orders.OrderNoFROMPersonswhere Person.Id_P = Order.Id_PORDER BY Persons.LastName
使用内连接时:
SELECTPersons.LastName, Persons.FirstName, Orders.OrderNoFROMPersonsINNER JOINOrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastNam
结果:
LastNameFirstNameOrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
----Left Join:左连接的结果是除了匹配条件的数据还包含左边表中的所有数据
Right Join:右连接的结果是除了匹配条件的数据还包含右边表中的所有数据
Full Join:只要其中某个表存在匹配,FULL JOIN 关键字就会返回行,就是不管左右两边的表的行内是否存在数据
这三者统称为外链接
当我们想要查找所有人的订单情况时:
SELECTPersons.LastName, Persons.FirstName, Orders.OrderNoFROMPersonsLEFT JOINOrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName
结果:
LastNameFirstNameOrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
Bush
George
当我们想要查找所有的订单情况以及订单的客户信息时:
SELECTPersons.LastName, Persons.FirstName, Orders.OrderNoFROMPersonsRIGHT JOINOrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName
结果:
LastNameFirstNameOrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
34764
当我们想要查找所有人包括所有的订单信息情况时;
SELECTPersons.LastName, Persons.FirstName, Orders.OrderNoFROMPersonsFULL JOINOrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName
结果:
LastNameFirstNameOrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
Bush
George
34764
内容来源于网络如有侵权请私信删除