学习MySQL数据库的第一天和第二天

主要我们学习了数据库的创建,删除,修改数据库字符集等
然后主要学习了对数据库中数据的查询

下面是sql代码:

#创建一个为compar数据库
CREATE DATABASE compar;
#查询数据库中t_employees表中所有列名
SELECT * FROM t_employees;
#查询表中的制定的列名
SELECT EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL FROM t_employees;
#查询员工表中所有员工的编号,姓名,年薪(月薪*12),as为每一个列名起了一个别名,对原表没有影响
SELECT EMPLOYEE_ID AS '编号',FIRST_NAME AS '姓',LAST_NAME AS '名',SALARY*12 AS '年薪' FROM t_employees;
#查询员工所有经理的编号,去掉重复的
SELECT DISTINCT MANAGER_ID FROM t_employees;
#查询员工表中算有工资(去掉重复的)
SELECT DISTINCT SALARY FROM t_employees;
#--------------------------------排序-------------------------------------------
#排序 select 列名 from 表名 Order by 排序的列名 Asc/Desc(asc升序,desc降序)
#查询员工的编号,名字,薪资,按照工资进行升序排序
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees ORDER BY SALARY ASC;#查询员工的编号,名字,薪资,按照姓名进行升序排序
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees ORDER BY FIRST_NAME DESC;#查询员工的编号,名字,薪资,按照工资进行降序排序
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees ORDER BY SALARY DESC;#查询员工编号,名字,薪资,按照工资进行升序排序,如果工资相等,按照编号降序排序
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
ORDER BY SALARY ASC,EMPLOYEE_ID DESC;#查询员工编号,名字,薪资,按照工资进行升序排序,如果工资相等,按照姓名降序排序
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
ORDER BY SALARY ASC,FIRST_NAME DESC;#--------------------------------------条件查询---------------------------------#select 列名 from 表名 where 条件
#查询工资为2500的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees WHERE SALARY = 2500;
#查询姓为Steven的
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees WHERE FIRST_NAME = 'Steven';#查询员工工资大于6000的员工的信息,并且按照工资升序排序
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE SALARY >= 6000 ORDER BY SALARY ASC;#查询员工工资不等于2500的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE SALARY <> 2500; # !=跟<> 作用一样的#逻辑判断(and、or、not)#查询员工工资在6000~10000的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE SALARY >= 6000 AND SALARY <= 10000 ORDER BY SALARY ASC;#查询工资是10000的或者是9000的员工信息SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE SALARY = 10000 OR SALARY = 9000;#查询除了工资是10000的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE NOT SALARY = 10000;# 区间判断(between and)
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE SALARY BETWEEN 6000 AND 10000;# NULL值判断(IS NULL、IS NOT NULL)
#IS NUll 是null的 IS NOT NUll 是非空的##查询出没有经理编号的员工 IS NULL(条件为经理编号为空)
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE MANAGER_ID IS NULL;#查询出 没有经理编号以外的员工信息SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE MANAGER_ID IS NOT NULL;#经理编号为非空的#查询出 没有经理编号以外的员工信息(此处NOT为取反。两个结果)SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE NOT MANAGER_ID IS NULL;#两个条件,先执行,找出经理编号为空的,然后非经理编号为空(找出编号非空的)SELECT EMPLOYEE_ID,FIRST_NAME,SALARY,CASEWHEN salary > 10000 THEN 'A'ELSE 'E'END
FROM t_employees;
# 枚举查询 IN (值1,值2,值n...)
#查询部门编号为70,80,90的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY,DEPARTMENT_ID FROM t_employees
WHERE DEPARTMENT_ID IN(70,80,90);#枚举查询  查询经理编号为 124 和100的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID FROM t_employees
WHERE MANAGER_ID IN(124,100);#模糊查询,查询姓氏以S开头且长度为6的员工信息SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE FIRST_NAME LIKE 'S_____';#模糊查询,查询姓氏以S开头任意长度的所有员工信息
SELECT EMPLOYEE_ID,FIRST_NAME FROM t_employees
WHERE FIRST_NAME LIKE 'S%'#分支结构查询员工信息(编号、名字、薪资、薪资级别<条件表达式>)SELECT EMPLOYEE_ID,FIRST_NAME,SALARY,CASEWHEN SALARY >= 10000 THEN 'A'WHEN SALARY <10000 AND SALARY >= 8000 THEN 'B'WHEN SALARY <8000 AND SALARY >= 6000 THEN 'C'ELSE 'E'END AS '薪资级别'
FROM t_employees;#时间查询
#1.当前系统时间
SELECT SYSDATE();
#2.获取当前日期
SELECT CURDATE();
#3.获取当前时间
SELECT CURTIME();
#4.根据指定日期获取的当前为该年第几周
SELECT WEEK(CURDATE());
#5.获取指定日期中的年份
SELECT YEAR(SYSDATE());
#6.获取指定日期中的月份
SELECT MONTH(SYSDATE());#7.获取指定日期中的天
SELECT DAY(SYSDATE());
#8.获取指定时间中的小时
SELECT HOUR(SYSDATE());
#9.获取指定时间中的分钟
SELECT MINUTE(SYSDATE());
#10.获取指定时间中的秒数
SELECT SECOND(CURTIME());#11.获取Date1和Date2之间相隔的天数
SELECT DATEDIFF(CURDATE(),'2019-03-26');
#12.在指定日期之上加N天后的日期
SELECT ADDDATE('2020-02-02',5);#字符串查询
#1.连接将多个字符串连接在一起
SELECT CONCAT('a','b','c','d');
#2.插入替换(下标从1开始)
SELECT INSERT('我和你',2,1,'爱');#3.将指定字符串转成小写
SELECT LOWER('ABCDEFG');
#4.将指定字符串转化为大写
SELECT UPPER('abcdefg');#5.截取,从下标5开始截,长度为4的字符串
SELECT SUBSTRING('love you',5,4);#聚合函数
#1.查询员工一共多少人,假如查的里中某行为null,他不会记录到列中的总行数
SELECT COUNT(EMPLOYEE_ID) FROM t_employees;
SELECT COUNT(MANAGER_ID) FROM t_employees;
#2.查询员工每个月工资的总和
SELECT SUM(SALARY) FROM t_employees;#3.查询员工每个月工资的平均工资
SELECT AVG(SALARY) FROM t_employees;#4.查询月薪最高的
SELECT MAX(SALARY) FROM t_employees;#5.查询月薪最低的
SELECT MIN(SALARY) FROM t_employees;#分组查询
#查询各部门的总人数
#思路:
#1.先按照部门编号分组(分组依据是:department_id)
#2.再针对各部门的人数进行统计(count),
SELECT DEPARTMENT_ID,COUNT(EMPLOYEE_ID) FROM t_employees
GROUP BY DEPARTMENT_ID;#查询各部门的平均工资
#思路:
#1.先按照部门编号分组(分组依据是:department_id)
#2.再针对各部门的工资进行平均计算(AVG())
SELECT DEPARTMENT_ID,AVG(SALARY) FROM t_employees
GROUP BY DEPARTMENT_ID;#查询各个部门、各个岗位的人数SELECT DEPARTMENT_ID AS '部门',JOB_ID AS '岗位',COUNT(EMPLOYEE_ID) FROM t_employees
GROUP BY DEPARTMENT_ID,JOB_ID; #查询各个部门的id、总人数、first_name
#这是一个错误的示范,我们只能查找跟分组规则相关联的列,而员工姓不跟分组规则相关联
SELECT DEPARTMENT_ID,COUNT(EMPLOYEE_ID),FIRST_NAME FROM t_employees
GROUP BY DEPARTMENT_ID;#分组过滤查询,是对分组后的数据进行过滤#统计部门编号为60、70、80的部门最高工资
#思路:
#1.确定分组依据  department_id
#2.对分组后的数据进行过滤  过滤规则为 60 70 80部门编号
#3.分组过滤后的数据,做max()函数处理SELECT DEPARTMENT_ID,MAX(SALARY) FROM t_employees
GROUP BY DEPARTMENT_ID HAVING DEPARTMENT_ID IN(60,70,80);#限定查询
#查询员工表中前5名员工SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE EMPLOYEE_ID LIMIT 0,5;SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE EMPLOYEE_ID LIMIT 5,5;SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE EMPLOYEE_ID LIMIT 10,5;#子查询(作为条件判断)#思路
#1.先查询到Bruce的工资(一行一列)
SELECT SALARY FROM t_employees
WHERE FIRST_NAME = 'Bruce';
#2.查询大于Bruce工资的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees WHERE SALARY>6000;#3.将1 、2 整合为一条语句
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE SALARY > (SELECT SALARY FROM t_employees WHERE FIRST_NAME='Bruce');#子查询(作为枚举查询的条件)
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees
WHERE SALARY IN(SELECT SALARY FROM t_employees WHERE FIRST_NAME = 'Steven');#查询名字为King的所在部门内的所有员工信息
SELECT EMPLOYEE_ID,DEPARTMENT_ID,FIRST_NAME,SALARY FROM t_employees
WHERE DEPARTMENT_ID IN(SELECT DEPARTMENT_ID FROM t_employees WHERE last_NAME='King');#工资高于60部门的所有人的信息
#1.先查60部门的工资
SELECT SALARY FROM t_employees
WHERE DEPARTMENT_ID=60;#查询高于60部门工资所有人信息(高于所有人,相当于比60部门最高工资高的人)
SELECT EMPLOYEE_ID,SALARY,FIRST_NAME FROM t_employees
WHERE SALARY > ALL(SELECT SALARY FROM t_employees WHERE DEPARTMENT_ID =60); #查询高于60部门工资所有人信息(高于部分人就相当于比60部门最低工资高的人)SELECT EMPLOYEE_ID,SALARY,FIRST_NAME FROM t_employees
WHERE SALARY > ANY(SELECT SALARY FROM t_employees WHERE DEPARTMENT_ID =60); #子查询(作为一张表)#查询表中部分列的信息,获得工资大于15000的
#思路
#1.先查询部分列的信息作为一张临时表
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees;
#2.将子查询得到的临时表作为外部查询的表,这里的临时表要写个别名(不能带引号的)
SELECT EMPLOYEE_ID,SALARY FROM (SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees) AS temp
WHERE SALARY > 15000;

