导入*.sql数据到数据库

  • windows系统

    ​ source d:/tables.sql;

  • Linux系统

    source /home/soft/桌面/tables.sql;

  • 导入完成后 测试查询

    show tables; 查询出两个表 emp和dept
    
    select * from emp; 里面会有一堆数据
    
    

is null 和 is not null

  • 当查询字段的值为空值时 不能用等号进行判断,使用is

    1. 查询没有上级领导的员工信息;
    select * from emp where manager is null;
    2. 查询有上级领导的员工信息;
    select * from emp where manager is not null;

别名 --select查询 as

  • 把查询到的员工姓名name 改成名字

  • - select name as '名字' from emp;
    - select name '名字' from emp;
    - seclect 名字 from emp;

去重distinct

1. 查询员工表中出现了哪几种不同的工作
select distinct job from emp;
2. 查询员工表里面有哪几个部门id
select distinct deptId from emp;

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

1. 查询工资大于等于3000的员工姓名和工资
select name,sal from emp where sal>=3000;
2. 查询1号部门的员工姓名和工作
select name,job from emp where deptId=1;
3. 查询不是程序员的员工姓名,工资和工作 (用到上面两种不等的写法)
select name,sal,job from emp where job!='程序员';
select name,sal,job from emp where job<>'程序员';
4. 查询有奖金的员工姓名和奖金
select name,comm from emp where comm>0;

逻辑运算符(自定义)

- and / or / not 与或非

  • and 类似Java中的 &&

  • or 类似Java中的||

  • not 类似Java中的!

  • 1. 查询1号部门工资高于2000块钱的员工信息
    select * from emp where deptId=1 and sal>2000;
    2. 查询是程序员或者工资等于5000的员工信息
    select * from emp where job='程序员' or sal=5000;
    3. 查询出CEO和项目经理的名字
    select name from emp where job='CEO' or job='项目经理';
    4. 查询出奖金为500并且是销售的员工信息 select * from emp where comm=500 and job='销售'

in关键字

  • 当查询某个字段的值为多个值的时候使用

  • - 
    
    1. 查询出工资为3000,1500和5000的员工信息
    select * from emp where sal=3000 or sal=1500 or sal=5000;
    select * from emp where sal in(3000,1500,5000);
    2. 查询工资不是3000,1500和5000的员工信息
    select * from emp where sal not in(3000,1500,5000);
    3. 查询1号和2号部门工资大于2000的员工信息
    select * from emp where deptId in(1,2) and sal>2000;

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;
    
    2. 查询工资在2000到3000之外的员工信息
    
    select * from emp where sal not between 2000 and 3000;

模糊查询like

  • _: 代表1个未知字符
  • %: 代表0或多个未知字符
  • 举例:
    • 以x开头 x%
    • 以x结尾 %x
    • 包含x %x%
    • 第二个字符是x _x%
    • 第三个是x倒数第二个是y _ _ x%y _
练习1:
查询姓孙的员工信息 select * from emp where name like "孙%"; 查询工作中第二个字是售的员工信息 select * from emp where job like "_售%"; 查询名字中以精结尾的员工姓名 select name from emp where name like '%精'; 查询名字中包含僧的员工并且工资高于2000的员工信息 select * from emp where name like '%僧%' and sal>2000; 查询1号和2号部门中工作以市开头的员工信息 select * from emp where deptId in(1,2) and job like '市%'; 查询有领导的员工中是经理的员工姓名 select name from emp where manager is not null and job like '%经理%';
练习2:
select * from t_item where title like '%记事本%'and price<100; select * from t_item where title like '得力' and price between 50 and 100; select * from t_item where image is not null; select * from t_item where category_id in(238,917); select * from t_item where sellpoint '%赠%'; select title from t_item where title not like '%得力%'; select * from t_item where price not between 50 and 200;

排序 order by

  • 格式: order by 排序字段名 asc升序( 默认 ) 或 desc降序

  • 多字段排序 : order by 字段名1 asc/desc,字段名2 asc/desc;

    1. 查询所有员工的姓名和工资并安装工资升序排序
    select name,sal from emp order by sal; 2. 查询所有员工的姓名和工资并安装工资降序排序
    select name,sal from emp order by sal desc; 3. 查询所有员工姓名,工资和部门编号 , 安装部门编号升序排序,如果部门编号一致则按照工资降序排序
    select name,sal,deptid from emp order by deptid ,sal desc;

分页查询limit

  • 格式: limit 跳过的条数,请求的条数(每页的条数)
  • 跳过的条数=(请求的页数-1)*每页的条数
  • 举例 :
    • 查询第一页的10条数据 limit 0,10
    • 查询第二页的10条数据 limit 10,10
    • 查询第5页的10条数据 limit 40,10
    • 查询第8页的5条数据 limit 35,5
    • 查询第7页的9条数据 limit 54,9
工资升序排序 查询前三名

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

查询员工表中工资降序排序 第二页的3条数据

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

查询1号部门中工资最高的员工信息

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

查询销售相关工作里面赚钱最少的员工姓名和工资

select name,sal from emp where job like '%销售%'

order by sal limit 0,1;

按照工资降序排序查询工资高于1000的所有员工姓名和工资, 查询第三页的两条数据

select name,sal from emp where sal>1000 order by sal desc limit 4,2;

数值计算 + - * / %

  • 7%2 等效于 mod(7,2)
1. 查询每个员工的姓名,工资和年终奖(年终奖=5*月工资)
select name,sal,sal*5 from emp;
//select price,num,price*num 总金额 from t-item; 2.查询2号部门中的员工姓名,工资和涨薪5块钱之后的工资
select name,sal+5 from emp; 3.让员工表中3号部门的员工每人涨薪5块钱
uddate emp set sal=sal+10;
- 改回去
upate emp set sal=sal-10

最新文章

  1. android中的线程池学习笔记
  2. Eclipse 启动出现错误 no java virtual machine was found
  3. 学习SVG系列(5):SVG渐变
  4. Html一天入门
  5. CruiseControl.NET/CCNET安装包下载
  6. POJ 3678 Katu Puzzle(强连通 法)
  7. Java for LeetCode 043 Multiply Strings
  8. 不同系统平台下Java默认的安装路径
  9. hdu 4762 Cut the Cake (大数乘法)
  10. js之dom_2
  11. ADT 怎么删除logcat过滤规则
  12. 8个很有用的PHP安全函数,你知道几个?
  13. in 与 = 的区别
  14. 跟我一起学extjs5(22--模块Form的自己定义的设计)
  15. MongoDB学习总结(四) —— 索引的基本用法
  16. 数据库优化案例——————某知名零售企业ERP系统
  17. 前端vue框架 路由的安装及使用
  18. hadoop multipleoutputs
  19. 文件名过滤器FilenameFilter的用法
  20. 替换linux系统文件etc下passwd文件的字段获取真正的root权限

热门文章

  1. Shell脚本实战:日志关键字监控+自动告警
  2. clientWidth、offsetWidth、scrollWidth……
  3. 用Docker打包Python运行环境
  4. 谈谈最近玩的设计软件:Figma 与 Sketch
  5. Java线程池ThreadPoolExecutor极简教程
  6. vue 下搭建ant design环境
  7. vs 快速定位文件
  8. golang 方法接收者
  9. 看看CabloyJS是如何实现编辑页面脏标记的
  10. JUnit 5 - Nested Test 内嵌测试