NIIT课本整理知识点

  • 格式:doc
  • 大小:237.50 KB
  • 文档页数:10

Select语句的一般格式:

SELECT [ALL|DISTINCT] [别名][,[别名]]…

FROM [别名][,[别名]]…

[ WHERE ]

[ GROUP BY [HAVING ]]

[ ORDER BY [ASC|DESC]]

--从(from)哪里来(where)分组(group)由’有’(having)命令(order)排列(asc|desc)

1、目标列表达式有以下可选格式:

○1、* ○2、.* ○3、COUNT([DISTINCT|ALL]*)

○4、[.][,[.]]…

其中可以是由属性列、作用于属性列的聚集函数和常量的任意算数运算(+,-,*,/)组成的运算公式

2、聚集函数的一般格式为:

MINMAXAVGSUMCOUNT([DISTINCT|ALL])

3、where子句的条件表达式有以下可选格式:

○1、θ语句)ALL](SELEC|[ANY常量属性列名[

○2、[NOT]BETWEEN语句常量属性列名SELECTAND语句常量属性列名SELECT

○3、[NOT]IN)(]...)2[1(语句值值SELECT

○4、[NOT]LIKE

○5、IS[NOT]LIKE

○6、[NOT]EXISTS(SELECT语句)

○7、ORAND条件表达式ORAND…

自定义显示:

1、可以使用文字向列中显示的值添加更多文本,文字是字符串值,用单引号括起来,如

select customerid ,'价格',price

from items_ordered 显示如下:

2、并置输出表中的文本值:

并置两个字符串,如: select '你是‘+’谁啊'

显示如下:

将表中的两列并置到单独一列:

如:select customerid +'买了:'+item as item from

items_ordered

As后面跟的是将要显示出来的列名,可以是已存在的列名,也可以是虚拟的列名,其无实际意义

3、计算列值:

如:

select customerid,two_price=2*price from

items_ordered

use lonewolf

select customerid,2*price as two_price from items_ordered

等于号‘=’和as效果相同只不过语句中位置不同,as在后,=号在前

4、检索选定行:

即查看与条件匹配的记录,在select语句中使用where子句,使用where子句选择满足条件的行

select *from items_ordered where item='Tent'

5、使用比较运算符来指定条件

语法是

select column_list

from table_name

where expression1 comparison_operarator expression2 --其中expression1和expression2是常量、变量、函数或基于列的表达式的任何有效组合

如:

select price

from items_ordered

where price>=100

一些运算符:

<>,!=不等于

!>不大于

6、检索满足一个或多个条件的记录

OR:至少满足一个条件时返回true值

如:

select *from items_ordered

where quantity='4'or price>1000

and:用于连接两个条件并在均满足这两个条件时返回true值

如:

select *from items_ordered

where quantity='4'and price<1000

Not:对搜索条件的结果相反

select *from items_ordered

where not price<1000

Between:指定要搜索的包含范围

select *from items_ordered

where price between 200 and 1500

Not between:从结果集排除指定的范围

select *from items_ordered

where price not between 5 and 1500

--not的位置最好紧跟between,不过不紧跟也不报错

7、检索包含给定值集中任何值的记录

这类运算是使用IN和NOT IN关键字执行的

select *from items_ordered

where quantity in('3','4')

8、like关键字用于使用通配符来搜索字符串,通配符是特殊字符

%表示任何字符串,可以是零个或更多字符

_表示任何单个字符

[]表示指定范围内的任何单个字符—范围是指:中括号中给定值的所有单个值的集合

[^]表示指定范围外的任何单个字符

表达式 返回

LIKE’LO%’ 以“LO”开头的所有名称

LIKE’%ion’ 以ion结尾的所有名称

LIKE’%rt%’ 其中包含字母rt的所有名称

LIKE’_rt’ 所有以rt结尾的三个字母的名称

LIKE’[DK]%’ 以D或K开头的所有名称

LIKE’[A&nbhy;D]ear 所有以ear结尾并以A到D中任一字母开头的四个字母的名称

LIKE’D[^c]%’ 以D开头并且第二个字母不是c的所有名称

Like运算符不区分大小写

9、null值在列中暗示该列没有提供任何数据值,语法:

Select column_list Fromtable_name

Where column_name unknown_value_operator

其中unknown_value_operator是关键字IS NULL或IS NOT NULL

select customerid from

items_ordered where price is null

两个NULL值不想等。无法比较一个NULL值和另一个NULL值。在按升序排列的输出中,NULL值总是第一个显示的项

10、检索将按一定顺序显示的记录

可以使用select语句的ORDER BY子句按特定顺序显示数据。数据可以按给定列中值的升序或降序显示。

ORDER BY子句:按照递增或递减顺序在指定字段中对查询的结果记录进行排序

在select语句中使用ORDER BY子句的语法是:

Select select_list from table_name

[ORDER BY ORDER_by_expression[ASC|DESC],order_by_expression [ASC|DESC]…]

其中order_by_expression是要执行排序运算的列名

ASC指定需要按升序来排序值

DESC是指定需要按降序来排序值

如:

select * from items_ordered order by price ASC

ORDER BY子句完全可以与WHERE 子句一起使用,唯一需要注意的就是:

ORDER BY子句要放到WHERE子句之后,即:

select * from items_ordered where price > 200 order by price DESC;

或者基于多个列来对结果集排序,为此,需要在ORDER BY子句中指定列的排序顺序,如

select *from items_ordered order by customerid,price

上述查询先按照customerid的升序,然后按照price的升序来排序items_ordered表

如果没有在ORDER BY子句中指定列名的关键字,将按升序来排序记录

ORDER BY子句不会从物理上对表排序

11、从表顶部检索记录

TOP关键字是从查询结果返回的一些记录或者一定百分比的行

select top 10 column_name

from items_ordered—显示前10行的列

select top 10 percent column_name

from items_ordered --显示前10%的列

12、检索值不重复的记录:

需要删除列中具有重复值的行时,可以使用distinct关键字。Distinct关键字从结果集中删除重复行。

关键词 DISTINCT 用于返回唯一不同的值

select distinct item from

items_ordered

使用函数来定义结果集:

1、使用字符串函数

2、使用日期函数

查询显示当前日期:select GETDATE()

函数名 参数 示例 描述

Dateadd (date pert,number,date) Select dateadd(mm,3,’2009-01-01’) 返回2009-04-01,即向该日期加上三个月

Datediff (date part, date1,date2) Select

datename(month,convert(datetime,’

2009-09-01’)) 返回4,计算两个日期的该日期(year)的间隔

Datename (date part,date) Select

datename(month,convert(datetime,’2005-06-06’)) 返回6月,这是所列日期的月份,返回值为字符值

Getdate 无参数 Select getdate() 返回当前日期和时间

Day (date) Select day(‘2009&nbhy,01-05’) 返回5,代表几号,返回值为整数

Getutcdate 无参数 Select getutcdate() 返回系统当前日期,使用“协调世界时(UTC)”,UTC时间也称格林威治时间(GMT)

Month (date) Select

month(‘2009&nbhy,01&nbhy;05’’) 返回1,代表月份,返回值为整数

Year (date) Select year(‘2009-01-05’) 返回2009,代表年份,返回值为整数

日期函数的利用:

select customerid,DATENAME(YY,order_date)+','+convert(varchar,datepart(MM ,order_date)) +'买了'+item as xiaofei

from items_ordered

另一例子:

select item,convert(char(10),order_date,2) as 'hire date'

from items_ordered