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