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. logback.xml配置详解

    先附上本文分析用的例子: <?xml version="1.0" encoding="UTF-8" ?> <configuration> ...

  2. 深入了解 Flexbox 伸缩盒模型

    Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛 ...

  3. hdu4135Co-prime 容斥原理水题

    //问一个区间[a,b]与n互素的数的个数 //利用容斥原理可知 //在[a,b] 区间内对n的素数因子 //ans = 被一个数整除的数的个数 - 被两个数的最小公倍数整除的数的个数 + 被三个数的 ...

  4. 开源 java CMS - FreeCMS2.3 移动app生成首页数据

    原文地址:http://javaz.cn/site/javaz/site_study/info/2015/28160.html​ 项目地址:http://www.freeteam.cn/ 生成首页数据 ...

  5. 【LeetCode】 Populating Next Right Pointers in Each Node 全然二叉树

    题目:Populating Next Right Pointers in Each Node <span style="font-size:18px;">/* * Le ...

  6. Net Configuration Assistant和Net Manager的区别

    1.Net Configuration Assistant和Net Manager在oracle的配置工具中,Net Configuration Assistant(网络配置助手)和Net Manag ...

  7. 【最大流】【HDU3338】【Kakuro Extension】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3338 题目大意:填数字,使白色区域的值得和等于有值得黑色区域的相对应的值,用网络流来做 题目思路:增加 ...

  8. LeetCode Day5——House Robber

    问题描述: 意思就是说:给定一个数组,寻找一种选取方法,使得在保证任何两个相邻元素不同时被选的条件下得到的数值总和最大. 1. 递归 设nums为数组首地址,numsSize为数组的大小,max[i] ...

  9. android经典Demo(转载)

    一篇不错的资源博文,转载分享给大家:   1.Android团队提供的示例项目  如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发. ...

  10. Java学习—— for循环

    For双重循环 /* 循环语句嵌套 */ class ForForTest { public static void main(String[] args) { /*int x,y = 0; for( ...