SELECT的使用方法.docx
- 文档编号:8341066
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:10
- 大小:21.17KB
SELECT的使用方法.docx
《SELECT的使用方法.docx》由会员分享,可在线阅读,更多相关《SELECT的使用方法.docx(10页珍藏版)》请在冰豆网上搜索。
SELECT的使用方法
SQL查询就是利用SQL语句创建的查询。
SQL语言由若干语句组成,每个语句都遵守特定的语法和约定。
SQL语言即结构化查询语言(StructuredQueryLanguage),在各种关系型数据库中有着广泛的应用
SELECT是任何SQL语言中使用频率最高的语句,它是SQL语言的灵魂。
SELECT语句可以使数据库服务器根据客户的要求搜索所需要的信息,并按规定的格式返回给客户。
使用SELECT语句,不仅可以查询普通数据库中的表格和视图信息,还可以查询SQLServer的系统信息。
SELECT语句是最经常使用的SQL命令,具有强大的查询功能。
在SQLServer数据库中,数据查询是通过使用SELECT语句来完成的。
SELECT语句可以从数据库中按用户的要求查询行,而且允许从一个表或多个表中选择满足给定条件的一个或多个行或列,并将数据以用户规定的格式进行整理后返回给客户端。
SELECT语句可以精确地对数据库进行查找,并且SELECT语句的SQL语法显得直观、结构化。
由于SELECT语句的完整语句比较复杂,所以在这里只列举它的主要子句。
【基本格式】
SELECT[ALL|DISTICT|TOPn]
<*|<字段名列表>|[[表名.]字段1AS别名1,[[表名.]字段2[AS别名2][…]]>
FROM<表名1>,<表名2>[,…]
[WHERE<筛选择条件表达式>]
[GROUPBY<分组表达式>[HAVING<分组条件表达式>]]
[ORDERBY<字段>[ASC|DESC]]
语句说明:
[]表示可选项,>表示必选项,︱表示只能选一项,[,…]表示前面的项可重复
[GROUPBY<分组表达式>[HAVING<分组条件表达式>]]
指将结果按<分组表达式>的值进行分组,该值相等的记录为一组,带【HAVING】
短语则只有满足指定条件的组才会输出。
[ORDERBY<字段>[ASC|DESC]]
“SELECT”就是“选取”的意思,
ALL 表示在查询结果数据集中显示查询到的全部行。
DISTINCT 从SELECT语句的结果中除去重复的行,若此项为空,则默认为ALL,即显示查询到的所有行。
TOPn 用于在查询结果数据集中显示查询到的前n行数据(n为整数)。
* 表示表中所有的列。
字段AS别名 为表中的列名取一个别名,在显示查询结果时,别名将代替列名。
FROM子句 用来指定从中查询行的源表。
可以指定多个源表,各个源表之间用“,”分割;若数据源不在当前数据库中,则用“〈数据库名〉.〈表名〉”表示;还可以在该子句中指定表的别名,定义别名表示为:
〈表名〉as〈别名〉。
WHERE子句 用来指定限定返回的行的搜索条件。
GROUPBY子句 用来指定查询结果的分组条件,即归纳信息类型。
HAVING子句 用来指定组或聚合的搜索条件。
ORDERBY子句 用来指定结果集的排序方式。
显示结果要按<字段>值升序或降序进行排序
姓名
学号
专业
性别
语文
数学
英语
体育
总分
王志宇
20061015
机械
男
83
91
74
65
313
王开甲
20061014
机械
男
81
92
88
62
323
王陈
20061013
机械
女
90
80
83
76
329
唐荣
20061012
机械
男
92
70
77
60
299
汤伍祺
20061011
机械
男
69
84
71
70
294
任子灏
20061010
热能
女
83
91
85
89
348
彭小雪
20061009
热能
女
89
93
84
90
356
倪梓翔
20061008
热能
女
70
80
80
84
314
栾峰
20061007
热能
男
76
86
59
74
295
刘明彬
20061006
热能
男
85
73
66
69
293
顾杨春
20061005
冶金
男
91
99
69
81
340
陈星羽
20061004
冶金
女
79
69
83
78
309
王杰
20061003
冶金
女
97
90
70
89
346
钟贵婷
20061002
冶金
男
85
79
72
74
310
袁霞飞
20061001
冶金
男
88
87
78
98
351
1.查询表中所有的列
星号(*)在选择列表中由特殊含义,它代表列表中的所有行,它的使用格式如下:
因为SELECT*查找当前表中的所有列,所以表结构的改变(添加、删除或重命名列)会自动地改变SELECT*的查询结果。
SELECT*只对含有很少列的表来说很重要,因为如果对于一个含有很多列的表来说,表中全部数据显示很容易混淆。
下面通过具体例子来了解SELECT*的用法。
例如,从数据库“图书管理系统”中查询“出版社信息表”的所有行。
也可以在关键字SELECT后,按创建表时各列在表中的顺序列出所有的列名,将会得到与用SELECT*完全相同的结果。
在SQL查询分析器中输入下面的语句:
2.查询表中指定的列
有时候在对一个表进行查询时,并不需要列出表中所有的列,所以在进行这样的查询时,只需列出那些可能用到的列,即采用指定列的形式。
它的使用格式为:
3.为列取别名并只返回前n行
例如,从数据库“图书管理系统”的“出版社信息表”中查询列“出版社名称”,“出版社所在城市”,“出版社电话”的相关数据,并且为这些列取别名,同时只返回前5条记录。
6.1.3 使用算术运算符
在SELECT语句中列的位置上,可以使用expression表达式。
expression表达式可以是列名、常量、函数,以及由运算符连接的列名、常量和函数的任意组合。
所以,可以用+(加)、–(减)、*(乘)、/(除)和%(取模)这些算术运算符对查询结果进行计算。
例如,从数据库“图书管理系统”的“图书明细表”中,查询列“图书名称”和“定价”为八折后的“新价格”的图书信息。
USE图书管理系统
SELECT图书名称,定价*0.8AS新价格
FROM图书明细表
在查询结果窗口中显示“图书名称”以及图书在打折后的“新价格”,如图6-7所示。
@ 实际演练:
利用算术运算符+(加)对查询结果进行计算
查询数据库“图书管理系统”的“借出信息”表中的“图书编号”、“借书证号”和“应还日期”和“应还日期”推迟31天后“新应还日期”的相关信息。
USE图书管理系统
SELECT图书编号,借书证号,应还日期,应还日期+31as新应还日期
FROM借出信息
执行以上命令后,在查询结果窗口中显示“新应还日期”,新的应还日期延长了一个月,。
用户在查询数据库时往往不需要检索全部的数据,而只需要查询其中一部分满足给定条件的信息,此时需要在SELECT语句中加入条件,以选择其中的部分记录。
这就要用到WHERE子句来指定查询返回行的条件。
带WHERE子句的SELECT语句的基本格式如下:
SELECTselect_list
FROMtable_source
WHEREsearch_condition
下面介绍该语句的命令说明。
WHERE子句必须紧跟在FROM子句的后面。
search_condition为指定查询时要返回的行记录所应满足的条件,该条件由表达式及逻辑运算符等组成,并且SQLServer对search_condition中的查询条件数目没有限制。
SQLServer为search_condition提供各种各样的运算符和关键字作为搜索条件,如表6-1所示。
我们将在下面各小节逐个介绍上述运算符的用法。
6.2.1 比较运算符
在运用WHERE子句来限定查询条件时,可以使用=、>、<、>=、<=、<>、!
=、!
>、!
<等比较运算符对两个表达式进行比较,并且以比较的结果作为查询的条件。
它的语法格式为:
SELECTselect_list
FROMtable_source
WHEREexpression1comparison_operatorexpression2
其中,comparison_operator是比较运算符。
例如,从数据库“图书管理系统”的“图书明细表”中,查询“定价”大于50的所有图书,并在查询结果中显示列“图书编号”、“图书名称”、“出版日期”和“定价”。
USE图书管理系统
SELECT图书编号,图书名称,出版日期,定价
FROM图书明细表
WHERE定价>50
在查询结果窗口中显示“定价”大于50的图书信息,如图6-9所示。
@实际演练:
利用比较运算符“=”限定查询条件
从数据库“图书管理系统”的“作者表”中,查询“籍贯”是“北京”的所有作者,并在查询结果中显示列“作者姓名”和“籍贯”。
USE图书管理系统
SELECT作者姓名,籍贯
FROM作者表
WHERE籍贯='北京'
在查询结果窗口中显示籍贯是北京的作者,如图6-10所示。
@实际演练:
利用比较运算符“<”限定查询条件
从数据库“图书管理系统”的“学生表”中,查询“出生日期”在1988年7月1日以前的学生,并返回这些学生的所有信息。
在查询分析器的命令窗口中输入以下语句:
USE图书管理系统
SELECT*
FROM学生信息表
WHERE出生日期<'1988-7-1'
在查询结果窗口中显示出生在1988年7月1日之前的学生的所有信息,如图6-11所示。
实际演练:
利用比较运算符“!
=”限定查询条件
从数据库“图书管理系统”的“作者表”中,查询“籍贯”不是“北京”的作者信息,并返回列“作者姓名”、“性别”、“家庭住址”和“籍贯”。
USE图书管理系统
SELECT作者姓名,性别,家庭住址,籍贯
FROM作者表
WHERE籍贯!
='北京'
在查询结果窗口中显示籍贯不是北京的作者信息,如图6-12所示。
6.2.2 逻辑运算符
当用WHERE语句处理多于一个条件的查询时,要用到逻辑运算符AND、OR和NOT,逻辑运算符也称做Boolean运算符。
利用逻辑运算符可以连接两个或两个以上的条件,并且在所有条件或某些条件成立时返回结果。
例如,逻辑运算符AND,只有在所有条件都成立时才返回结果;逻辑运算符OR,只要其中一个条件成立即可返回结果;逻辑运算符NOT表示否认一个表达式,表达式成立时不返回结果,只有当表达式不成立时才返回结果。
这些逻辑表达式可以混和运用。
利用逻辑表达式来限定查询条件的基本语法格式如下所示:
SELECTselect_list
FROMtable_source
WHERE{NOTexpression︱expression1logical_operatorexpression2}[,…n]
其中,logical_operator表示逻辑运算符,[,…n]表示前面的项可重复n次,语句中的logical_operator可以是AND、OR两个逻辑表达式中的任意一个,用到NOT时,要将NOT放在表达式的前面。
例如,从数据库“图书管理系统”的“作者表”中,查询“性别”为“男”,并且“籍贯”是“北京”的作者信息。
USE图书管理系统
SELECT*
FROM作者表
WHERE性别='男'AND籍贯='北京'
在查询结果窗口中显示“性别”为“男”,并且“籍贯”是“北京”的作者的信息,如图6-13所示。
@实际演练:
利用逻辑运算符“OR”限定查询条件
从数据库“图书管理系统”的“作者表”中,查询“籍贯”是“河南郑州”或“河北石家庄”的作者信息。
在查询结果窗口中显示籍贯是河南郑州或河北石家庄的作者信息,如图6-14所示。
@实际演练:
利用逻辑运算符“NOT”限定查询条件
从数据库“图书管理系统”的“学生信息表”中,查询“政治面貌”不是“中国共产党员”的学生信息,并且返回列“姓名”、“性别”、“出生日期”、“系别”和“政治面貌”。
在查询结果窗口中显示政治面貌不是中国共产党的学生信息,如图6-15所示。
6.2.3 BETWEEN关键字
在WHERE子句中,当需要确定表达式的取值是否在一定的范围之内时,可以使用BETWEEN、NOTBETWEEN运算符来限定查询条件。
利用BEWEEN关键字来限定查询条件的基本语法格式如下所示:
其中,[NOT]为可选项。
例如,从数据库“图书管理系统”的“图书明细表”中,查询“定价”在50~100之间的图书信息,并且返回列“图书名称”、“出版社编号”、“出版日期”和“定价”。
该查询结果窗口显示中显示定价在50~100之间的图书信息,如图6-16所示。
@实际演练:
利用NOTBETWEEN限定查询条件
从数据库“图书管理系统”的“作者表”中,查询“作者编号”不在10010~10020范围之内的作者信息,并且返回所有列。
在查询结果窗口中显示作者编号不在10010~10020之内的作者信息,如图6-17所示。
@实际演练:
利用BETWEEN和NOTBETWEEN联合限定查询条件
从数据库“图书管理系统”的“图书明细表”中,查询“作者编号”在10011~10020之间且“定价”不在30~150之间的图书信息,并且返回列“图书名称”、“作者编号”、“出版日期”和“定价”。
在查询结果窗口中显示作者编号在10011~10020之间并且定价不在30~150之间的图书信息,如图6-18所示。
6.2.4 IN关键字
在WHERE子句中,当需要确定表达式的取值是否属于某一列表值之一时,可以使用IN或NOTIN运算符来限定查询条件。
利用IN关键字来限定查询条件的基本语法格式如下所示:
SELECTselect_list
FROMtable_source
WHEREexpression[NOT]IN(value_list)
其中,[NOT]为可选项,value_list表示值列表。
例如,从数据库“图书管理系统”的“学生信息表”中,查询“系别”是“工业工程”和“机械自动化”的学生信息,并返回列“学号”、“班号”、“姓名”、“性别”、“出生日期”、“系别和家庭住址”。
在查询结果窗口中显示系别是工业工程和机械自动化的学生信息,如图6-19所示。
@实际演练:
利用NOTIN限定查询条件
从数据库“图书管理系统”的“出版社信息表”中,查询“出版社所在城市”不是“北京”的出版社信息,并且返回所有列。
USE图书管理系统
SELECT*
FROM出版社信息表
WHERE出版社所在城市NOTIN('北
京')
在查询结果窗口中显示地理位置不在北京的出版社信息,如图6-20所示。
@实际演练:
利用IN和NOTIN联合限定查询条件
从数据库“图书管理系统”的“图书明细表”中,查询“作者编号”是10007、10008、10021之一且“出版社编号”不是1001、1005、1008的图书信息,并返回列“图书名称”、“作者编号”、“出版社编号”、“出版日期”和“定价”。
在查询结果窗口中显示作者是作者编号为10007、10008和10021之一,并且出版社不是出版社编号1001、1005和1008之一的图书信息,如图6-21所示。
6.2.5 LIKE关键字
在WHERE子句中,当需要把表达式与字符串进行比较时,可以使用LIKE或NOTLIKE运算符来表示查询条件。
利用LIKE关键字来表示查询条件的基本语法格式如下所示:
SELECTselect_list
FROMtable_source
WHEREexpression[NOT]LIKE'string'
其中,[NOT]为可选项,string表示用来进行比较的字符串。
利用WHERE子句进行查询的过程中,为了实现对字符串的模糊匹配,可以在string字符串中使用通配符。
SQLServer为用户提供了四个通配符,它们分别是:
%、[]、[^]、_(下划线)。
其中,%表示任意多个字符,[]表示指定范围内的单个字符,[^]表示不在指定范围内的单个字符,_(下划线)表示单个字符。
例如,从数据库“图书管理系统”的“作者表”中,查询姓王的作者信息,并返回所有列。
USE图书管理系统
SELECT*
FROM作者表
WHERE作者姓名LIKE'王%'
在查询结果窗口中显示姓王的作者信息,如图6-22所示。
@ 实际演练:
利用'N[xy]%'
限定查询条件
从数据库“图书管理系统”的“图书明细表”中,查询“图书名称”以A开头,第二个字符是S或c的图书信息,并返回列“图书名称”、“出版社编号”、“出版日期”和“定价”。
USE图书管理系统
SELECT图书名称,出版社编号,出版日期,定价
FROM图书明细表
WHERE图书名称LIKE'A[Sc]%'
在查询结果窗口中显示图书名称以A开头,第二个字符是S或c的图书信息,如图6-23所示。
@实际演练:
利用'N[^xy]%'
限定查询条件
从数据库“图书管理系统”的“图书明细表”中,查询“图书名称”以A开头,第二个字符不是c或u的图书信息,并返回列“图书名称”、“出版社编号”、“出版日期”和“定价”。
USE图书管理系统
SELECT图书名称,出版社编号,出版日期,定价
FROM图书明细表
WHERE图书名称LIKE'A[^cu]%'
在查询结果窗口中显示图书名称以A开头,第二个字符不是c或u的图书信息,如图6-24所示。
@ 实际演练:
利用'N_M%'限定
查询条件
从数据库“图书管理系统”的“图书明细表”中,查询“图书名称”以A开头,第二个为任意字符,且第三个字符是t的图书信息,并返回列“图书名称”、“出版社编号”、“出版日期”和“定价”。
6.2.6 选择空值
NULL(即空值)的属性通常表示未知、不可用或将在以后添加的数据,而并不表示0或空白。
在对数据库进行操作的过程中,当需要查看值为NULL的数据库表信息时,就可以利用含有NULL关键字的WHERE子句。
它的基本语法格式如下:
SELECTselect_list
FROMtable_source
WHEREcolumn_nameIS[NOT]NULL
其中,column_name表示列名,[NOT]为可选项。
例如,从数据库“图书管理系统”的“图书明细表”中,查询“出版日期”未添加(即为空值)的图书信息,并返回列“图书编号”、“图书名称”、“作者编号”、“出版社编号”、“出版日期”和“定价”。
USE图书管理系统
SELECT图书编号,图书名称,作者编号,出版社编号,出版日期,定价
FROM图书明细表
WHERE出版日期ISNULL
在查询结果窗口中显示出版日期未添加的图书信息,如图6-26所示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SELECT 使用方法
![提示](https://static.bdocx.com/images/bang_tan.gif)