mysql查询persons表中是否存在_Sql语句的一些事(一)

(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

内容来源于网络如有侵权请私信删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值