1、NIIT课本整理知识点Select语句的一般格式:SELECT ALL|DISTINCT 别名,别名 FROM 别名,别名 WHERE GROUP BY HAVING ORDER BY ASC|DESC-从(from)哪里来(where)分组(group)由有(having)命令(order)排列(asc|desc)1、目标列表达式有以下可选格式:、* 、.* 、COUNT(DISTINCT|ALL*) 、.,.其中可以是由属性列、作用于属性列的聚集函数和常量的任意算数运算(+,-,*,/)组成的运算公式2、聚集函数的一般格式为:(DISTINCT|ALL)3、where子句的条件表达式有以下
2、可选格式:、NOTBETWEENAND、NOTIN、NOTLIKE、ISNOTLIKE、NOTEXISTS(SELECT语句)、自定义显示:1、可以使用文字向列中显示的值添加更多文本,文字是字符串值,用单引号括起来,如select customerid ,价格,pricefrom items_ordered显示如下:2、并置输出表中的文本值:并置两个字符串,如: select 你是+谁啊显示如下: 将表中的两列并置到单独一列:如:select customerid +买了:+item as item from items_orderedAs后面跟的是将要显示出来的列名,可以是已存在的列名,也可
3、以是虚拟的列名,其无实际意义3、计算列值:如:select customerid,two_price=2*price from items_ordereduse lonewolf select customerid,2*price as two_price from items_ordered等于号=和as效果相同只不过语句中位置不同,as在后,=号在前4、检索选定行:即查看与条件匹配的记录,在select语句中使用where子句,使用where子句选择满足条件的行select *from items_ordered where item=Tent5、使用比较运算符来指定条件语法是select
4、 column_listfrom table_namewhere expression1 comparison_operarator expression2-其中expression1和expression2是常量、变量、函数或基于列的表达式的任何有效组合如:select price from items_ordered where price=100一些运算符:,!=不等于!不大于6、检索满足一个或多个条件的记录OR:至少满足一个条件时返回true值如:select *from items_ordered where quantity=4or price1000and:用于连接两个条件并在均
5、满足这两个条件时返回true值如: select *from items_ordered where quantity=4and price1000Not:对搜索条件的结果相反select *from items_ordered where not price 200 order by price DESC; 或者基于多个列来对结果集排序,为此,需要在ORDER BY子句中指定列的排序顺序,如select *from items_ordered order by customerid,price上述查询先按照customerid的升序,然后按照price的升序来排序items_ordered表
6、如果没有在ORDER BY子句中指定列名的关键字,将按升序来排序记录ORDER BY子句不会从物理上对表排序11、从表顶部检索记录TOP关键字是从查询结果返回的一些记录或者一定百分比的行select top 10 column_name from items_ordered显示前10行的列select top 10 percent column_namefrom items_ordered -显示前10%的列12、检索值不重复的记录:需要删除列中具有重复值的行时,可以使用distinct关键字。Distinct关键字从结果集中删除重复行。关键词 DISTINCT 用于返回唯一不同的值selec
7、t 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
8、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,代表月份,返回值为
9、整数Year(date)Select year(2009-01-05)返回2009,代表年份,返回值为整数日期函数的利用:select customerid,DATENAME(YY,order_date)+,+convert(varchar,datepart(MM ,order_date) +买了+item as xiaofeifrom items_ordered另一例子:select item,convert(char(10),order_date,2) as hire datefrom items_ordered 排名函数Row_number()Rank()Dense_rank()Ntil
10、e()以上这些函数都是用over子句。该子句确定在行中指定排名的升序或降序。可以将partition by子句与over子句一起使用来划分执行排名的行。Partition by子句根据指定的条件将结果集划分为分区,然后rank函数应用到每个分区Row_number()函数根据列为结果集中的行返回有序数字,从1开始如:select item,price,order_date,ROW_NUMBER()over (order by price asc)as rank from items_orderedrank()函数根据指定条件在结果集中返回每一行的排名如:select item,price,or
11、der_date,Rank()over (order by price asc)as rank from items_ordered如上所示,相同的会有并列排名,而且有了并列则排名就是不连续的了Dense_rank()函数适用于需要根据指定条件给出连续排名值的情况。其执行的排名任务与rank()函数执行的一样,但是它为输出提供连续的排名值如:select item,price,order_date,dense_rank()over (order by price asc)as rank from items_ordered分区函数partition by:partition by关键字是分析性
12、函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定,那么它把整个结果集作为一个分组示例:-不分班按学生成绩排名select *,ROW_NUMBER() over(order by Score desc) as Sequence from Student-分班后按学生成绩排名select *,row_number() over(partition by Grade order by Score desc) as Sequence from Student聚合函数:用来生成汇总数据A
13、vg()返回数据表达式中的平均值Count()返回表达式中的值数Min()返回表达式中的最小值Max()返回表达式中的最大值Sum()返回素质表达式中全部值或唯一值的总和分组数据:Group by子句使用聚合函数将结果集汇总到组中,having子句进一步限制结果集以根据条件生成数据Group by 的含义是将数据分组,然后在组中进行函数操作如:select item,SUM(price)from items_ordered group by item-将items_ordered表按照item分组,然后分别计算各组中的item花费总和且GROUP BY 子句中出现的列,也要包含在SELECT语句中HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似WHERE 子句搜索条件在进行分组操作之前应用而 HAVING 搜索条件在进行分组操作之后应用HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1