前几天公司做项目要统计出来一个百分率,大概翻了一下书上的函数,没找到,无意中从网上看到大虾总结的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子句,它用于测试跟随的子查询中的行是否存在
分享到:
相关推荐
### SQLServer数据查询的优化方法 #### 一、引言 SQLServer作为一种广泛使用的数据库管理系统,因其稳定性和高效性被众多企业和开发者所青睐。随着数据量的增长,如何优化SQLServer中的数据查询成为提升应用程序...
以下是对SQL Server数据类型的一个全面而深入的总结,旨在帮助数据库管理员、开发人员及爱好者们更好地理解和运用这些数据类型。 ### 1. 数值类型 数值类型是SQL Server中最基础的数据类型之一,主要包括整型和...
总结来说,SQL Server的分布式查询配置是实现跨数据库操作的关键,它允许企业整合多种数据源,提高数据处理的灵活性。正确配置和有效利用分布式查询能极大地提升数据管理的效率和复杂性。然而,这也需要对SQL Server...
通过对SQL Server表分区数据分布的查询,我们可以更直观地了解到数据的物理存储布局,这对于优化查询性能、提高数据库维护效率等方面都有着重要的意义。希望本文能帮助大家更好地理解和应用SQL Server的表分区功能。
总结来说,"SQL Server基本图标"是数据库管理和开发中的视觉工具,通过这些图标,用户可以更高效地理解和操作数据库。理解和掌握这些图标对于任何SQL Server用户,无论是新手还是经验丰富的专业人员,都是至关重要的...
### 两台SQL Server数据同步解决方案详解 #### 一、概述 在当今信息化时代,数据同步成为企业级应用中不可或缺的一部分。特别是在分布式环境中,确保不同地理位置的数据库保持一致性和实时性变得尤为重要。本文将...
在 SQL Server 中,主要的操作指令可以分为四类:数据查询语言 (DQL)、数据操纵语言 (DML)、数据定义语言 (DDL) 和数据控制语言 (DCL)。 ##### 1. 数据查询语言 (DQL) DQL 主要用于检索数据。最常用的 DQL 是 `...
本文总结了Sql Server 2005 的一些高级应用知识点,包括数据库对象、数据类型、基本语法和高级应用语法等。 数据库对象: * 数据库对象是 Sql Server 2005 中的一个基本概念,包括数据库、数据表、存储过程、实例...
总结来说,SQL Server提供了`SELECT INTO`和`INSERT INTO...SELECT`两种语句用于数据迁移。而"SelectInsertTable"这样的工具进一步简化了这一过程,使得生成和执行`INSERT`语句更为便捷。在进行数据同步或备份时,...
- 对于SQL Server 2000,需启动`SQLSERVERAGENT`服务; - 对于SQL Server 2008,需启动`SQL Server代理 (MSSQLSERVER)`服务。 2. **网络配置**:使用`telnet`命令验证两个服务器之间的网络连接性,确保1433端口...
总结来说,Dapper为C#开发者提供了一种简单且高效的SQL操作方式,特别适合在Winform应用中与SQL Server进行数据交互。通过理解Dapper的基本使用方法,开发者可以快速实现对数据库的CRUD操作,提高开发效率。在实际...
2. 使用ROW_NUMBER()优化:在SQL Server中,使用`ROW_NUMBER()`结合子查询可以避免`OFFSET`的性能问题,尤其是在大数据量时。 3. 计算总页数:在Java中,通常需要计算总页数,可以通过单独查询获取总记录数再除以每...
### SQL Server 数据库间数据同步方法详解 #### 一、SQL Server 数据同步概述 SQL Server 数据同步是指在两台或多台 SQL Server 数据库之间保持数据一致性的过程。这对于分布式的数据库环境尤其重要,例如需要在...
SQL SERVER数据库设计和高级查询是IT领域中数据库管理和开发的核心技术。在北大青鸟的accp5.0 s2课程中,这些主题被详细讲解,旨在帮助学生掌握数据库设计的基本原则和高级查询技巧。 首先,良好的数据库设计至关...
总结来说,WPF通过XAML实现对SQLServer数据绑定的方法,提供了一种可视化、声明式的编程方式,使得数据绑定操作更加直观和高效。同时,利用WPF的数据绑定优势,开发者可以创建出既美观又功能强大的桌面应用程序。
总结来说,SQL Server的JAR包是Java开发者与SQL Server数据库进行交互的重要工具,它们提供了完整的JDBC驱动实现,涵盖了从基本的数据库连接到复杂查询和事务处理的所有功能。通过理解和掌握这些库的用法,开发者...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来连接SQL Server数据库,并将查询结果展示在List Control(listCtrl)控件上。MFC是Microsoft为Windows应用程序开发提供的一种C++类库,它...
- **事务处理**:阐述了事务的基本概念及其在SQL Server中的实现方式,包括如何使用BEGIN TRANSACTION、COMMIT和ROLLBACK语句来确保数据的一致性和完整性。 #### 四、性能优化与最佳实践 为了帮助读者更好地利用...
- **MDF 文件**: 这是SQL Server数据库的主要数据文件,存储了数据库的所有数据。每一个SQL Server数据库至少包含一个MDF文件。 - **LDF 文件**: 这是SQL Server数据库的日志文件,记录了对数据库所做的所有更改。...
《SQLServer7指南(下)》是一份专为SQL Server 7.0用户设计的详尽教程,旨在帮助用户深入理解和掌握这一版本的数据库管理系统。SQL Server 7.0是微软发布的一个重要的数据库产品,虽然现在已经较为老旧,但对于理解...