比较运算符 > < >= <= = !=和<>

  1. 查询工资大于等于3000的员工姓名,工资和工作

select name,sal,job from emp where sal>=3000;

  1. 查询1号部门的员工姓名,工资,部门id

select name,sal,dept_id from emp where dept_id=1;

  1. 查询程序员的名字和工资

select name,sal from emp where job="程序员";

  1. 查询员工表中不是销售的员工姓名和工作(两种写法)

select name,job from emp where job!="销售";

select name,job from emp where job<>"销售";

and 和 or 和 not

  • and: 等效java中的&&, 需要多个条件同时满足时使用
  • or: 等效java中的|| , 多个条件满足一个时使用
  1. 查询1号部门工资高于2000的员工信息

select * from emp where dept_id=1 and sal>2000;

  1. 查询3号部门或工资等于5000的员工信息

select * from emp where dept_id=3 or sal=5000;

  1. 查询出CEO和项目经理的名字

select name from emp where job="CEO" or job="项目经理";

  1. 查询有奖金的销售名字和奖金

select name,comm from emp where comm>0 and job="销售";

is null 和 is not null

  1. 查询有上级领导的员工姓名和领导id

select name,manager from emp where manager is not null;

  1. 查询没有上级领导的员工姓名和领导id

select name,manager from emp where manager is null;

between x and y两者之间(包含x和y)

  1. 查询工资在2000到3000之间的员工信息

select * from emp where sal>=2000 and sal<=3000;

select * from emp where sal between 2000 and 3000;

  1. 查询工资在2000到3000之外的员工信息

select * from emp where sal not between 2000 and 3000;

in(x,y,z)

  • 当查询某个字段的值等于多个值的时候使用
  1. 查询工资等于1500,3000和5000的员工姓名和工资

select name,sal from emp where sal=1500 or sal=3000 or sal=5000;

select name,sal from emp where sal in(1500,3000,5000);

  1. 查询工作不是销售和程序员的信息

select * from emp where job not in("销售","程序员");

distinct去重

  • 去掉重复的数据
  1. 查询员工表中出现了哪几种不同的工作

select distinct job from emp;

  1. 查询员工表中出现了哪几个部门的id

select distinct dept_id from emp;

模糊查询like

  • %: 代表0或多个未知字符
  • _:代表1个未知字符
  • 举例:
  • 以x开头 x%
  • 以x结尾 %x
  • 包含x %x%
  • 第二个字符是x _x%
  • 以x开头以y结尾 x%y
  • 第三个是x倒数第二个是y __x%y_
  1. 查询姓孙的员工信息

select * from emp where name like "孙%";

  1. 查询名字以精结尾的员工姓名

select name from emp where name like "%精";

  1. 查询工作中包含销售的员工信息

select * from emp where job like "%销售%";

  1. 查询工作中第二个字是售的员工姓名和工作

select name,job from emp where job like "_售%";

  1. 查询名字中包含僧 并且工资高于2000的员工姓名和工资

select name,sal from emp where name like "%僧%" and sal>2000;

  1. 查询1号和2号部门中工作以市开头的员工信息

select * from emp where job like "市%" and dept_id in(1,2);

排序 order by

  • 格式: order by 字段名 asc升序(默认)/desc降序;
  1. 查询员工姓名和工资,按照工资升序排序

select name,sal from emp order by sal;

select name,sal from emp order by sal desc;

  1. 查询工资高于2000的员工姓名和工资, 按照工资降序排序

select name,sal from emp where sal>2000 order by sal desc;

  1. 查询每个员工的姓名,工资和部门id 按照部门id升序排序,如果部门id一致则按照工资降序

select name,sal,dept_id from emp order by dept_id,sal desc;

分页查询

  • 格式: limit 跳过的条数,请求的条数(每页的条数)
  • 跳过的条数= (请求的页数-1)*每页的条数
  • 举例:
  • 查询第一页的5条数据(1-5) limit 0,5
  • 查询第2页的5条数据(6-10) limit 5,5
  • 查询第5页的5条数据 limit 20,5
  • 查询第8页的10条数据 limit 70,10
  • 查询第7页的8条数据 limit 48,8
  1. 查询工资最低的3个人的信息

