当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-01-25 23:11:00  来源:本站整理

SQL Server数据查询基本办法的探究[MSSQL防范]

赞助商链接



  本文“SQL Server数据查询基本办法的探究[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

首先成立一个简单的数据库作为示例数据库,数据库名称为school_db,里面有三张表 Department_TBL(DNO,DName),Class_TBL(CNO,CName,DNO),Student_TBL(SNO,SName,SSex,CNO)

一 基本查询

基本语法:select (查询列表|*) from  (表列表)

阐明:“查询列表”可以是表的字段,表达式,函数.“表列表”可以包含多张表

示例:查询全部学生的基本信息

  1. Select * from Student_TBL 

二 where条件查询

基本语法:select (查询列表|*) from (表列表) where (限制条件)

阐明:where关键字背面的限制条件不能包含聚合函数

示例:查询所在班级编号是“003”的学生的基本信息

  1. Select * from Student_TBL where CNO=’003’ 

三 关键字in的利用

基本语法:select (查询列表|*) from (表列表) where (字段名) in (值调集)

阐明:in关键字的作用是查询某一字段能否在一个调集合,普通在where语句中利用

示例:查询学号为23,34,35,40 学生的信息

  1. Select * from Student_TBL where SNO in (23,34,35,40) 

四 between和 Not between的利用

基本语法:select (查询列表|*) from (表列表) where (字段名) between||not between 值1 AND 值2

阐明:判断某个字段的值能否在一个范围之内

示例:查询全部学号大于5小于30的学生的信息

  1. Select * from Student_TBL where SNO between 5 and 30 

五 消除后果集合的反复行

基本语法:select distinct column1,… from (表列表)

阐明:去除后果集合跟在distinct关键字背面全部字段的值相等的记录

示例:查询全部学生的信息,删除名字相同的多余行

  1. Select distinct column1,… from Student_TBL 

六 返回指定的行数(百分率)

基本语法:select top n [percent](column1,…) from (表列表)

阐明:n为要返回的行数,若含有percent关键字则按百分比返回,则此时n必须在0~100之间,若查询语句中含有order by 则先对查询后果举行排序,再履行挑选

示例:返回前十名学生的基本信息

  1. Select top 10 * from Student_TBL 

返回前百分之十的学生的基本信息

  1. Select top 10 percent * from Student_TBL 

七 改变查询标题

基本语法:select  ‘自定义标题’=column1,…. From (表列表),select column1 ‘自定义标题’,…. From (表列表),select column1 as ‘自定义标题’,… from (表列表)

阐明:改变的只是查询后果的标题,并没有改变表的标题

示例:查询学生的基本信息,SNO,SName,CNO辨别用“学号”,“姓名”,”所属班级”显示

、这里只利用第三种办法演示了

Select ‘学号’ as SNO,’姓名’ as SName,’所属班级’ as ‘CNO’ from Student_TBL

八 在查询后果中显示字符串

基本语法:在select 语句中,将增添的字符串用单引号括起来然后和列的名字写在一同,中间用逗号脱离

示例:查询全部学生信息,显示的后果的情势是“学号+“我的姓名是+”性命+班级编号”

Select SNO,’我的姓名是’,SName,CNO from Student_TBL

九 order by的利用

基本语法:

  1. select * from table_Name [where..] order by column1 [asc]desc]… 

阐明:order by 背面可以指定多个列,默许是按升序方法布列的,order by 放在where 语句之后

示例:查询全部学好大于23号的学生信息,并按学号的降序布列

  1. Select * from Student_TBL where SNO>23 order by SNO desc 

十 利用Like实现模糊查询

基本语法:select * from table_Name where column like (匹配条件)

阐明:“%”匹配肆意长度的(长度可认为0)字符串,“_”匹配肆意单个字符,“[]”:匹配所给定范围或调集合的肆意单个字符,“[^]”匹配所给定的不在所给定的调集或范围中的肆意单个字符,通配符或字符串必须用单引号括起来

示例:查询全部姓李的同学地信息

  1. Select * from Student_TBL where SName like ‘李%’ 

查询全部学生名字中第二个字为“冰”的同学的信息

  1. Select * from Student_TBL where SName like ‘_冰%’ 

查询全部编号中含有’e,t,y’字符的班级信息

  1. Select * from Class_TBL where CNO like ‘[e,t,y]’ 

