`
J_Fox
  • 浏览: 17234 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
文章分类
社区版块
存档分类
最新评论

SQL Server数据查询基本方法的总结

阅读更多
前几天公司做项目要统计出来一个百分率,大概翻了一下书上的函数,没找到,无意中从网上看到大虾总结的SQL Server数据查询基本方法,很不错。

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

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

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

  示例:查询所有学生的基本信息

Select * from Student_TBL    二 where条件查询

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

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

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

Select * from Student_TBL where CNO=’003’    三 关键字in的使用

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

  说明:in关键字的作用是查询某一字段是否在一个集合中,一般在where语句中使用

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

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的学生的信息

Select * from Student_TBL where SNO between 5 and 30    五 消除结果集中的重复行

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

  说明:去除结果集中跟在distinct关键字后面所有字段的值相等的记录

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

Select distinct column1,… from Student_TBL    六 返回指定的行数(百分率)

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

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

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

Select top 10 * from Student_TBL    返回前百分之十的学生的基本信息

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的使用

  基本语法:

select * from table_Name [where..] order by column1 [asc]desc]…    说明:order by 后面可以指定多个列,默认是按升序方式排列的,order by 放在where 语句之后

  示例:查询所有学好大于23号的学生信息,并按学号的降序排列

Select * from Student_TBL where SNO>23 order by SNO desc   十 使用Like实现模糊查询

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

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

  示例:查询所有姓李的同学地信息

Select * from Student_TBL where SName like ‘李%’    查询所有学生名字中第二个字为“冰”的同学的信息

Select * from Student_TBL where SName like ‘_冰%’    查询所有编号中含有’e,t,y’字符的班级信息

Select * from Class_TBL where CNO like ‘[e,t,y]’    查询所有编号中不含有’e,t,y’字符的班级信息

Select * from Class_TBL where CNO like ‘[^e,t,y]’    十一 使用is null

  基本语法:

select * from table_Name where column is null    说明:查询指定列为输入数据的数据行,通常用在where语句中

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

  十二 使用compute进行计算

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

  说明:用来计算总计或进行分组小计,总计或小计值作为附加行出现在查询结果中

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

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 后的项一样

  示例:根据不同班级分组统计各个班级学生的信息

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,

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

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’外所有班级学生的人数

Select CNO,count(SNO) from Student_TBL group by CNO having CNO<>’001’   十六 子查询

  基本语法:

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

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

Select * from Class_TBL where (select count(*)  
from student where CNO=Class_TBL.CNO)>((select count(*) from Student_TBL)/(    十七 使用union运算符合并多个查询结果

  基本语法:

select column1 from table1_name union select column2 from table2_name    说明:所有查询中的列数和列的顺序必须相同,所有查询中按顺序对应列的数据类型必须相同或兼容,如果希望重新排序多个查询结果的合并结果,则在最后的select 语句中使用order by子句

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

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

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

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

Select DName,CName,SName
from Student_TBL S,Class_TBL C,Department_TBL Dwhere S.CNO=C.CNO and C.DNO=D.DNO     十九 相等连接与自然连接:相等连接是将要连接的列作相等比较的连接,在相等连接列中只保留一个连接列的连接称为自然连接

  二十 比较连接:表与表之间的连接不使用“=”连接,而是使用比较运算符的连接

  二十一 自连接就是表与它自己进行连接

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

  二十三 使用exists:在where子句中可以使用exists子句,它用于测试跟随的子查询中的行是否存在
分享到:
评论

相关推荐

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    SQL Server数据库入门学习总结

    数据库是如何显示数据的 select SQLServer数据库学习总结 1.SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器 第一代数据库–网状数据库和层次数据库;第二代数据库–关系数

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    SQL SERVER 2000开发与管理应用实例

    9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库中存取文件 290 9.5.1 SQL Server中的文件存取方法 290 9.5.2 程序中的文件存取处理方法 292 第 10 章 作业 295 10.1 ...

    (整理)SQLServer数据库基本知识点..doc

    FROM子句指定SELECT语句查询及与查询相关的表或视图。SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。

    Sqlserver2000经典脚本

    介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

    书中全面深入地介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理...

    (第一卷)Microsoft.SQL.Server.2008技术内幕:T-SQL语言基础

    书中全面深入地介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    SQL Server 2008数据库设计与实现

    第三部分深入探讨了SQL Server若干方面的技术细节,如数据保护、索引、并发访问等。通过将理论融入数据库实践,清晰地讲解了关系型数据库的设计原则,完整地展示了如何进行良好的关系型数据库设计,深入揭示了SQL ...

    精通SQL 结构化查询语言详解

    《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...

    sqlserver2000基础(高手也有用)

    9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库中存取文件 290 9.5.1 SQL Server中的文件存取方法 290 9.5.2 程序中的文件存取处理方法 292 第 10 章 作业 295 10.1 作业...

    数据库SQL知识点总结、代码及练习题代码

    2.数据表的约束、查询及sql文件 3.SQL server函数及sql文件 常量变量函数 4.关于cascade使用的sql文件 删除重复行只留一行的sql文件 5.数据表操作的习题课1和2的sql文件 6.t-sql知识点和有练习题的sql文件 7.触发器 ...

    精通SQL--结构化查询语言详解

    11.4.4 sql server数据库数据导入 230 第12章 数据的更新和删除 233 12.1 更新表中的数据 233 12.1.1 update语句的基本语法 233 12.1.2 update语句更新列值 234 12.1.3 利用子查询更新多行的值 237 12.1.4 ...

    SQL-server数据库设计-餐饮管理系统.doc

    辽 宁 工 业 大 学 《SQL server数据库设计实训》 报告 题目: 餐饮管理系统 院(系): 软件学院 专业班级: 电子商务(国际) 学 号: 学生姓名: 指导教师: 翟宝峰 教师职称: 副教授 起止时间:2011。...

    mysql sqlserver orcle 数据库操作

    在使用这三种数据库时,他们的操作方式各部相同,现对基本操作和一些特殊操作做出如下总结。

    经典SQL脚本大全

    │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ ...

    SQL Server 数据库基本操作语句总结

    代码如下:–sql基本操作 –创建数据库 create database Studets –创建表 create table student ( sno char(5), sname char(20), ssex char(2), sage smallint, sdept char(15) ) create table course ( cno char(3...

    详解SQL Server的简单查询语句

    我也是花费大量时间去学习,对于了解索引原理对于后续理解查询计划和性能调优有很大的帮助,而我们只是一些内容进行概括和总结,这一节我们开始正式步入学习SQL中简单的查询语句,简短的内容,深入的理解。...

    SQL 数据分析:销售数据的小计/合计/总计以及数据透视表

    学习过 SQL 的人都知道,使用聚合函数(AVG、SUM、COUNT、MIN/MAX 等)和分组操作(GROUP BY)可以对数据进行基本的统计分析,例如统计公司员工的人数、每个部门的平均月薪等。如果想要回顾这些基础概念,可以参考这...

Global site tag (gtag.js) - Google Analytics