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. 一个简单java爬虫爬取网页中邮箱并保存

    此代码为一十分简单网络爬虫,仅供娱乐之用. java代码如下: package tool; import java.io.BufferedReader; import java.io.File; im ...

  2. linux动态库加载的秘密

    摘自http://gotowqj.iteye.com/blog/1926734 摘自http://www.360doc.com/content/14/0313/13/12747488_36024641 ...

  3. Android项目 手机安全卫士(代码最全,注释最详细)之十二 设置中心的界面

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  4. 通过YAJL获取json中的值

    这里主要是举例说明一下假设通过yajl获取json中的值. 对于array和object来说,获取的方式略有不同,详细能够參考以下的代码. 我仅仅是从网上搜集信息.知道有这么一种方法.假设还有别的方法 ...

  5. 【贪心】【TOJ4107】【A simple problem】

    Given three integers n(1≤n≤1018), m(1≤m≤105), k(1≤k≤1018). you should find a list of integer A1,A2,- ...

  6. 在ASP.NET MVC自定义错误页面

    异常处理跳转页面 第一步,在项目的Web.config文件中找到节点<system.web> 在此节点下添加配置(Error为定义的控制器也可以多添加些error标签用于区分不同的错误) ...

  7. JavaScript判断IE各版本完美解决方案

    解决方案 IE知道自身毛病很多,于是提供的一套官方的HTML hack方式: <!--[if IE]> // 全部IE版本可见 <![endif]--> <!--[if ...

  8. jQuery 源码分析和使用心得 - 关于源码

    说到jQuery, 大家可能直觉的认为jQuery的源码应该就是一个jquery.xx.js这样的一个文件. 但是看到真正的源码的时候, 整个人都思密达了.jQuery的源码做的事远比你想象的多, 为 ...

  9. JS判断是否在微信浏览器打开

    if (browser.versions.mobile) {//判断是否是移动设备打开.browser代码在下面 var ua = navigator.userAgent.toLowerCase(); ...

  10. Linux man 后面的数字含义及作用

    Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下: 1 Executable programs or shell co ...