select * from emp order by sal limit 0,3;

  1. 查询工资最高的员工信息

select * from emp order by sal desc limit 0,1;

  1. 按照入职日期排序 查询第2页的3条数据

select * from emp order by hiredate limit 3,3;

  1. 按照工资升序排序查询第3页的2条数据

select * from emp order by sal limit 4,2;

别名

select name as "名字" from emp;

select name "名字" from emp;

select name 名字 from emp;

聚合函数

  • 通过聚合函数可以对查询的多条数据进行统计查询
  • 有哪些统计方式?
  • 平均值avg
  • 最大值max
  • 最小值min
  • 求和sum
  • 计数count
  • 平均值avg()
  • 查询1号部门的平均工资

select avg(sal) from emp where dept_id=1;

  • 最大值max()
  • 查询1号部门的最高工资

select max(sal) from emp where dept_id=1;

  • 最小值min()
  • 查询1号部门的最低工资

select min(sal) from emp where dept_id=1;

  • 求和sum()
  • 查询程序员的工资总和

select sum(sal) from emp where job="程序员";

  • 计数count(*)
  • 查询员工表的人数

select count(*) from emp;

分组查询group by

  • 可以将某个字段相同值的数据划分为一组,然后以组为单位进行统计查询
  • 如果题目中出现每个或每种这样的关键字 并且查询的内容为聚合函数的结果
  1. 查询每个部门的平均工资

select dept_id,avg(sal) from emp group by dept_id;

  1. 查询每个部门的最高工资

select dept_id,max(sal) from emp group by dept_id;

  1. 查询每种工作的平均工资

select job,avg(sal) from emp group by job;

  1. 查询每个部门工资高于2000的人数

select dept_id,count(*) from emp where sal>2000 group by dept_id;

  1. 查询每种工作的最低工资

select job,min(sal) from emp group by job;

  1. 查询1号部门和2号部门的人数

select dept_id,count(*) from emp where dept_id in(1,2) group by dept_id;

  1. 查询平均工资最高的部门id和平均工资

select dept_id,avg(sal) from emp group by dept_id order by avg(sal) desc limit 0,1;

having关键字

  • where后面只能写普通字段条件,不能写聚合函数条件
  • having后面专门写聚合函数条件,而且需要和group by分组查询结合使用,写在group by 的后面
  1. 查询每个部门的平均工资,要求平均工资大于2000

select dept_id,avg(sal) from emp group by dept_id having avg(sal)>2000;

select dept_id,avg(sal) a from emp group by dept_id having a>2000;

  1. 查询每种工作的人数,只查询人数大于1的

select job,count(*) c from emp group by job having c>1;

  1. 查询每个部门的工资总和,只查询有领导的员工, 并且要求工资总和大于5400.

select dept_id,sum(sal) s from emp where manager is not null group by dept_id having s>5400;

  1. 查询每个部门的平均工资, 只查询工资在1000到3000之间的,并且过滤掉平均工资低于2000的

select dept_id,avg(sal) a from emp where sal between 1000 and 3000 group by dept_id having a>=2000;

各种查询相关的关键字顺序

  • select 字段信息 from 表名 where 普通字段条件 group by 分组字段名 having 聚合函数条件 order by 排序字段名 limit 跳过条数,请求条数.

子查询(嵌套查询)

  • 可以将一条SQL语句查询的结果当做另外一条SQL语句条件的值
  1. 查询工资最低的员工的同事们的信息(指同一部门)
  • 得到最低工资

select min(sal) from emp;

  • 通过最低工资得到拿最低工资人的部门id

select dept_id from emp where sal=(select min(sal) from emp);

  • 通过部门id查询员工

select * from emp where dept_id=(select dept_id from emp where sal=(select min(sal) from emp)) and sal!=(select min(sal) from emp);

