logo资料库

数据库知识点整理,很详细完整,适合入门或者复习。.docx

第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
资料共41页,剩余部分请下载后查看
1.对表的增删改查
1.1插入数据
1.2更新数据
1.2.1多表联合更新
1.3删除数据
1.3.1多表删除(使用连接)
1.4查询语句执行顺序
1.5查询语句注意事项
1.6子查询
DDL使用子查询
子查询创建表
DML使用子查询
单行单列子查询
多行单列子查询
多列子查询
子查询在 FROM 部分
1.7关联查询
1.7.1内连接
1.7.2外连接
1.8 UNION 并集(合并重复)
1.9分页查询
1.9.1Mysql分页方式:
2.DDL数据库定义
2.1约束
2.2索引
2.3序列
2.4视图(VIEW)
3.各种函数
3.1 DECODE 函数
3.3排序函数
3.3.1 ROW_NUMBERR() OVER()
3.5字符串连接函数 concat
3.6 查询函数 字符串长度 length
3.7 字符串转化为全大写,全小写,以及首字母大写
3.9去掉字符串两边,左侧,右侧的指定的重复字符
3.10补位函数
3.11截取函数 substr
3.12 instr(char1, char2[, n, m]) 函数
3.13 数字函数
3.14 trunc 截取数字函数(不进位)
3.15 mod(m, n) 求余数
3.16 ceil floor 向上,向下取整
3.17 日期
3.18 NULL
4. UNION 并集(合并重复)
INTERSECT 交集
5. plsql
5.1概念
5.2语法结构
5.3 pl/sql包含元素
示例
5.4常用符号
5.5数据类型
5.6常量
5.7变量
5.8 PL/SQL中控制语句
5.8.1 if语句(三种)
5.8.2case语句:
5.8.4 循环(三种)
5.8.4goto及null
5.9异常处理
5.9.1异常分类
5.9.2未处理异常的情况
5.9.3使用异常的情况
6.存储过程
7.触发器
8.注意事项
目录 1.对表的增删改查......................................................................................................................................1 1.1 插入数据............................................................................................................................................1 1.2 更新数据............................................................................................................................................1 1.2.1 多表联合更新.......................................................................................................................... 1 1.3 删除数据............................................................................................................................................1 1.3.1 多表删除(使用连接)........................................................................................................1 1.4 查询语句执行顺序......................................................................................................................... 2 1.5 查询语句注意事项......................................................................................................................... 2 1.6 子查询................................................................................................................................................ 3 DDL 使用子查询................................................................................................................................4 子查询创建表.....................................................................................................................................4 DML 使用子查询...............................................................................................................................4 单行单列子查询................................................................................................................................ 4 多行单列子查询................................................................................................................................ 5 多列子查询......................................................................................................................................... 6 子查询在 FROM 部分....................................................................................................................6 1.7 关联查询............................................................................................................................................6 1.7.1 内连接........................................................................................................................................ 7 1.7.2 外连接........................................................................................................................................ 7 1.7.3 自连接........................................................................................................................................ 8 1.8 UNION 并集(合并重复) ...............................................................................................................9 1.9 分页查询............................................................................................................................................9 1.9.1Mysql 分页方式:.................................................................................................................11 2.DDL 数据库定义.................................................................................................................................. 12 2.1 约束.................................................................................................................................................. 12 2.2 索引.................................................................................................................................................. 13 2.3 序列.................................................................................................................................................. 14 2.4 视图(VIEW)..................................................................................................................................... 15 3.各种函数.................................................................................................................................................19
3.1 DECODE 函数...............................................................................................................................19 3.2 CASE 语句,.................................................................................................................................... 19 3.3 排序函数......................................................................................................................................... 20 3.3.1 ROW_NUMBERR() OVER().................................................................................................20 3.3.2 RANK() 函数..........................................................................................................................20 3.3.3 DENSE_RANK() 函数.......................................................................................................... 20 3.4ROLLUP() 分组函数..................................................................................................................... 21 3.5 字符串连接函数 concat............................................................................................................22 3.6 查询函数 字符串长度 length................................................................................................22 3.7 字符串转化为全大写,全小写,以及首字母大写..........................................................22 3.8 伪表:dual..................................................................................................................................... 22 3.9 去掉字符串两边,左侧,右侧的指定的重复字符........................................................... 23 3.10 补位函数.......................................................................................................................................23 3.11 截取函数 substr.........................................................................................................................23 3.12 instr(char1, char2[, n, m]) 函数.............................................................................................23 3.13 数字函数......................................................................................................................................23 3.14 trunc 截取数字函数(不进位).................................................................................................24 3.15 mod(m, n) 求余数.................................................................................................................... 24 3.16 ceil floor 向上,向下取整......................................................................................................24 3.17 日期...............................................................................................................................................24 3.18 NULL.............................................................................................................................................. 25 3.19 空值函数 NVL(arg1, arg2),................................................................................................... 25 3.20 NVL2(arg1, arg2, arg3)............................................................................................................ 26 4. UNION 并集(合并重复).................................................................................................................. 27 INTERSECT 交集.............................................................................................................................27 MINUS 差集.....................................................................................................................................27 5. plsql........................................................................................................................................................ 28 5.1 概念.................................................................................................................................................. 28 5.2 语法结构......................................................................................................................................... 28 5.3 pl/sql 包含元素.............................................................................................................................28 示例.....................................................................................................................................................28
5.4 常用符号......................................................................................................................................... 28 5.5 数据类型......................................................................................................................................... 28 5.6 常量.................................................................................................................................................. 29 5.7 变量.................................................................................................................................................. 29 5.8 PL/SQL 中控制语句.....................................................................................................................30 5.8.1 if 语句(三种)...........................................................................................................................30 5.8.2case 语句:............................................................................................................................. 31 5.8.4 循环(三种)............................................................................................................................. 32 5.8.4goto 及 null............................................................................................................................. 33 5.9 异常处理......................................................................................................................................... 34 5.9.1 异常分类................................................................................................................................. 34 5.9.2 未处理异常的情况...............................................................................................................34 5.9.3 使用异常的情况................................................................................................................... 34 6.存储过程.................................................................................................................................................36 7.触发器......................................................................................................................................................37 8.注意事项.................................................................................................................................................38
1.对表的增删改查 'xr', '24', '100000', ('15010730', TO_DATE('1997-05-13', 1.1 插入数据 1.插入时必须满足插入约束,并且必须为主键和 NOT NULL 提供数据 2.增加数据时,数据必须与列顺序和个数保持一致,除非自己指定 3.建议全部用单引号括起来 4.插入日期建议使用 TO_DATE 自定义格式来插入时间 5.未使用 DEFAULT 来限定默认值,则为 NULL INSERT INTO stu (id, name, age, salary, birth) VALUES 'YYYY-MM-DD')); SELECT * FROM stu 1.2 更新数据 UPDATE stu SET age = '21', birth = TO_DATE('1997-05-13', 'YYYY-MM-DD') where name = 'xr'; select * from stu 1.2.1 多表联合更新 update productinfo join priceinfo on productinfo.pdtid = priceinfo.pdtid set productinfo.pricecount = productinfo.pricecount + 1, priceinfo.realtimeprice = 100000 where productinfo.pdtid="5"; 1.3 删除数据 1.delete 语句要加 where 限制条件,否则就是删除所有的数据 2.delete 可以用 RILLBACK 来回滚恢复数据 3.truncate 清 空 数 据 , 且 不 可 以 回 退 , 但 是 效 率 比 delete 高 TRUNCATE TABLEtable_name DELETE FROM stu WHERE id = '15010731'; SELECT * FROM stu ROLLBACK; SELECT * FROM stu 1.3.1 多表删除(使用连接) delete productinfo.*, priceinfo.* from productinfo join priceinfo 1
on productinfo.pdtid = priceinfo.pdtid where productinfo.pdtid = "11"; 1.4 查询语句执行顺序 1.FROM 子句:执行顺序为从后往前,从右往左 数据量较小的表尽量放在后面 2.WHERE 子句:执行顺序自下而上,从左到右 将能过滤最大数量记录的条件写在 WHERE 子句的最右边 3.GROUP BY 子句:执行顺序从左往右 最好在 GROUP BY 前使用 WHERE 将不需要的记录在 GROUP BY 之前 过滤掉 能写在 WHERE 中的条件 就不要写在 HAVING 中 4.HAVING 子句:消耗资源,在检索出所有记录之后才对结果集进行过滤,需要 排序等操作 5.SELECT 子句,少用 * 号 6.ORDER BY 执行顺序 从左到右,消耗资源 1.5 查询语句注意事项 1.SELECT 可以使用 +-*/ 四则运算和函数,数字类型都可以运算,日期只能加 减操作 2.salary *1.2 sal 其中 sal 为 salary*1.2 的别名别名本身不区分大小写,可以用 “” 来区分 3.不等于 <> 4.AND 和 OR, AND 的优先级大于 OR,可以通过括号来提高 OR 的优先级 5.LIKE/NOT LIKE 模糊查询, % 代表 0 个或多个字符,_代表一个且只能为一个 字符 6.IN/NOT IN 判断是否在列表中,常用来判断子查询的结果 7.BETWEEN AND 判断在两者之间 8.IS NULL/IS NOT NULL 是否为空 9.ANY 满足一个一个即可, ALL 满足所有, 这两个都不能单独使用,需要配合单 行比较操作符来使用,常用于子查询 ANY(list) 大于列表中最小的,>ALL(list) 大于列表中最大的 10.DISTINCT 关键字,对查询结果指定字段进行去重,DISTINCT 必须只放在 SELECT 后面,否则会报缺少表达式错误 DISTINCT 后面跟一个就是筛选单个字段,跟多个就是筛选多个字段 筛选多个字段规则就是,将多字段组合起来看是否相同 11.ORDER BY [ASC|DESC] 升序|降序,默认为升序,必须出现在 SELECT 字句 的最下面 2
ORDER BY 子句中出现的字段一定要是 SELECT 中查询结果中的字段, 否则会报错(不是 SELECTed 表达式) 其中多个比较字段,按照先后顺序,前面的字段相等时,再根据下一个字段 的比较规则来进行比较 每个字段都可以单独指定排序规则 排序字段中含有 NULL 值,其中 NULL 值被视为 最大值 12.聚合函数,又叫多行函数,分组函数,用来对结果集某些字段的值进行统计,都忽 略 NULL 值 MAX/MIN 求给定字段的最大/最小值, AVG 求给定字段的平均值, COUNT 返回查询结果中给定字段中不为 NULL 的记录数 如果在一个查询中使用了聚合函数,则任何不在聚合函数中的列或表达式都 必须出现在 GROUP BY 子句中,但是 GROUP BY 中可以有 SELECT 中未出现的列(字段) 查看表的记录数可以使用 SELECT COUNT(*) FROM table_name 13.GROUP BY 可以将结果集按照指定的字段值相同的记录看做一组,然后配合 聚合函数进行更细分的统计工作 如果在一个查询中使用了聚合函数,则任何不在聚合函数中的列或表达式都 必须出现在 GROUP BY 子句中,但是 GROUP BY 中可以有 SELECT 中未出现的列(字段) GROUP BY 可以根据多个字段分组,分组原则为这几个字段值都相同的记 录看做一组 默认排序规则为升序,可以用 ORDER BY 进行排序 HAVING 和 GROUP BY 一起使用 时,可以使用 聚合函数,如 果不和 GROUP BY 一起使用,和 WHERE 功能一样, HAVING 放在 GROUP BY 之后 14.WHERE 不能使用聚合函数,HAVING 配合 GROUP BY 可以使用聚合函数 综合实例: SELECT DISTINCT name, salary*1.2 sal, MAX(id), name, job, age FROM stu WHERE (name LIKE 'x%') AND (salary >= 1000) AND (job IN(' 员 工 ')) AND (salary BETWEEN 200 AND 200000) AND (birth IS NOT NULL) AND (salary > ANY(100, 1000, 10000)) AND (salary < ALL(1000000, 10000000)) GROUP BY name, job, age, salary*1.2, gender ORDER BY age DESC, salary*1.2 DESC6 1.6 子查询 // 查询薪水比 CLARK 高的员工名字及薪水 3
SELECT ename, sal FROM emp WHERE sal > (SELECT sal FROM emp WHERE ename = 'CLARK') // 查询和 CLARK 同职位的职工的名字和岗位 SELECT ename, job FROM emp WHERE job = (SELECT job FROM emp WHERE ename = 'CLARK') SELECT ename, deptno FROM emp WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'CLARK') DDL 使用子查询 子查询创建表 1.子查询中的字段有别名则该表对应字段就使用该别名作为其字段名 2.当子查询中的一个字段有函数护着表达式,那么该字段必须用别名 CREATE TABLE employee AS SELECT e.ename, e.deptno, e.sal, e.empno, e.mgr, e.job, d.loc, d.dname FROM emp e, dept d WHERE d.deptno = e.deptno(+) SELECT * FROM employee DROP TABLE employee DML 使用子查询 DELETE FROM employee WHERE deptno = (SELECT deptno FROM employee WHERE ename = 'CLARK') 单行单列子查询 SELECT ename, job FROM emp WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'CLARK') 4
多行单列子查询 1.使用多行比较操作符 IN, ALL, ANY, 其中 ALL 和 ANY 要配合单行比较操 作符 > >= <=一起使用 判断 = 时用 IN 查询工资大于 10 号部门任一工资的人员信息 SELECT ename, job, deptno, sal FROM emp WHERE sal > ANY(SELECT sal FROM emp WHERE deptno = 10) // <> 表示不等于 AND deptno <> 10 查询同部门的不是 SALESMAN 的其他职位 SELECT ename, job, deptno, sal FROM emp WHERE deptno IN (SELECT deptno FROM emp WHERE job = 'SALESMAN') AND job <> 'SALESMAN' 查询工资比 SALESMAN 和 CLERK 都高的员工信息 SELECT ename, job, sal FROM emp WHERE sal > ALL(SELECT sal FROM emp WHERE job IN ('SALESMAN', 'CLERK')) EXISTS 后面跟一个子查询,当该子查询可以查询出只少一条信息时,则 EXISTS 为真 查询有员工的部门是哪些 SELECT deptno, loc FROM dept d WHERE EXISTS(SELECT * FROM emp e WHERE e.deptno = d.deptno) 查询最低薪水比 30 号部门最低薪水高的部门 SELECT deptno, MIN(sal) FROM emp e GROUP BY deptno HAVING MIN(sal) > (SELECT MIN(sal) FROM emp 5
分享到:
收藏