
已解决问题
谷歌anling7993用户在2016.05.03提交了关于“恶魔岛初学者SQL语句”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-12-05T06:40:10。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !
详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !
1.用Select子句检索记录
Select子句
Select子句的常见形式是:
Select*
该子句的意思是“返
From子句说明的是查询检索记录的记录源;该记录源可以是一个表或另
例子:
Se
3.用Where子句说明条件
Where子句告诉**库引擎根据所提供的一个或多个条件限定其检索的记录。条件是一
例子:
Sel
返回students中name字段为影
补充:
使用And和Or
例子:
Select
返回name为影子**mber大于100的列表。
例子:
Select*FromstudentsWherename="影子"And(**mber>1
返回name为影子,**mber大于100或
Where子句中用到的操作符
操作符功能
<小
<=小于或等于
>大于
=等于
<>不等于
Betwe
Like匹配某个模式
In包含在某个值列表中
SQL中的等于和不等于等操作符与VB中的意义和使用相同
例子:
(1).Between操作符
Usecust
Select*Fromstudents
Where**mberBetween1and100
Between操作符返回的是位于所说明的界限之内的所有记录值。这个例子就返回**mber字段1到100之间的全部记录。
(2).Like操作符和通配符
Usecust
Select*Fromstudents
WherenameLike"%影%"
Like操作符把记录匹配到你说明的某个模式。这个例子是返回含“影”的任意字符串。
四种通配符的含义
通配符描述
%代表零个或者多个任意字符
_(下划线)代表一个任意字符
[]指定范围内的任意单个字符
[^]不在指定范围内的任意单个字符
全部示例子如下:
Like"BR%"返回以"BR"开始的任意字符串
Like"br%"返回以"Br"开始的任意字符串
Like"%een"返回以"een"结束的任意字符串
Like"%en%"返回包含"en"的任意字符串
Like"_en"返回以"en"结束的三个字符串
Like"[CK]%"返回以"C"或者"K"开始的任意字符串
Like"[S-V]ing"返回长为四个字符的字符串,结尾是"ing",开始是从S到V。
Like"M[^c]%"返回以"M"开始且第二个字符不是"c"的任意字符串。
4.使用OrderBy对结果排序
OrderBy子句告诉**库引擎对其检索的记录进行排序。可以对任何字段排序,或者对多个字段排序,并且可以以升序或隆序进行排序。
在一个正式的Select查询之后包含一个OrderBy子句,后跟想排序的字段(可以有多个)便可以说明一个排序顺序。
例子:
Usecust
Select*Fromstudents
WherenameLike"%影%"
OrderBy**mber
对返回的结果按**mber进行排序。
以降序排序
如要以隆序排序,只需在排序的字段之后使用Desc关键字。
例子:
Usecust
Select*Fromstudents
WherenameLike"%影%"
OrderBy**mberDesc
5.使用Top显示某个范围的第一个记录或最后一个记录。
使用Top关键字可以只显示一个大记录前面或后面的少数几个记录。在查询中,Top关键字与排序子句一起把结果集限制为少数几个记录或按某个百分比显示整个结果记录集合中的一部分。
例子:
SelectTop3*Fromstudents返回students表中的前3条记录
SelectTop10Percent*Fromstudents返回students表中前面的10%个记录
SelectTop3*FromstudentsOrderBy**mberdesc返回students表中**mber最大的(最后)的3条记录
6.用As对字段名进行别名化
为什么在查询中对字段命以别名,或重新命名,这样做的原因有两个:
☆所涉及的表的字段名很长,想使字段在结果集中更易处理一些。
☆创建的查询**生了某些计算或合计列,需要对之进行命名。
不管是什么原因对字段命以别名,在SQL中都可以容易地使用As子句做得。
例子:
Select**mberAs学号,nameAs姓名Fromstudents
7.合并查询
合并查询(UnionQuery)用于合并具有相同字段结构的两个表的内容,如果想在一个结果集中显示多个记录源中的不相关的记录时,这十分有用。
例子:
Select*
Fromstudents
Union
Select*
Fromstudents1
该查询结果集把students和students1中的记录合并到一个结果中,其输出就和原表归档之前一模一样。
注意:缺省情况下,合并查询不会返回重复记录(如果记录归档系统在把记录拷到归档表中后不将相应的记录删除,这时该功能就有用了),可以加上All关键字而让合并查询显示重复记录。
例子:
Select*
Fromstudents
UnionAll
Select*
Fromstudents1
该合并查询显示students表和students1表的内容时,没有对重复记录进行处理
补充:
Union运算符允许把两个或者多个查询结果合并到一个查询结果集中。如果比较Union和Join两咱运算符,那么Union运算符增加行的数量,而Join运算符增加列的数量。使用Union时应该注意,两个结果中的列的结构必须匹配,**类型必须兼容等等。
Union运算符的语法形式如下:
Selectselect_list
Fromclause
Whereclause
GroupByclause
h****ingclause
Union[All]
Selectselect_list
Fromclause
Whereclause
GroupByclause
h****ingclause
OrderByclause
Computeclause
对于Union运算符,有下列几点需要说明:
·在默认情况下,Union运算符删除全部冗余行。如果使用All选项,那么冗余行不删除。
·在Union语句中的全部select_list必须有相同数量的列、兼容的**类型并且按照同样的顺序出现。
·在结果集中,列名来自第一个Select语句。
8.连接查询
在实际使用过程中经常需要同时从两个表或者两个以上表中检索**。连接就是允许同时从两个表或者两个以上表中检索**,指定这些表中某个或者某些列作为连接条件。在SQLServer中,可以使用两种连接语法形式,一种是Ansi连接语法形式,这是连接用在From子句中,另外一种是SQLServer连接语句形式,这是连接用在Where子句中。
Ansi连接语法形式如下:
Selecttable_name.column_name,table_name.column_name,
From{table_name[join_type]Jointable_nameOnsearch_conditions}
Where[search_conditions]
在Ansi语法形式中,可以Ansi连接关键字来确定使用的连接形式。例如:
☆使用InnerJoin关键字,结果集中仅包含满足条件的行。
☆使用CrossJoin关键字,结果集中包含两个表中所有行的组合。
☆使用OuterJoin关键字,结果集中既包含那些满足条件的行,还包含那些其中某个表的全部行。
SQLServer连接语法形式如下所示:
Selecttable_name.column_name,table_name.column_name,
From[table_name,tab