数据库
2023-03-21 19:08:53 34 举报
AI智能生成
.
作者其他创作
大纲/内容
数据查询
基本查询
-- select 查询的字段(列名) FROM 表名
-- 查询员工的姓名和工资
--
select last_name,salary FROM t_employees;
-- 查询员工的入职日期和 工资 以及姓名
SELECT last_name,salary,hire_Date from t_employees;
-- 查询员工所有信息 *表示所有的列 (在实际开发中不能使用)
SELECT * from t_employees;
-- 在基本查询中进行运算
-- 1.查询所有员工的年薪 (12 薪)
select last_name,salary*12 FROM t_employees;
-- 2.查询所有员工的月薪(扣除社保800)
select last_name,salary-800 FROM t_employees;
-- 3.查询所有员工的月薪(扣除社保800)+绩效 salary*IFNULL(COMMISSION_PCT,0)
-- IFNULL(判断的字段值,如果结果为null的值)
SELECT last_name,salary*IFNULL(COMMISSION_PCT,0)+salary-800 FROM t_employees;
-- 4.查询所有员工的时薪
SELECT last_name,salary/22/8 from t_employees;
-- select 查询的字段(列名) FROM 表名
-- 查询员工的姓名和工资
--
select last_name,salary FROM t_employees;
-- 查询员工的入职日期和 工资 以及姓名
SELECT last_name,salary,hire_Date from t_employees;
-- 查询员工所有信息 *表示所有的列 (在实际开发中不能使用)
SELECT * from t_employees;
-- 在基本查询中进行运算
-- 1.查询所有员工的年薪 (12 薪)
select last_name,salary*12 FROM t_employees;
-- 2.查询所有员工的月薪(扣除社保800)
select last_name,salary-800 FROM t_employees;
-- 3.查询所有员工的月薪(扣除社保800)+绩效 salary*IFNULL(COMMISSION_PCT,0)
-- IFNULL(判断的字段值,如果结果为null的值)
SELECT last_name,salary*IFNULL(COMMISSION_PCT,0)+salary-800 FROM t_employees;
-- 4.查询所有员工的时薪
SELECT last_name,salary/22/8 from t_employees;
别名查询
别名查询
-- 相当于取小名 1.当列名过长或者字段重复 2.需要用到别名进行查询或者作区分
SELECT first_name '名' ,last_name '姓' FROM t_employees;
SELECT last_name,salary*IFNULL(COMMISSION_PCT,0)+salary-800 as salary FROM t_employees;
-- 相当于取小名 1.当列名过长或者字段重复 2.需要用到别名进行查询或者作区分
SELECT first_name '名' ,last_name '姓' FROM t_employees;
SELECT last_name,salary*IFNULL(COMMISSION_PCT,0)+salary-800 as salary FROM t_employees;
排序查询
排序查询
-- 1.按照员工的工资进行降序排序 DESC 降序 asc 升序 默认不写
select last_name,salary FROM t_employees ORDER BY salary DESC;
select last_name,salary FROM t_employees ORDER BY salary ;
-- 2.按照员工的工资进行降序排序 如果工资相同的话就按照 入职日期进行升序排序
select last_name,salary FROM t_employees ORDER BY salary DESC,hire_Date ;
-- 1.按照员工的工资进行降序排序 DESC 降序 asc 升序 默认不写
select last_name,salary FROM t_employees ORDER BY salary DESC;
select last_name,salary FROM t_employees ORDER BY salary ;
-- 2.按照员工的工资进行降序排序 如果工资相同的话就按照 入职日期进行升序排序
select last_name,salary FROM t_employees ORDER BY salary DESC,hire_Date ;
条件查询
语法:Select * from 表名 where 查询条件
条件查询
-- 语法:Select * from 表名 where 查询条件
-- 关系条件:
-- > < >= <= != <>
-- 逻辑条件
-- and or not
-- 区间条件
-- between 起始值 and 结束值
-- 枚举条件
-- in(值1,值2...) not in(值1,值2...)
-- 非空条件 sql中的null 不能使用= 或者 != 来进行判断
-- is null is not NULL
-- 1.查询工资大于10000 的员工信息
select * FROM t_employees WHERE salary>10000;
-- 2.查询不是销售的员工信息
SELECT * FROM t_employees WHERE JOB_ID !='SA_MAN';
SELECT * FROM t_employees WHERE JOB_ID <>'SA_MAN';
-- 3.查询姓名叫Peter 员工的信息
SELECT * FROM t_employees WHERE FIRST_NAME ="peter";
-- 4.查询1998年以后入职的员工 且 工资大于 8000的员工信息
SELECT * from t_employees WHERE HIRE_DATE> "1998" and SALARY >8000;
-- 5. 查询不是30部门的员工信息
SELECT * FROM t_employees WHERE NOT DEPARTMENT_ID=30
-- 6.查询50 60 90 部门的员工信息
SELECT * FROM t_employees WHERE DEPARTMENT_ID=50 or DEPARTMENT_ID=60 or DEPARTMENT_ID=90;
-- 7.查询员工工资在 8000 12000 的员工信息 between 起始值 and 结束值
SELECT * FROM t_employees WHERE SALARY BETWEEN 8000 and 12000;
SELECT * FROM t_employees WHERE SALARY >=8000 and SALARY <=12000;
-- 8. 查询员工 30 40 70 部门员工信息
SELECT * FROM t_employees WHERE DEPARTMENT_ID IN(30,40,70)
-- 9.查询没有绩效的员工信息
SELECT * FROM t_employees WHERE COMMISSION_PCT = NULL; -- 不要用
SELECT * FROM t_employees WHERE COMMISSION_PCT IS NULL;
-- 10. 查询有绩效的员工信息
SELECT * FROM t_employees WHERE COMMISSION_PCT is not Null;
-- 11.查询名字中带有en的员工信息
SELECT * FROM t_employees WHERE LAST_NAME like '%en%'
-- 12.查询last name 中 以la 开头的员工信息
SELECT * from t_employees WHERE LAST_NAME like 'la%'
SELECT * from t_employees WHERE LAST_NAME like '%la'
-- 13.查询last name 中第二个和第三个字符为 in 的员工信息
SELECT * from t_employees WHERE LAST_NAME LIKE '_in%'
-- 14. 查询last name 中 带 'S' 且长度 大于6 的员工信息
SELECT * FROM t_employees WHERE LAST_NAME LIKE '%s%' AND LAST_NAME LIKE '%_______%';
-- 15. 查询last name 中 带 'S' 且长度 大于等于6 的员工信息
SELECT * FROM t_employees WHERE LAST_NAME LIKE '%s%' AND LAST_NAME LIKE '%______%';
-- 语法:Select * from 表名 where 查询条件
-- 关系条件:
-- > < >= <= != <>
-- 逻辑条件
-- and or not
-- 区间条件
-- between 起始值 and 结束值
-- 枚举条件
-- in(值1,值2...) not in(值1,值2...)
-- 非空条件 sql中的null 不能使用= 或者 != 来进行判断
-- is null is not NULL
-- 1.查询工资大于10000 的员工信息
select * FROM t_employees WHERE salary>10000;
-- 2.查询不是销售的员工信息
SELECT * FROM t_employees WHERE JOB_ID !='SA_MAN';
SELECT * FROM t_employees WHERE JOB_ID <>'SA_MAN';
-- 3.查询姓名叫Peter 员工的信息
SELECT * FROM t_employees WHERE FIRST_NAME ="peter";
-- 4.查询1998年以后入职的员工 且 工资大于 8000的员工信息
SELECT * from t_employees WHERE HIRE_DATE> "1998" and SALARY >8000;
-- 5. 查询不是30部门的员工信息
SELECT * FROM t_employees WHERE NOT DEPARTMENT_ID=30
-- 6.查询50 60 90 部门的员工信息
SELECT * FROM t_employees WHERE DEPARTMENT_ID=50 or DEPARTMENT_ID=60 or DEPARTMENT_ID=90;
-- 7.查询员工工资在 8000 12000 的员工信息 between 起始值 and 结束值
SELECT * FROM t_employees WHERE SALARY BETWEEN 8000 and 12000;
SELECT * FROM t_employees WHERE SALARY >=8000 and SALARY <=12000;
-- 8. 查询员工 30 40 70 部门员工信息
SELECT * FROM t_employees WHERE DEPARTMENT_ID IN(30,40,70)
-- 9.查询没有绩效的员工信息
SELECT * FROM t_employees WHERE COMMISSION_PCT = NULL; -- 不要用
SELECT * FROM t_employees WHERE COMMISSION_PCT IS NULL;
-- 10. 查询有绩效的员工信息
SELECT * FROM t_employees WHERE COMMISSION_PCT is not Null;
-- 11.查询名字中带有en的员工信息
SELECT * FROM t_employees WHERE LAST_NAME like '%en%'
-- 12.查询last name 中 以la 开头的员工信息
SELECT * from t_employees WHERE LAST_NAME like 'la%'
SELECT * from t_employees WHERE LAST_NAME like '%la'
-- 13.查询last name 中第二个和第三个字符为 in 的员工信息
SELECT * from t_employees WHERE LAST_NAME LIKE '_in%'
-- 14. 查询last name 中 带 'S' 且长度 大于6 的员工信息
SELECT * FROM t_employees WHERE LAST_NAME LIKE '%s%' AND LAST_NAME LIKE '%_______%';
-- 15. 查询last name 中 带 'S' 且长度 大于等于6 的员工信息
SELECT * FROM t_employees WHERE LAST_NAME LIKE '%s%' AND LAST_NAME LIKE '%______%';
分支查询
-- 分支查询
-- case
-- when 条件1 then 结果1
-- when 条件2 then 结果2
-- when 条件3 then 结果3
-- else 结果4
-- end
-- 16.查询员工共工资 按照等级来 A B C D E
SELECT
SALARY,
case
WHEN SALARY >12000 THEN 'A类'
WHEN SALARY >8000 THEN 'B类'
WHEN SALARY >5000 THEN 'C类'
WHEN SALARY >3000 THEN 'D类'
ELSE 'E类'
END
FROM t_employees;
-- case
-- when 条件1 then 结果1
-- when 条件2 then 结果2
-- when 条件3 then 结果3
-- else 结果4
-- end
-- 16.查询员工共工资 按照等级来 A B C D E
SELECT
SALARY,
case
WHEN SALARY >12000 THEN 'A类'
WHEN SALARY >8000 THEN 'B类'
WHEN SALARY >5000 THEN 'C类'
WHEN SALARY >3000 THEN 'D类'
ELSE 'E类'
END
FROM t_employees;
时间函数
-- 时间函数
-- 语法: select 时间函数(参数列表)
-- 获取当前的系统时间
SELECT SYSDATE();
-- 获取当前日期
SELECT NOW()
-- 获取系统当前日期(不包含时间)
SELECT CURDATE()
-- 获取系统的时间
SELECT CURTIME()
-- 获取指定日期中的年份
SELECT YEAR('2023-03-21')
-- 计算指定日期相隔天数
SELECT DATEDIFF('2023-02-27','2023-03-21')
-- 在指定日期基础上添加指定天数
SELECT ADDDATE(NOW(),20)
-- 语法: select 时间函数(参数列表)
-- 获取当前的系统时间
SELECT SYSDATE();
-- 获取当前日期
SELECT NOW()
-- 获取系统当前日期(不包含时间)
SELECT CURDATE()
-- 获取系统的时间
SELECT CURTIME()
-- 获取指定日期中的年份
SELECT YEAR('2023-03-21')
-- 计算指定日期相隔天数
SELECT DATEDIFF('2023-02-27','2023-03-21')
-- 在指定日期基础上添加指定天数
SELECT ADDDATE(NOW(),20)
字符串函数
-- 字符串函数
-- 请将 hello word 拼接在一起
SELECT 'hello' + 'word' ; -- 错误
-- CONCAT(str1,str2,...) 函数 拼接函数
SELECT CONCAT('hello','word')
SELECT CONCAT('%','手机','%')
-- 字符串 替换函数 参数1 原始字符串 参数2 起始位置 参数3 截取位置 参数4 替换的字符串
SELECT INSERT('helloword',6,5,'mysql')
SELECT LOWER('HELLO')
SELECT UPPER('hello')
-- 字符串截取函数 参数1 原始字符串 参数2 起始位置 参数3 截取的长度
SELECT SUBSTRING('hello,java123' ,7,4)
-- 请将 hello word 拼接在一起
SELECT 'hello' + 'word' ; -- 错误
-- CONCAT(str1,str2,...) 函数 拼接函数
SELECT CONCAT('hello','word')
SELECT CONCAT('%','手机','%')
-- 字符串 替换函数 参数1 原始字符串 参数2 起始位置 参数3 截取位置 参数4 替换的字符串
SELECT INSERT('helloword',6,5,'mysql')
SELECT LOWER('HELLO')
SELECT UPPER('hello')
-- 字符串截取函数 参数1 原始字符串 参数2 起始位置 参数3 截取的长度
SELECT SUBSTRING('hello,java123' ,7,4)
聚合函数
-- 聚合函数
-- select 聚合函数 (列名) from 表名
-- sum 函数求和
SELECT sum(SALARY+SALARY*IFNULL(COMMISSION_PCT,0)) FROM t_employees;
-- max 函数求最大 值
SELECT MAX(SALARY) FROM t_employees;
-- min 函数求最小
SELECT MIN(SALARY) FROM t_employees;
-- avg 求平均值
SELECT AVG(SALARY) FROM t_employees;
-- count函数 求个数 * 表示所有列 函数只会统计不为null 数据
SELECT COUNT(*) from t_employees
SELECT COUNT(1) from t_employees
SELECT COUNT(COMMISSION_PCT) from t_employees
-- select 聚合函数 (列名) from 表名
-- sum 函数求和
SELECT sum(SALARY+SALARY*IFNULL(COMMISSION_PCT,0)) FROM t_employees;
-- max 函数求最大 值
SELECT MAX(SALARY) FROM t_employees;
-- min 函数求最小
SELECT MIN(SALARY) FROM t_employees;
-- avg 求平均值
SELECT AVG(SALARY) FROM t_employees;
-- count函数 求个数 * 表示所有列 函数只会统计不为null 数据
SELECT COUNT(*) from t_employees
SELECT COUNT(1) from t_employees
SELECT COUNT(COMMISSION_PCT) from t_employees
现有存储数据的方式有哪些?
- java程序存储数据方式(数组、对象 、集合、变量) ,数据保存在内存中,属于瞬时存储。
- 文件存储 保存在硬盘中,属于持久状态存储。
- 文件存储 保存在硬盘中,属于持久状态存储。
以上存储方式有什么缺点?
- 没有数据类型区分
- 存储的量级小
- 没有安全限制
- 没有备份 恢复机制
- 存储的量级小
- 没有安全限制
- 没有备份 恢复机制
0 条评论
下一页