Select查询命令的作用是什么?

Select查询命令的作用是什么?,第1张

查询是SQL语言的核心,用于表达SQL查询的select查询命令是功能最强也是最为复杂的SQL语句,它的作用就是从数据库中检索数据,并将查询结果返回给用户。 Select语句由select子句(查询内容)、from子句(查询对象)、where子旬(查询条件)、order by子句(排序方式)、group by子句(分组方式)等组成。\x0d\x0a\x0d\x0a结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。\x0d\x0a结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。\x0d\x0a1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。

可以用SELECT*FROMbookWHEREbook_nameLIKE‘计算机%’。

在数据库 *** 作中,使用频率最多的是查询 *** 作。查询数据时,根据不同的需求,条件对数据库中的数据进行查询 ,并返回结果

查询数据库使用 select 命令。

查询数据表中所有数据 语法:select * from 表名

查询指定字段的显示 语法:select 字段1,字段2,... from 表名

as 别名 在查询时,默认结果显示的字段和表中字段名相同,可以通过别名来修改显示的样式 语法:select 字段1 as 别名,字段2 别名,... from 表名

在给字段起别名时,可以使用 as ,也可以直接在字段后跟别名,省略 as 。

消除重复数据 在查询数据时,查询结果可能会有很多重复的数据,如果不想重复,可以使用 distinct 来实现去重。 语法:select distinct 字段名 from 表名

select distinct c_address from t_student

注意:distinct 在去重时,会比较所有的指定字段,只有完全相同时才认为是重复的。

带条件查询 where 子句 查询数据时,需要根据不同的需求设置条件。 通过 where 子句来设置查询条件。

扩展资料:

SELECT语句内部各组成部分的理论计算顺序,依次为:

FROM的表连接;

笛卡尔积

ON连接条件筛选(完成了内部连接)

添加外部连接的行

WHERE子句筛选出满足条件的行集;

GROUP BY子句对行集中的行做分组合并,使得多个行对应于结果集中的一行;

应用HAVING子句从中间结果筛选出满足条件的行的集合;

SELECT的结果列中的表达式,然后是DISTINCT关键字处理(如果有的话)。因此,在SELECT中给结果集中的列指定别名,是无法被WHERE子句或者GROUP BY子句或者HAVING可见并使用的。

应用ORDER BY子句对结果集中的行排序。

如果存在TOP或OFFSET/FETCH,对结果行的挑选。

在SQL结构化查询语言中,LIKE语句有着至关重要的作用。

LIKE语句的语法格式是:

select

*

from

表名

where

字段名

like

对应值(子串),

它主要是针对字符型字段的它的作用是在一个字符型字段列中检索包含对应子串的。

A:%

包含零个或多个字符的任意字符串:

1、LIKE'Mc%'

将搜索以字母

Mc

开头的所有字符串(如

McBadden)。

2、LIKE'%inger'

将搜索以字母

inger

结尾的所有字符串(如

Ringer、Stringer)。

3、LIKE'%en%'

将搜索在任何位置包含字母

en

的所有字符串(如

Bennet、Green、McBadden)。

B:_(下划线)

任何单个字符:

LIKE'_heryl'

将搜索以字母

heryl

结尾的所有六个字母的名称(如

Cheryl、Sheryl)。

C:

[

]

指定范围

([a-f])

或集合

([abcdef])

中的任何单个字符:

1,

LIKE'[CK]ars[eo]n'

将搜索下列字符串:

Carsen、Karsen、Carson

Karson(如

Carson)。

2、LIKE'[M-Z]inger'

将搜索以字符串

inger

结尾、以从

M

Z

的任何单个字母开头的所有名称(如

Ringer)。

D:

[^]

不属于指定范围

([a-f])

或集合

([abcdef])

的任何单个字符:

LIKE'M[^c]%'

将搜索以字母

M

开头,

并且第二个字母不是

c

的所有名称(如MacFeather)。

E:

*

它同于DOS命令中的通配符,

代表多个字符:

c*c代表cc,cBc,cbc,cabdfec等多个字符。

F:

?同于DOS命令中的?通配符,

代表单个字符

:b?b代表brb,bFb等

G:

#

大致同上,

不同的是代只能代表单个数字。

k#k代表k1k,k8k,k0k。

F:

[!]

排除

它只代表单个字符

下面我们来举例说明一下:

例1,

查询name字段中包含有“明”字的。

select

*

from

table1

where

name

like

'%明%'

例2,

查询name字段中以“李”字开头。

select

*

from

table1

where

name

like

'李*'

例3,

查询name字段中含有数字的。

select

*

from

table1

where

name

like

'%[0-9]%'

例4,

查询name字段中含有小写字母的。

select

*

from

table1

where

name

like

'%[a-z]%'

例5,

查询name字段中不含有数字的。

select

*

from

table1

where

name

like

'%[!0-9]%'

以上例子能列出什么值来显而易见。

但在这里,我们着重要说明的是通配符“*”与“%”的区别。

很多朋友会问,

为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:

select

*

from

table1

where

name

like

'*明*'

select

*

from

table1

where

name

like

'%明%'

大家会看到,

前一条语句列出来的是所有的记录而后一条记录列出来的是name字段中含有“明”的记录,

所以说当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,

用“*”的时候只在开头或者只在结尾时而不能两端全由“*”代替任意字符的情况下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9797497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存