Oracle数据库基础(2)
第八章 操作数据
1.描述DML语句
2.使用INSERT,UPDATE和DELETE命令操作数据
3.控制事务
数据操作语言
1.使用DML语句可执行:
1.插入新数据
2.修改已有数据
3.删除数据
2.一个事务是DML语句的逻辑工作单元
INSERT语句

插入空值

INSERT语句中使用函数

从其他表中拷贝记录

UPDATE语句


课堂作业:
1.

2.

3.

修改记录

使用多列子查询修改记录

修改记录时违反完整性约束

DELETE语句

从表中删除数据

删除的记录基于其他表的记录

数据库的事务
1.一组DML语句,修改的数据在他们中保持一致
2.一个DDL语句
3.一个DCL语句
4.开始于第一份执行的语句
5.结束于:
1.COMMIT或ROLLBACK
2.DDL or DCL(grant/revoke)语句
3.某些错误,退出,或系统崩溃
事务的自动处理
1.当下列情况发生时事务自动提交:
1.执行一个DDL语句
2.执行一个DCL语句
3.从SQL*Plus正常退出
2.当从SQL*PLUS中强行退出或系统失败时,十五万自动回滚
COMMIT和ROLLBAK的优点:
1.保证数据一致性
2.在数据永久性生效前重新查看修改的数据
3.相关逻辑操作单元
控制事务

提交或回滚前数据的状态:
1.以前的数据可恢复
2.当前的用户可看到DML操作的结果
3.其他用户不能看到DML操作的结果
4.被操作的数据被锁住,其他用户不能修改这些数据
提交后数据的状态:
1.数据的修改被永久写在数据库中
2.数据以前的状态永久性丢失
3.所有的用户都能看到操作后的结果
4.所有的savepoints被去掉
提交数据

回滚后数据的状态:

回退到某一个标识

语句回滚:
1.如果一条DML语句执行时失败,只有此语句回退
1.Oracle执行了一个自动的savepoint
2.其他的变化被保留
2.客户应该执行COMMIT或ROLLBACK以结束事务
事务特性:
事务的ACID特性:
1.原子性(atomicity):
一个事务中包含的所有sql语句都是一个不可分割的单元。
2.一致性(consistency):
事务必须确保数据库的状态是一致的。
3.隔离性(isolation):
多个事务独立运行,彼此不影响。
4.持久性(durability)
事务一旦提交,数据库的变化就会被永久保留下来。
读一致性:
1.读一致性保证了查询数据德奥一致的结果。
2.不同用户修改的数据不会发生冲突。
3.对相同的数据操作时确保:
1.查询时不用等写完成
2.写时不用等查询完成
第九章 管理表
数据库的对象

命名规则
1.必须以字母开头
2.可包括数字
3.只能包含A-Z,a-z,0-9,_,$,and#
4.不要使用oracle的保留字
5.同一用户的对象不能同名
创建表:
必须有:
1.建表的权限
2.有存储区域
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr];
可指定:
1.表名Table name
2.列名,列的数据类型,列的大小
引用其他用户的表

缺省选项

建表

查询数据字典

数据类型

使用子查询创建表

使用CTAS创建表


ALTER TABLE语句

增加列

修改列


删除表:
1.表中所有数据将删除
2.事务被提交
3.所有索引被删除
4.不能回退
SQL>DROP TABLE dept30;
Table dropped.
改变对象名称

截取表的所有记录
1.TRUNCATE TABLE语句:
1.删除表中所有记录
2.复位HWM
3.释放表的存储空间
2.不能回退
3.和DELETE一样,是删除记录的手段之一
SQL》TRUNCATE TABLE department;
Table truncated.
在表中加注释

课堂练习

第十章 约束
什么是约束(记忆):
1.约束是表级强制执行的规则
2.当表中数据有相互依赖性时,可保护数据不被删除
3.Oracle有如下类型的约束:
1.NOT NULL
2.UNIQUE Key
3.PRIMARY KEY
4.FOREIGH KEY
5.CHECK
约束概念:
1.Oracle使用SYS_Cn格式命名约束
2.创建约束:
1.在建表的同事创建
2.建表后创建
3.可定义列级或表级约束
4.可通过数据字典表查看约束。
创建约束


非空约束(NOT NULL)


唯一性约束(UNIQUE)


主键约束(PRIMARY KEY )

外键约束(FOREIGN KEY)

外键约束关键字
1.FOREIGH KEY
定义子表的哪一列作为外键约束
2.REFERENCES
指示主表的参照的列
3.ON DELETE CASCADE
删除主表记录时将子表相关记录删除
4.ON DELETE SET NLL
将外键引用置为空值
CHECK约束

加约束

删除约束

使约束失效

使约束生效

查看约束

查看约束建立在哪些列

第十一章 视图
什么是视图

为什么使用视图:
1.限制对数据的访问
2.很容易的写成复杂的查询
3.允许数据的独立性
4.不同的视图可获得相同的数据
简单视图和复杂视图

创建视图



查询UESR_VIEWS数据字典视图

修改视图

创建复杂的视图

对视图进行DML操作的规则
1.可对简单视图执行DML操作
2.在下列情况下不能删除记录:
1.视图包括组函数
2.视图包括GROUP BY子句
3.视图包括DISTINCT
4.Rownum为列关键词
3.在下列情况下不能修改记录:
1.前面所提到的情况
2.列是由表达式定义的
3.包括ROWNUM虚列
4.在下列情况下不能添加记录:
1.前面所提到的情况
2.视图的基表由非空列,但在视图中没有此列
使用WITH CHECK OPTION子句

删除视图

小结


课堂作业:



第十二章 其他数据库对象
数据库对象

什么是序列号
1.自动生成唯一的数字
2.是一个共享的对象
3.典型的应用于表的主键
4.可替代应用代码
5.将序列号值放在缓存中可提高访问速度
CREATE SEQUENCE语句

创建序列号

确认序列号

使用序列号

修改序列号

什么是索引:
1.是一种对象
2.使用指针加快记录访问速度
3.减小硬盘I/O
4.索引独立于表而存在
5.数据库自动使用和维护
怎么建索引:
1.自动:
唯一性索引自动被创建,当定义PRIMARY KEY或UNIQUE约束时。
2.手动:
使用CREATE INDEX命令
创建索引

创建索引规则:
1.索引列应该经常在WHERE子句中,或是连接条件。
2.此列值域比较广
3.此列包含大量空值
4.在WHERE子句或连接条件中经常一起使用的列
5.对大表查询的结果小于总数据的2~4%
6.下列的表不适合建索引:
1.表很小
2.列不经常在WHERE子句中使用
3.对大表查询的结果大于总数据的2~4%
4.表经常被修改
确认索引

删除索引

同义词

创建和删除同义词

第十三章 用户及权限
控制用户的访问

权限
1.数据库的安全性
1.系统安全性
2.数据安全性
2.系统权限:获得后可访问数据库
3.对象权限:操作数据库对象的内容
4.Schema:对象的集合(tables,views,sequences)
系统权限:
1.多余100种系统权限可用
2.DBA有最高系统权限
1.Create new users
2.Remave users
3.Remove tables
4.Backup tables
建用户


使用系统权限

授予系统权限

什么是角色

创建角色

改变用户口令

对象权限


授予对象权限

使用WITH GRANT OPTION和PUBLIC关键字

确认权限的数据字典表

收回对象的权限

小结



直接插入数据:

浙公网安备 33010602011771号