top关键字:写在select后面 字段的前面

比如你要显示查询的前5条记录,如下所示:

select top 5 * from Student

一般情况下,top是和order by连用的

order by用在表名的后面 order by后面就填你要按它排序的字段,是升序排序(从小到大排序)

percent:百分比 %=percent

比如要显示5%的数据处理,不能写top 5%,而是top 5 percent

提示:如果top 5 percent出来的数是3.1条数据的话,是取四条数据,而不是3条

使用distinct去除重复记录:

注意:重复记录与表的原始数据无关,它只关注通过查询语句查询出来之后的结果集,如果虚拟结果集的每一列的值都一样,那么才算重复记录,如果有一个值不一样,那么就是一条单独的记录

--sql聚合函数--

count();求满足条件的记录数,与值无关

注意:count()括弧中随意传入参数,因为它与具体值无关,只与记录数有关,一般传入0或 * 号。如count(*)

max();求最大值 括弧中传入字段名  如max(age)

min();求最小值

sum();求和    括弧中传入要求和的字段名

avg();求平均值   括弧中传入要求平均值的字段名

注意:sum/avg不能针对日期和名字计算

--模糊查询--

注:select 字段列表 from 表列表 where 条件 Order by 排序字段

下面的都是作为条件,用在where后面

1.between...and  相当于>=n,<=m 优先使用between...and,因为做过优先处理,效率高

它是用来描述数值或日期值的,对字符串没用

2.in相当于and,and,and 其实可以in(1,2,3)三选一

3.not in(1,2,3)不在这个范围之内

以上的between...and,in,not in 都是用在where后面的字段的后面

通配符:

1  %代表任意个任意字符

2  _:它就代表一个字符占位,相当于.代表一个具体的字符

3 []:相当于指定一个具体的范围或者具体的值范围。这点用 法与正则表达式一样

4 [^]:取反

like:像。。一样:如果要使用通配符,则必须配合 模糊查询关键字

空值处理:null是指不知道,而不是像C#里面一样说没有分配地址 所以判断是否为null值的时候不能用等号(=),而是用is,如:select * from Student where name is null

判断的是学生表中的name字段是不是null

ISNULL()方法:用在select 字段 的后面,为的是判断所查询出的结果(这个字段)是否为null,如果为null值就用指定内容进行替换如下所示:

Select *,ISNULL(name,‘没有写名字’) from Student

数据排序:order by

排序默认是升序排序

升序:asc

降序:desc

如果排序有多个字段,是指先按第一个字段进行排序,相同的记录再按第二个字段排序

如:select * from Student order by sex,name desc

分组统计:先分组再统计

分组:group by 对指定的字段进行分类 用再表的后面 然后group by 后面再接要被分组的字段

如:

--得到男生女生的总人数

Select sex,Count(*) from Student group by sex

查询语句的顺序:

Select from where group by having order by

注意:where是对源数据做筛选的。它只能去使用from后面的表中所指的列

Where条件后面不能使用聚合函数,如果使用了就会报错

having:

如果是对分组之后的结果集做筛选,那么就需要使用having,因为where条件后面不能释怀聚合函数

如:

Select classId,Count(*) from Student group by classId having COUNT(*) >2

Sql的分类

1、DDL(数据定义语言,建表,建库等语言)

2.DML(数据操作语言mutipulation) 增加删除修改和查询 也叫CUID:数据库的增删改查3.DCL(数据库控制语言)

类型转换

1.--cast(源数据 as 目标类型)--

2.--Convert(目标类型,源数据,格式(日期值的格式))

Select getdate()--得到当前系统时间  select GETDATE()

联合结果集union  (很少使用)

Union all :不管结果是否重复,都显示出来

Union:重复的数据不显示出来

Union在合并多个结果集的限制:

1.要有相同数量的列

2.对应的列的类型要一致,类型可以强制转换()cast或Convert

SQL Server数据库--》top关键字,order by排序,distinct去除重复记录,sql聚合函数,模糊查询,通配符,空值处理。。。。的更多相关文章

  1. 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数

    第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all;  ...

  2. 千万级SQL Server数据库表分区的实现

    千万级SQL Server数据库表分区的实现 2010-09-10 13:37 佚名 数据库 字号:T | T 一般在千万级的数据压力下,分区是一种比较好的提升性能方法.本文将介绍SQL Server ...

  3. 人人都是 DBA(V)SQL Server 数据库文件

    SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname ...

  4. SQL Server数据库与max degree of parallelism参数

    我们今天主要向大家讲述的是SQL Server数据库中的max degree of parallelism参数,当 SQL Server 数据库在具N个微处理器或是 CPU 的计算机上运行时,它将为每 ...

  5. SQL Server 数据库子查询基本语法

    一.SQL子查询语句 1.单行子查询        select ename,deptno,sal        from emp        where deptno=(select deptno ...

  6. 转:SQL SERVER数据库中实现快速的数据提取和数据分页

    探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo]. ...

  7. SQL Server数据库学习总结

    经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的     一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数 ...

  8. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

  9. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

随机推荐

  1. gcc选项-g与-rdynamic的异同

    摘自http://www.tuicool.com/articles/EvIzUn gcc选项-g与-rdynamic的异同 gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序 ...

  2. hibernate 查询、二级缓存、连接池

    hibernate 查询.二级缓存.连接池 查询: 1) 主键查询 Dept dept =  (Dept) session.get(Dept.class, 12); Dept dept =  (Dep ...

  3. javascript——touch事件介绍与实例演示

      分类: javascript2014-02-12 16:42 1742人阅读 评论(0) 收藏 举报 touch事件touchmovetouchstarttouchend 前言 诸如智能手机和平板 ...

  4. UVA 1611 Crane

    题意: 输入一个1-n的排列,要求经过操作将其变换成一个生序序列.操作的规则如下每次操作时,可以选一个长度为偶数的连续区间,交换前一半和后一半. 分析: 假设操作到第i个位置,而i这个数刚好在pos这 ...

  5. 第三方浏览器内核嵌入一、Crosswalk

    本篇分为三部分: 介绍Crosswalk背景 介绍Crosswalk集成步骤 为了减小体积,仅集成兼容ARM的Crosswalk(针对X86同理) PART_A Crosswalk背景介绍 Web技术 ...

  6. Android Activity之 setContentView()总结

    从一开始hello world的第一个安卓应用开始,Activity 自动生成,布局自动生成,直接修改布局,在Activity中,findviewById()找到view,然后处理相应的业务逻辑即可, ...

  7. php安全编程—sql注入攻击

    php安全编程--sql注入攻击 定义 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因 ...

  8. hdu 2509 Be the Winner 博弈

    题目链接 有n堆苹果, 对于其中的每一堆的x个苹果, 它是放在一条线上的. 你每次可以对一堆苹果进行操作, 可以取y个, 1<=y<=x. 然后如果你是取的一条线上中间的苹果, 那么这一堆 ...

  9. 常用在线工具及API网址总结

    1.小图标在线查找 https://www.iconfinder.com/ 2.在线做图,Flowchart流程图,BPMN图,Org组织结构图等 http://www.processon.com/ ...

  10. SQL顺序列找出断号

    select id from info id-----------123567810111215 (11 行受影响) 方法一: select (select max(id)+1 from Info w ...