千锋逆战班,学习MYSQL数据库相关推荐

  1. 千锋逆战班学习第二十五天

    千锋逆战班学习第25天 努力或许没有收获,但不努力一定没收获,加油. 今天我学了Java课程的集合. 中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!! 4.有如下代码: public cla ...

  2. 千锋逆战班学习日志Day47

    千锋逆战班学习第47天 表单标签 CSS介绍 二.CSS和HTML结合 2.1CSS和HTML结合之内联结合 2.2CSS与HTML结合之内部部结合 2.3CSS和HTML结合之外部结合 三.访问路径 ...

  3. 千锋逆战班学习第二十三天 集合练习(一)

    千锋逆战班 在千锋"逆战"学习第23天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 2(List)有如下代码 import java.util. ...

  4. 千锋逆战班学习第二十四天

    千锋逆战班 在千锋"逆战"学习第24天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 1(Object类)有下面代码 interface IA{v ...

  5. 千锋逆战班学习的第17天,final

    千锋学习的第17天今天学习的是 三大修饰符final中国加油,武汉加油. 七(final属性的初始化)有如下代码 1) class MyClass{ 2) final in value; 3) pub ...

  6. 千锋逆战班,mysql小练习及jdbc的应用

    mysql代码 # 创建用户表 CREATE TABLE `user`(userid INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(20) NOT N ...

  7. 1903java全套_#千锋逆战班,java1903#

    在千锋"逆战"学习第17天 SpringMVC运行流程: SpringMVC基础配置: 1.web.xml: dispatcherServlet / 2.controller层方法 ...

  8. #千锋逆战班,拼搏永向前#

    在千峰"逆战"学习第十一天 如果有天我们湮没在人潮之中,庸碌一生,那是因为我们没有努力要活得丰盛 今天我学习了一下内容: 1.什么是JSP 2.JSP的语法 3.JSP的指令 4. ...

  9. 千锋逆战班,css注册案例

    千锋学习的第四十八天, 不积跬步无以至千里,不积小流无以成江河: 注册案例代码: <!DOCTYPE html> <html><head><meta char ...

