一、distinct去重查询

--1、查询去重emp表中comm列所有的数据select distinct comm from emp--2、查询去重emp表中comm列和deptno列的组合的所有的数据select distinct comm,deptno from emp

2、between条件查询

--1、查询工资在1500到3000之间的所有员工信息select * from emp where sal>=1500 and sal<=300;
等价于select * from emp where sal between 1500 and 3000;

3、in属于若干个孤立的值

--1、查询emp表中工资为1500、3000、5000的员工信息select * from emp where sal in(1500,3000,5000);
等价于select * from emp where sal=1500 or sal=3000 or sal=5000;

4、top查询前几个若干记录

--1、查询emp表中前五个员工信息select top 5 * from emp;
--2、查询emp表中前15%个员工信息select top 15 percent * from emp;

5、order by (以某个字段排序)(asc是默认为升序可以不写,desc是降序)

--1、查询emp表中工资在1500到3000之间的员工中,工资最高的前4人select top 4 * from emp where sal>=1500 and sal<=3000 order by sal desc
--2、宣勋emp表中所有员工信息,按照deptno降序,sal升序select * from emp order by deptno desc,sal
--1、a和b都是升序(默认asc时升序)
order by a,b--2、a是升序,b降序
order by a,b --3、a是降序,b降序
order by a desc ,b desc 

6、like模糊查询

  • "%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次)。
  • "_" 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。
  • like操作符:LIKE作用sql后面的搜索模式是利用通配符而不是直接相等匹配进行比较;
  • 但如果like后面没出现通配符(%或_),则在SQL执行优化时将 like 默认为 “=”执行
--1、查询员工表emp中,员工姓名中带有A的员工信息select * from emp where ename like '%A%';--2、查询员工表emp中,员工姓名中以A开头的员工信息select * from emp where ename like 'A%';--3、查询员工表emp中,员工姓名中以A结尾的员工信息select * from emp where ename like '%A';--4、查询员工表emp中,员工姓名中以A为结尾的,长度为三个字的数据select * from emp where ename like '__A';--5、查询员工表emp中,员工姓名中第二个字母为A的员工信息select * from emp where ename like '_A%';
[a-f]查询a-f中任意单个字符,只能是其中一个字符
--2、查询员工表中,姓名中第二个字符带有A-F中任意一个的员工信息
select * from emp where ename like '_[a-f]%'[a,f]查询a或者f中任意单个字符,只能是其中一个字符
--3、查询员工表中,姓名中第二个字符带有A或者F中任意一个的员工信息
select * from emp where ename like '_[a,f]%'[^a-f]查询取反a或者f中任意单个字符,只能是其中一个字符
--1、查询员工表中,姓名中第二个字符不是A-F中任意一个的员工信息
select * from emp where ename like '_[^a-f]%'
--转义字符 \--1、查询员工表中,姓名中含有%的员工信息
select * from emp where ename like '%\%%'--2、查询员工表中,姓名中含有_的员工信息
select * from emp where ename like '%\_%'

7、聚合函数(多行记录返回一个值,用于统计分组信息)

max()求最大值

min()求最小值

avg()求平均值

count()求最个数

--1、查询表中所有记录的个数
select count(*) from emp--2、查询emp表中deptno记录的个数(包含重复,但是为null的值不会被记录)
select count(deptno) from emp--2、查询emp表中deptno记录的个数(不含重复)
select count(distinct deptno) from emp

8、as起别名

--1、查询emp表中员工工资大于3000的员工姓名和工作(as可以省略)
select ename as '员工姓名',job as '工作' from emp where sal>=3000

9、group by(分组查询),把表中的记录按照字段分成不同的组

group by 之后的select查询中只能出现分组后整体信息,不能出现组内详细信息
--1、查询不同部门的平均工资
select deptno,avg(sal) as '部门平均工资' from emp group by deptno;-- 根据性别分组 , 统计男性员工 和 女性员工的数量
select gender, count(*) from emp group by gender ;--根据性别分组 , 统计男性员工 和 女性员工的平均年龄
select gender, avg(age) from emp group by gender ;
group by a,b,c
先按照a分组,a相同的按照b分组,b相同的再按照c分组

10、having(对分组之后的信息进行过滤)

  • 通常跟在GROUP BY后边作用相当于WHERE
  • WHERE 子句只能指定行的条件,而不能指定组的条件
  • having是对分组后的的记录进行过滤
  • 如果没使用group by分组但是用了having,则把所有查询结果当成一个组
select count(*) from emp having avg(sal)>1000
group by 之后的select查询中只能出现分组后整体信息,不能出现组内详细信息
--1、查询不同部门的平均工资
select deptno,avg(sal) as '部门平均工资' from emp group by deptno having count(*)>3;

