数据库学习笔记(二)---SQL查询语句

常规数据查询

1、 SELECT

从指定表中取出指定的列的数据

语法:

 

SELECT column_name(s) FROM table_name

 

解释:

从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。SELECT 陈述式的完整语法相当复杂,但主要子句可摘要为:

SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]

例:

 “Persons” 表中的数据有

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

选出字段名” LastName”” FirstName” 的数据

SELECT LastName,FirstName FROM Persons

返回结果:

LastName

FirstName

Hansen

Ola

Svendson

Tove

Pettersen

Kari

选出所有字段的数据

SELECT * FROM Persons

返回结果:

 

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

 

  

2Where

用途:

被用来规定一种选择查询的标准

语法:

SELECT column FROM table WHERE column condition value

下面的操作符能被使用在WHERE中:

=,<>,>,<,>=,<=,BETWEEN,LIKE

注意: 在某些SQL的版本中不等号< >能被写作为!=

解释:

  SELECT语句返回WHERE子句中条件为true的数据

Persons”表中选出生活在” Sandnes” 的人

SELECT * FROM Persons WHERE City='Sandnes'

 "Persons" 表中的数据有:

LastName

FirstName

Address

City

Year

Hansen

Ola

Timoteivn 10

Sandnes

1951

Svendson

Tove

Borgvn 23

Sandnes

1978

Svendson

Stale

Kaivn 18

Sandnes

1980

Pettersen

Kari

Storgt 20

Stavanger

1960

返回结果:

LastName

FirstName

Address

City

Year

Hansen

Ola

Timoteivn 10

Sandnes

1951

Svendson

Tove

Borgvn 23

Sandnes

1978

Svendson

Stale

Kaivn 18

Sandnes

1980

 

 

 

And & Or

用途:

WHERE子句中ANDOR被用来连接两个或者更多的条件

解释:

AND在结合两个布尔表达式时,只有在两个表达式都为 TRUE 时才传回 TRUE

  OR在结合两个布尔表达式时,只要其中一个条件为 TRUE 时,OR便传回 TRUE

例:

  "Persons" 表中的原始数据:

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

  AND运算子来查找"Persons" 表中FirstName”Tove”而且LastName” Svendson”的数据

SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'

返回结果:

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

OR运算子来查找"Persons" 表中FirstName”Tove”或者LastName” Svendson”的数据

SELECT * FROM Persons
WHERE firstname='Tove'
OR lastname='Svendson'

返回结果:

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

  你也能结合ANDOR (使用括号形成复杂的表达式),:

SELECT * FROM Persons WHERE
(FirstName='Tove' OR FirstName='Stephen')
AND LastName='Svendson'

返回结果:

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

 

3Between…And

用途:

 指定需返回数据的范围

语法:

SELECT column_name FROM table_name
WHERE column_name
BETWEEN value1 AND value2

例: “Persons”表中的原始数据

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Nordmann

Anna

Neset 18

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Svendson

Tove

Borgvn 23

Sandnes

BETWEEN…AND返回LastName为从”Hansen””Pettersen”的数据:

SELECT * FROM Persons WHERE LastName 
BETWEEN 'Hansen' AND 'Pettersen'

返回结果:

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Nordmann

Anna

Neset 18

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

 

为了显示指定范围之外的数据,也可以用NOT操作符:

SELECT * FROM Persons WHERE LastName 
NOT BETWEEN 'Hansen' AND 'Pettersen'

返回结果:

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

 

 

4Distinct

用途:

 DISTINCT关键字被用作返回唯一的值

语法:

SELECT DISTINCT column-name(s) FROM table-name

解释:

 column-name(s)中存在重复的值时,返回结果仅留下一个

例:

“Orders”表中的原始数据

Company

OrderNumber

Sega

3412

W3Schools

2312

Trio

4678

W3Schools

6798

DISTINCT关键字返回Company字段中唯一的值:

SELECT DISTINCT Company FROM Orders

返回结果:

Company

Sega

W3Schools

Trio

 

 

5Order by

用途:

指定结果集的排序

语法:

SELECT column-name(s) FROM table-name ORDER BY { order_by_expression [ ASC | DESC ] }

解释:

 指定结果集的排序,可以按照ASC(递增方式排序,从最低值到最高值)或者DESC(递减方式排序,从最高值到最低值)的方式进行排序,默认的方式是ASC

例:

 “Orders”表中的原始数据:

Company

OrderNumber

Sega

3412

ABC Shop

5678

W3Schools

2312

W3Schools

6798

按照Company字段的升序方式返回结果集:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company

返回结果:

Company

OrderNumber

ABC Shop 

5678

Sega

3412

W3Schools

6798

W3Schools

2312

按照Company字段的降序方式返回结果集:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC

返回结果:

Company

OrderNumber

W3Schools

6798

W3Schools

2312

Sega

3412

ABC Shop

5678

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值