数据库常用增删改查sql语句(二)相关推荐

  1. 数据库常用增删改查sql语句(一)

    数据库相关SQL: 查询所有数据库:show databases:show databases: 创建数据库:create database 数据库名 charset = utf8 /gbk: 查看数 ...

  2. php pdo 更新sql语句,增删改查sql语句及PDO数据库连接操作流程实例-2019年7月24日...

    一.增删改查sql语句语法: 增: INSET INTO `表名` SET `字段名`=值 (也可写别名用,值前面加冒号->:别名): 删: DELETE FROM `表名`  WHERE `字 ...

  3. Mysql增删改查sql语句练习

    Mysql增删改查sql语句练习 关于数据库的一些操作: 进入mysql 命令行: mysql -uroot –p 查看所有数据库: show databases; 创建数据库: create dat ...

  4. mybatis mapper.xml数据库映射生成java实体,增删改查sql语句

    1.问题描述:使用mybatis生成mapper.xml文件的时候经常遇到数据库表字段很多,写mapper.xml文件时转化成java实体很麻烦,写增删改查的sql时也要做 很多重复的工作.程序员就想 ...

  5. 数据库常用的增删改查sql语句

    数据库常用的增.删.改.查.去重sql语句 新增 新增一条数据 insert into 表名 values(全部列的值,用","分割); insert into 表名 (字段1, ...

  6. 数据库常用增删改查记录等语句

    1增 1.1[插入单行] insert [into] <表名> (列名) values (列值) 例:insert into Strdents (姓名,性别,出生日期) values (' ...

  7. mysql增删改查大全_MySQL数据库增删改查SQL语句(2018整理集合大全)

    查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 crea ...

  8. MySQL数据库增删改查SQL语句

    查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 crea ...

  9. Mysql增删改查|SQL语句(史上最全|实战教学)

    文章目录 关于数据库的操作 1.查看数据库 2.创建数据库 3.选择要操作的数据库 4.查看自己所处的位置及默认所在的位置 5.在命令行选择默认的数据库 6.删除数据库 关于表的操作 1. 查看库有哪 ...

最新文章

  1. 01python语言程序设计基础——初识python
  2. 基于机器学习逻辑回归算法完成癌症病人的肿瘤是否良性的判断
  3. 奔跑吧2015,个推一月活动走起
  4. 2.3.7 多生产者多消费者问题
  5. 阿里巴巴云原生 etcd 服务集群管控优化实践
  6. 邮件发送代码--网易服务器代理
  7. Cortex-M3-异常与中断-向量表 s
  8. 关于mac机抓包的几点基础知识
  9. 哈佛大学刘小乐教授讲授的计算生物学和生物信息学导论 (2020 视频+资料)
  10. 【elasticsearch】elasticsearch 熔断器
  11. JSP访问Spring中的bean
  12. Kalman Filter --卡尔曼滤波
  13. 微软张宏江出任金山CEO 求伯君正式退休
  14. Poj 1166 The Clocks(bfs)
  15. 12个可以免费自学编程的网站
  16. android 18x games,Roadgames
  17. 罗振宇“时间的朋友”跨年演讲:为做事的人服务 准确抓住小趋势
  18. 除了Java,还可以培训学习哪些IT技术?
  19. win 2008 r2
  20. error LNK2001: 无法解析的外部符号 __declspec(dllimport) public: __thiscall DuiLib::CDuiString::CDuiStr

热门文章

  1. 英国手机漫谈之签手机喽!
  2. Windows下自动连接WiFi 脚本
  3. Linux中hadoop下载安装及环境配置
  4. 【排序专训】练习题 士兵站队(中位数应用) 解题报告
  5. C++:函数重载:函数重载深入解析
  6. MySQL 数据库连接
  7. python论文题目大全_论文题目大全
  8. 时间序列数据分析—概述
  9. 组合导航(一):定位技术分类与介绍
  10. 瞧一瞧,看一看,走过路过不要错过。 关于5G