学习: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