千锋逆战班,学习MYSQL数据库
学习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数据库相关推荐
- 千锋逆战班学习第二十五天
千锋逆战班学习第25天 努力或许没有收获,但不努力一定没收获,加油. 今天我学了Java课程的集合. 中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!! 4.有如下代码: public cla ...
- 千锋逆战班学习日志Day47
千锋逆战班学习第47天 表单标签 CSS介绍 二.CSS和HTML结合 2.1CSS和HTML结合之内联结合 2.2CSS与HTML结合之内部部结合 2.3CSS和HTML结合之外部结合 三.访问路径 ...
- 千锋逆战班学习第二十三天 集合练习(一)
千锋逆战班 在千锋"逆战"学习第23天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 2(List)有如下代码 import java.util. ...
- 千锋逆战班学习第二十四天
千锋逆战班 在千锋"逆战"学习第24天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 1(Object类)有下面代码 interface IA{v ...
- 千锋逆战班学习的第17天,final
千锋学习的第17天今天学习的是 三大修饰符final中国加油,武汉加油. 七(final属性的初始化)有如下代码 1) class MyClass{ 2) final in value; 3) pub ...
- 千锋逆战班,mysql小练习及jdbc的应用
mysql代码 # 创建用户表 CREATE TABLE `user`(userid INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(20) NOT N ...
- 1903java全套_#千锋逆战班,java1903#
在千锋"逆战"学习第17天 SpringMVC运行流程: SpringMVC基础配置: 1.web.xml: dispatcherServlet / 2.controller层方法 ...
- #千锋逆战班,拼搏永向前#
在千峰"逆战"学习第十一天 如果有天我们湮没在人潮之中,庸碌一生,那是因为我们没有努力要活得丰盛 今天我学习了一下内容: 1.什么是JSP 2.JSP的语法 3.JSP的指令 4. ...
- 千锋逆战班,css注册案例
千锋学习的第四十八天, 不积跬步无以至千里,不积小流无以成江河: 注册案例代码: <!DOCTYPE html> <html><head><meta char ...
最新文章
- 超级实用的linux 下shell快捷键汇总
- 鍵盤彈出,頁面佈局被推上去了.....
- 查看docker的端口映射情况
- 文献记录(part5)--Robust biclustering by sparse singular value decomposition incorporating stability ...
- vue router 原生html,Vue router 使用 History 模式导致页面请求 404
- MDOP 2011 R2 DaRT 7.0 创建包含诊断和恢复的图形化PE
- 使用DataSet Datatable 更新数据库的三种方式及DataTable不同状态的取值
- 一棵树的生物量怎么算_2019玩花园 | 夏天怎么办?
- 计算机保存的快捷方式,保存快捷键ctrl加什么
- 又一个非常好的项目管理系统--ONES
- Windows PowerShell 实战指南-附录(复习实验)-实验回顾1
- BetaFlight深入传感设计之三:IMU传感模块
- html5 ios keychain,iOS 用keychain钥匙串保存账号、设备UUID及APP间共享
- 成都自传-MoccA and 555
- 用Servlet连接不上数据库
- python血条游戏代码_零基础快速学十二课Python完整游戏代码,使用「格式符%」来处理...
- htc 10 t版最新ruu t-mobile htc 10最新版,可用联通volte 可修复基带丢失
- 类和“对象” 以及 面向对象的三大特点
- HP1022n网络打印机ip
- 如果给定世界价格是1单位计算机交换,国际经济学计算题.doc
热门文章
- datagridview 纵向 横向 合并单元格
- 施工员证书建筑八大员证书施工员市政给排水施工HDPE施工工艺
- Pandas报错:ImportError: cannot import name ‘is_url‘ from ‘pandas.io.common‘
- Docker的常用命令-启动,开机启动,重启策略,重命名
- python之subprocess.Popen常用案例
- 中国第一程序员 求伯君
- UE3 的Config文件夹
- Python -- 函数
- python实现数据结构的基础
- 刺激战场瞬灭助手 2019稳定版