您的位置:首页 > 数据库

SQL语句 - 基本查询

2015-05-04 20:11 190 查看

一、语法结构



select select_list
[ into new_table ]
from table_source
[ where search_condition ]
[ group by broup_by_expression ]
[ having search_condition ]
[order by order_by_expression [ asc | desc ]




select查询语句中的主要参数说明如下

select_list:查询的列或者表达式的列表,用逗号进行分隔。
new_table:新的表名。
table_source:要查询的表。如果是多个表,用逗号进行分隔。
search_condition:查询条件。
group_by_expression:分组表达式。
order_by_expression:排序表达式。
asc:升序排序。
desc:降序排序。

select查询语句字句的功能列表

子句主要功能是否必需
select指定由查询返回的列
from指定要查询的表
into创建新表并将结果行插入新表中
where查询条件
group by对查询结果进行分组
order by对查询结果进行排序
having对查询结果进行筛选

二、选择列表

  选择列表用于定义select语句的结果集中的列

  1、*  查询所有列:

  select * from person  


  *就是结果集合,表示查询person表中的所有列。

  2、distinct  去除重复数据:

   distinct是对所有列作用,也就是说,所有列都相同才算重复数据。

  select distinct name from person


  3、包含函数的查询:

  例如:

  select count(*) from person


三、from子句

from子句实际上就是用逗号分隔的表名、视图名和join字句的列表。使用from子句可以实现如下功能:

1、列出选择列表和where子句引用的列所在的表和视图。可以使用as子句为表和视图指定别名。

2、联接类型。这些类型由on子句中指定的联接条件限定。

分配表名时可以使用如下形式

table_name as table alias

table_name as table_alias

需要特别说明的是,如果为表分配了别名,那么T-SQL语句中对该表的所有显示引用都必须使用别名,而不能使用别名。

四、where子句

where子句可以筛选结果集的源表中的行。带有where子句的select语句的结构如下:

  select <字段列表>
  from <表名>
  where<条件表达式>


其中,条件表达式是由各种字段、常量、表达式、关系运算符、逻辑运算符和特殊的运算符组合起来的。

where子句中的运算符:

1、关系运算符

  关系运算符用来表示两个表达式之间的比较关系。

关系运算符含义
=等于
<小于
>大于
!=(或<>)不等于
>=大于等于
<=小于等于
!>不大于
!<不小于
  2、逻辑运算符

    逻辑运算符用于表示两个表达式之间的逻辑关系:

逻辑运算符含义
not非(否)
and
or
  3、特殊运算符

特殊运算符含义
%通配符,通常与like配合使用
_通配符,代表严格的一个字符。where name like '_xxx'将查找以xxx结尾的所有4个字母的名字(sxxx,dxxx等)
[]指定范围([a-f])或集合([abcdefg])中的任何单个字符。where name like '[a-f]xxxx',将超找以abcdef开头,xxxx结尾的字符。
[^]不属于指定范围的([a-f])或集合([abcdefg])的任何单个字符。
between定义一个取值范围区间,使用and分开。between开始值与and结束值。
like字符串匹配
in一个字段的值是否在一组定义的值之中
exists子查询有结果集返回(则子查询返回True)
not exists子查询没有结果集返回(则子查询返回True)
is null字段是否为null
is not null字段是否不为null
在WHERE子句中使用EXISTS(如果使用得当的话)可以大大提高性能。因为使用EXISTS时,只要找到和条件匹配的记录,SQL Server就立即停止。假设有一个包含一百万条记录的表,并且在第三个记录中找到了匹配的记录,那么使用EXISTS选项将避免读取999997条记录!NOT EXISTS以同样的方式工作。

五、group by子句

  详见地址:/article/4678155.html

六、order by子句

  order by子句用于指定结果集的排序

  1、语法结构:

    select <字段名列表>
    from 数据库表名
    [where <条件表达式>]
    [order by[<字段名或者表达式> [asc|desc],...]]


  order by子句可以搭配where子句,也可以和select、fromD搭配使用,而不需要where子句。

  order by子句的语法如下:

[ order by { order_by_expression [ asc | desc] } [ ,...n ] ]


其中主要的参数说明如下:

  order_by_espression:指定要排序的列、列的别名、表达式或者指定为代表选择列表内的名称、别名或表达式的位置的负整数。

  asc:按递增顺序对指定列中的值进行排序。

  desc:按递减顺序对指定列中的值进行排序。

七、having筛选查询

  详见地址:/article/4678155.html

八、into查询

  into子句将查询结果生成新表,新表的结构由查询字段列表组成。也可以将查询的结果送入tempdb数据库的临时表中,这样关闭服务器之后临时表会自动删除。

  into查询的语法结构:

  SELECT <字段名列表>
  [ into 新的数据表名 ]
  FROM 数据库表名
  [ where <条件表达式> ]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: