当前位置:首页>微思动态 > >详情
全国热线电话 400-881-4699

在线留言

【收藏】oracle OCP学习笔记

发布作者:微思网络   发布时间:2020-07-02   浏览量:0

以下是我在微思oracle OCP培训时的学习笔记,共享给大家参考:

1、orcale不区分大小写,标志符(表名,列名,别名等)是区分大小写的;标志符没有加双引号,默认自动转换为大写执行

2、orcale中双引号作用:转义非法标志符为合法,强制标志符原始大小写执行

3、oracle中日期类型没有常量这一说,默认日期字符串格式dd-mon-rr

4、oracle空值和任何值作比较运算结果一定为假,oracle数据库没有布尔值true和false

5、in(值列表):如果表达式等于值列表中的任意一个值,就为真;not in(值列表):表达式不等于值列表中的任意一个值,才为真

6、like:模糊查询 not like 逻辑非,通配符%代表0到多个任意字符 _代表1个任意字符

7、排序子句:order by 排序表达式 asc升序(不写默认) desc降序,排序操作非常耗费资源,大量数据排序,必须提前做好数据库的优化

8、单行函数,每次执行函数,传入一行列值,返回一个结果;多行函数,每次执行函数,传入多行列值,返回一个结果

9、RDBMS关系型数据库管理系统:核心就是表和表之间的关系

主表:数据被从表引用

从表:从主表中引用数据

主键:主表中的唯一标识列,主键的值不能重复,不能为空

外键:从主表中引用主键数据的那一列,外键值可以重复,也可以为空,必须是引用的主键列中存在的值

表和表之间的三种关系:

一对多:主表的一条记录对应从表的多条记录

一对一:主表的一条记录对应从表的一条记录

多对多:一个表的多条记录对应另一个的多条记录(必须通过中间表来衔接,由两个一对多关系间接形成)

10、数据库设计三范式:

第一范式:列不可分割(列的数据必须明确,不能一个列表达两个数据)

第二范式:表必须有一个主键标识符

第三范式:从表中不能出现引用主表中的非主键列

11、SQL99连接查询,效率比92语法高

内连接:inner join,仅查询满足连接条件的数据(默认)

外连接:查询满足连接条件的数据,不满足连接条件的数据也返回

左外连接:left outer join

有外连接:right outer join

满外连接:full outer join

连接条件:on 连接条件表达式

自连接:把一个表看成两个表

12、分组函数

sum求和、avg求平均值、max求最大值、min求最小值、count计数

13、子查询:查询语句中包含的查询,也称为嵌套查询,主查询子查询(外查询内查询),如果同时能使用子查询和连接查询实现,尽量使用连接查询,效率高,子查询必须写在括号中,尽量写在条件右侧,提高效率

14、any:逻辑或,例如 >any;all:逻辑与,例如 >all

15、 标准子查询 相关子查询(内外交互式相关子查询)

执行顺序 子查询先,主查询后 主查询先,子查询后

使用数据 主查询使用子查询结果 主查询和子查询互相使用查询结果

执行次数 执行一次 执行次数=主查询的结果集的行数

16、exists(子查询):如果查询有结果,返回真,否则返回假;not exists(子查询):如果子查询有结果,返回假,否则返回真

17、数据事务transaction:保证一个操作的完整性,要么一起成功,要么都不执行

事务的ACID四个特性:

原子性:提个实务操作必须是一个完整操作,要么一起成功,要么都不执行

一致性:必须从一个正确的状态直接过度到下一个正确的状态

隔离性:一个会话无法访问另一个会话未提交的数据(脏数据)

持久性:事务一旦提交,数据改变会直接持久化到数据库,其他会话可以访问,不能回退

开始事务:任意一条DML都会开启一个新事务

结束事务:

提交事务:

commit语句

DDL,DCL语句自动提交事务

正常退出客户端工具(例如命令行exit退出)

回退事务:

rollback语句

异常退出客户端工具

18、锁机制:避免用户并发访问数据,锁在事务结束后被释放

锁按照粒度划分:行级锁和表级锁

锁按照类型划分:

共享锁(s锁):如果一个资源(行、表)加上了共享锁,其他会话可以给这个资源也加上共享锁,但是不能加独占锁

独占锁(x锁,排他锁):如果一个资源(行、表)加上了独占锁,其他会话不能给这个资源加任何锁

锁按照加锁方式划分:自动锁和手动锁

自动加锁的情况:

查询语句:默认不加任何锁

DML语句:行独占锁,表共享锁

DDL语句:表独占锁

手动加锁:

查询加锁:查询语句 for update;(行独占锁,表共享锁,会像DML一样开启事务)

手动锁表:

乐观锁定:lock table 表名 in share mode;

悲观锁定:lock table 表名 in exclusive mode;

死锁:两个会话的事务相互等待对方释放锁才能继续向下进行

19、DDL(数据定义语言):创建(create table),修改(alert table),删除(drop table)数据库对象

数据表的分类:用户表和系统表(数据字典)

用户表 :用户自己创建的数据表

系统表(数据字典):数据库本身创建维护的,存储的是系统信息

清空表 delete truncate

可以回退 不能回退

逻辑删除 物理删除

记录日志 不记录日志

20、约束:限制对表的DML操作,约束既可以创建表同时添加,也可以表创建后追加

not null :非空约束

primary key:主键约束,限制主键列值不能为空且不能重复,一个表只能有一个主键,一个主键可以由多列组成

unique:唯一值约束,限制列值不能重复,不限制空值,一个表可以有多个唯一值约束

check:检查约束, 限制列值符合自定义条件,忽略空值检查,空值不做检查

foreign key:外键约束, 限制外键列值必须是引用的主表中的主键列中存在的值

追加约束

alter table 表名

add constraints 约束具体设置:

外键级联删除:删除主表数据会自动删除引用的从表数据

外键级联置空:删除主表数据会自动级联引用的从表外键为空值

21、set集合运算:把多个查询结果进行并集,交集和补集运算,多个查询结果必须是列的个数,顺序,类型保持一致

并集union(自动消除重复行)

并集union all(不消除重复行)

交集intersect

补集minus


返回顶部