初学者SQL语句

时间:2016.05.03 发布人:anling7993

初学者SQL语句

已解决问题

谷歌anling7993用户在2016.05.03提交了关于“恶魔岛初学者SQL语句”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-12-05T06:40:10。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !

希望以下的回答,能够帮助你。

第1个回答

用户名:royfung0516  

  初学者SQL语句介绍

  1.用Select子句检索记录

  Select子句是每一个检索**的查询核心。它告诉**库引擎返回什么字段。

  Select子句的常见形式是:

  Select*

  该子句的意思是“返回在所指定的记录源中能找到的所有字料胜室段”。这种命令形式很方便,因为你无需知道从表中检索的字段名称。然而,检索表中的所有列是低效的。因此,因该只检索需要的字段,这样可以大大的提高查询的效率。

友兵觉货章赵苗落山示推  2.使用From子句指定记录源

  From子句说明的是查询检索记录的记录源;该记录源可以是一个表或另条班及序脱那久灯想海一个存储查询。

 收严曾 你还能从多个表中检索记站录,这在后面的章节中将介绍。

  例子:

  Se精下志班非存怎lect*From动止督students检索students表中的所有记录

  3.用Where子句说明条件

  Where子句告诉**库引擎根据所提供的一个或多个条件限定其检索的记录。条件是一个表达式,可具有真假两种判断。

  例子:

  Select*FromstudentsWherename="影死时点识子"

  返回students中name字段为影子的列表,这次所返回的结果没有特定顺序,除非你使用求尼担战预最席项了OrderBy子句。该子故进介审清句将在后面的章节介绍。

  注意:Where子句中的文本字符串界限符是双训套曲还引号,在VB中因改为单引号,因为在VB中字符串的界定符是双长析标鸡袁汉试厚引号。

  补充:

  使用And和Or光够混命却逻辑可以将两个或更护场画帮与务危凯多的条件链接到一起以创建更高补格氢求成级的Where子句

  例子:

  Select*FromstudentsWherename="影子"And**mber>100

  返回name为影子**mber大于100的列表。

  例子:

  Select*FromstudentsWherename="影子"And(**mber>1训少识00Or**mber<5致罪0)

  返回name为影子,**mber大于100或者小于50的列表。

  Where子句中用到的操作符

  操作符功能

  <小

  <=小于或等于

  >大于

  >=大于或等于

  =等于

  <>不等于

  Betwe拿en在某个取值范围内

  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