学习:https://www.lanqiao.cn/courses/1048
一、模糊查询
- like配合通配符可以实现模糊查询,一般针对字符类型
selec * from tb_name where col_name like 'XXX';
- 常见通配符:
二、常见函数
| 用途 | 函数 | 
| 去空格 | trim(), ltrim(), rtrim() | 
| 大小写 | upper(), lower() | 
| 字符串转时间 | to_date('19991010', 'yyyymmdd') | 
| 字符串转数值 | to_number('1990') | 
| 字符串连接 | concat(char1, char2) | 
| 时间中提取字符串 | to_char(sysdate, 'mmmm') | 
| 数值计算 | sin(), cos(), tan(), abs(), pi(), exp(), sqrt() | 
| 聚集函数 | avg() max() min() sum() count(),avg(distinct 字段)可以忽略重复的值不计入其中 | 
三、计算字段
| 方式 | 实现 | 
| 拼接字段 | select后的字段可以用"||"来拼接数字、字符串 | 
| 算术计算字段 | select后的字段之间还可以用+-*/进行计算 | 
四、分组排序
| 子句 | 作用 | 
| group by | 可以配合聚合函数进行统计 | 
| having | 从得到的结果中筛选 | 
| order by | 排序,默认升序,添加desc就是逆序 | 
| rownum | 限制返回行数,用在where子句中,如where rownum < 5 | 
五、子查询
直接给出例子:
学生表(student)
| 学号(s_id) | 姓名(s_name) | 性别(s_sex) | 年龄(s_age) | 
| 1001 | shiyanlou1001 | man | 10 | 
| 1002 | shiyanlou1002 | woman | 20 | 
| 1003 | shiyanlou1003 | man | 18 | 
| 1004 | shiyanlou1004 | woman | 40 | 
| 1005 | shiyanlou1005 | man | 17 | 
| 选课表(sc) |  |  |  | 
| 学号(s_id) | 课程号(c_id) | 成绩(grade) |  | 
| -------- | --------- | --------- |  | 
| 1001 | 3 | 70 |  | 
| 1001 | 1 | 20 |  | 
| 1002 | 1 | 100 |  | 
| 1001 | 4 | 96 |  | 
-- 分两步查询选课程号1的学生的年龄
SELECT s_id FROM sc WHERE c_id=1;
SELECT s_id,s_age FROM student WHERE s_id IN (1001,1002);
-- 用子查询解决
SELECT s_id,s_age FROM student WHERE s_id IN (SELECT s_id FROM sc WHERE c_id=1);
五、连接
| 连接 | 描述 | 
| cross join | 笛卡尔连接,将两张表所有可能的组合全部现实出来 | 
| inner join ... on ... | 内连接,只返回满足条件的行 | 
| full/left/right join ... on ... | 在内连接的基础上,显示两张表/左表/右表全部的行,不满足条件的列会显示空值 | 
| nature join | 将两张表中相同名称相同类型的列合并 | 
六、视图
1.创建视图
create view v_name 
as
select ...
2.删除视图
drop view v_name;
七、总给

图片地址:https://dn-simplecloud.shiyanlou.com/uid/276733/1518160126706.png