可以用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字段中含有“明”的记录,
所以说当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,
用“*”的时候只在开头或者只在结尾时而不能两端全由“*”代替任意字符的情况下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)