查询全部编号中不含有’e,t,y’字符的班级信息

  1. Select * from Class_TBL where CNO like ‘[^e,t,y]’ 

十一 利用is null

基本语法:

  1. select * from table_Name where column is null 

阐明:查询指定列为输入数据的数据行,普通用在where语句中

示例:查询还没有分配班级的学生的信息

  1. Select * from Student_TBL where CNO is null 

十二 利用compute举行计算

基本语法:select * from table_name where 查询条件 compute 聚合函数

阐明:用来计算总计或举行分组小计,总计或小计值作为附加行呈目前查询后果中

示例:计算在编号为‘001’班级的学生的信息并统计该班有多少个学生

  1. Select * from Student_TBL where CNO=’001’ compute count(*) 

十三 利用compute by分组查询后果

基本语法:select * from table_Name [where..] order by column compute 聚合函数 by column

阐明:在利用compute by之前必须先利用order by 对要举行分组的摆列行排序,注意,在oerder by 中举行排序的列的数目温次序必须和compute by 后的项一样

示例:按照差别班级分组统计各个班级学生的信息

  1. Select * from Student_TBL order by CNO compute count(SNO) by CNO 

十四 利用group by

基本语法:select * from table_name [where…] group by column

阐明:在select 子句中利用聚合函数时,group by计算每组的汇总值,利用group by子句时,在select 子句中呈现的列名大概呈目前聚合函数中,大概呈目前group by 子句背面,不然会抱错,别的group by背面还可以恩 with cube||rollup,

示例:统计每个班级有多少学生,不显示学生的信息,只显示统计信息

  1. Select CNO,count(SNO) from Student_TBL group by CNO 

十五利用having语句

基本语法:select * from table_name [where …] group by column having …

阐明:having子句用于限定对组大概聚合函数的查询条件,该子句常用于group by 子句背面,在查询后果分组后对组判断能否满意查询条件,在分组之前可以用where语句判断查询条件,利用where比利用having更有效,因为它先将不满意条件的行过滤掉,从而削减了要举行分组的行数

示例:分组统计除编号为‘001’外全部班级学生的人数

  1. Select CNO,count(SNO) from Student_TBL group by CNO having CNO<>’001’ 

十六 子查询

基本语法:

阐明:子查询是在查询中包含另一个查询的查询,可以利用子查询替换表达式,自查询只能返回一列数,有时只返回但个值

示例:查询班级人数大于平均班级人数的班级

  1. Select * from Class_TBL where (select count(*)   
  2. from student where CNO=Class_TBL.CNO)>((select count(*) from Student_TBL)/(select count(*) from Class_TBL)) 

十七 利用union运算符合并多个查询后果

基本语法:

  1. select column1 from table1_name union select column2 from table2_name 

阐明:全部查询中的列数和列的次序必须相同,全部查询中按次序对应列的数据范例必须相同或兼容,假如但愿重新排序多个查询后果的归并后果,则在最后的select 语句中利用order by子句

十八 查询多个表或视图的信息

基本语法:select column1,column2,… from talbe1,table2,…

阐明:在触及多表查询时必须利用where语句给出多表之间的衔接条件,对来自N各表或视图查询要写出N-1 个衔接条件

示例:查询每个学生所在的系部的名称,班级的名称和姓名

  1. Select DName,CName,SName   
  2. from Student_TBL S,Class_TBL C,Department_TBL Dwhere S.CNO=C.CNO and C.DNO=D.DNO 

十九 相等衔接与自然衔接:相等衔接是将要衔接的列作相等对比的衔接,在相等衔接列中只保存一个衔接列的衔接称为自然衔接

二十 对比衔接:表与表之间的衔接不利用“=”衔接,而是利用对比运算符的衔接

二十一 自衔接就是表与它自己举行衔接

二十二 左衔接,右衔接和全衔接

二十三 利用exists:在where子句中可以利用exists子句,它用于测试跟随的子查询中的行能否存在

原文标题:关于SQL Server数据查询基本办法的总结

链接:http://www.cnblogs.com/lidingbin/archive/2010/09/23/1833380.html

<
  以上是“SQL Server数据查询基本办法的探究[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Windows 搭配 IIS7 PHP MySQL 环境
  • sqlserver索引的原理及索引成立的注意事项小结
  • SQL Join的一些总结(实例)
  • SQL的Join利用图解教程
  • SQL中JOIN和UNION辨别、用法及示例介绍
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .