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