最新文章

  1. 超级实用的linux 下shell快捷键汇总
  2. 鍵盤彈出,頁面佈局被推上去了.....
  3. 查看docker的端口映射情况
  4. 文献记录(part5)--Robust biclustering by sparse singular value decomposition incorporating stability ...
  5. vue router 原生html,Vue router 使用 History 模式导致页面请求 404
  6. MDOP 2011 R2 DaRT 7.0 创建包含诊断和恢复的图形化PE
  7. 使用DataSet Datatable 更新数据库的三种方式及DataTable不同状态的取值
  8. 一棵树的生物量怎么算_2019玩花园 | 夏天怎么办?
  9. 计算机保存的快捷方式,保存快捷键ctrl加什么
  10. 又一个非常好的项目管理系统--ONES
  11. Windows PowerShell 实战指南-附录(复习实验)-实验回顾1
  12. BetaFlight深入传感设计之三:IMU传感模块
  13. html5 ios keychain,iOS 用keychain钥匙串保存账号、设备UUID及APP间共享
  14. 成都自传-MoccA and 555
  15. 用Servlet连接不上数据库
  16. python血条游戏代码_零基础快速学十二课Python完整游戏代码,使用「格式符%」来处理...
  17. htc 10 t版最新ruu t-mobile htc 10最新版,可用联通volte 可修复基带丢失
  18. 类和“对象” 以及 面向对象的三大特点
  19. HP1022n网络打印机ip
  20. 如果给定世界价格是1单位计算机交换,国际经济学计算题.doc

热门文章

  1. datagridview 纵向 横向 合并单元格
  2. 施工员证书建筑八大员证书施工员市政给排水施工HDPE施工工艺
  3. Pandas报错:ImportError: cannot import name ‘is_url‘ from ‘pandas.io.common‘
  4. Docker的常用命令-启动,开机启动,重启策略,重命名
  5. python之subprocess.Popen常用案例
  6. 中国第一程序员 求伯君
  7. UE3 的Config文件夹
  8. Python -- 函数
  9. python实现数据结构的基础
  10. 刺激战场瞬灭助手 2019稳定版