having字句中不能出现字段的别名

sqlserver基本查询相关推荐

  1. SQLserver模糊查询

    SQLserver模糊查询 考试的后台监控中,查询考生的登录情况,模糊查询考生信息. 对于根据查询出来的该考试.考场或者班级的所有考生信息,从中进行模糊查询,可以模糊匹配学号.姓名.状态.学院或者专业 ...

  2. SQLServer子查询相关知识笔记

    今天给大家介绍以下SQLServer子查询相关知识,希望对大家能有所帮助! 1.子查询概念介绍 子查询可以嵌套在SELECT.INSERT.UPDATE.DELETE语句或其他子查询语句中的查询,子查 ...

  3. 数据库:SQLServer分页查询整理

    作为程序员来说,与数据库打交道是十分频繁的分页查询是一个开发者必须掌握的基本知识点,目前整理了下面三种SQLServer分页查询语句的写法,仅供参考. 一.Top Not IN 方式(查询靠前的数据较 ...

  4. 三种SQLServer分页查询语句笔记

    作为程序员来说,与数据库打交道是十分频繁的分页查询是一个开发者必须掌握的基本知识点,目前整理了下面三种SQLServer分页查询语句的写法,仅供参考. 一.Top Not IN 方式(查询靠前的数据较 ...

  5. 理解 with递归调用 Sqlserver 树查询

    理解 with递归调用 Sqlserver 树查询 --with用法 --可以这么理解with SQL语句变量或者叫临时表名 as(SQL语句 ) select * from SQL语句变量或者叫临时 ...

  6. Sqlserver 死锁查询以及解锁方法

    一.Sqlserver 死锁查询以及解锁方法 (1)下面是查询死锁进程 select request_session_id spid, (死锁进程id) OBJECT_NAME(resource_as ...

  7. 高效的SQLSERVER分页查询

    Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询 ...

  8. SQLServer 条件查询语句大全

    对于刚开始认识SQLServer数据库的小伙伴们来说添加一些条件查询是比较困难的,我整理了一份常用的条件查询语句供大家参考借鉴 一. 创建数据库 CREATE DATABASE Class ON PR ...

  9. 金蝶业务+sqlserver子查询

    因为sqlserver和mysql分组方式不同用到了这个子查询的demo --子查询 派生表SELECT I.FNumber,I.FName,D.*,isnull(D.入库,0)-isnull(D.出 ...

  10. Oracle、 Mysql 、 SQLserver 分页查询

    MYSQL 分页最简单了. SELECT * FROM Account  WHERE (usertype='base' or usertype='home' or usertype='salse')  ...

最新文章

  1. Android Studio 编译: Program type already present: XXX 解决方案
  2. 《构建之法》第三周阅读笔记
  3. for循环里radio多选_Max里的for循环
  4. MySQL常用语句一、连接MySQL格式:mysql-h主机地址-u用户名-p用户密
  5. ubuntu 的远程桌面
  6. Golang中WaitGroup、Context、goroutine定时器及超时学习笔记
  7. qt 中文转十六进制_QT中16进制字符串转汉字
  8. 非线性动力学_非线性动力学特辑 低维到高维的联通者
  9. python 模块 包 库_模块(包、库)
  10. Activity内部Handler引起内存泄露的原因分析
  11. Request.GetOwinContext()打不到
  12. 【路径规划】基于matlab遗传和模拟退火算法机器人路径规划【含Matlab源码 1206期】
  13. 软件设计原则(二) 接口隔离原则
  14. eos java调用命名sql_普元 EOS Platform 7.6 开发命名SQL缓存示例
  15. k8s集群灾难恢复-原机器能起来
  16. 【GEEK】win10下cmd美化
  17. 一代大商孟洛川的经商之道
  18. TcaplusDB君 · 行业新闻汇编(11月22号)
  19. logrotate实现日志切割和清理(清晰易懂)
  20. 以太坊投票智能合约案例

热门文章

  1. virtualbox虚机无法上网
  2. c语言奖学金评定系统课设报告,C语言编程奖学金评定系统太原理工大学.pdf
  3. 什么是Numpy、Numpy教程
  4. b5纸尺寸_【收藏款】平面设计标准尺寸规范总结
  5. PHP 计算个人所得税(两种方式)
  6. MT5自定义均线指标(含弹窗、App、邮箱预警)
  7. 麻将判断胡牌 java_麻将基本胡的算法——Java
  8. Ubuntu:Gparted,linux 的pqmagic分区魔术师
  9. 聊聊千古名方逍遥丸【转载】
  10. 健身教练教你跑步减肥的正确方法