当前位置:文档之家› oracle课堂笔记

oracle课堂笔记

1.INSERT插入数据语法
insert into 表名(列名1,列名2) values(值1,值2);

2.UPDATE修改数据语法
update 表名 set 列名=更新值,列名2=更新值 where 更新条件

注意:
没有指定修改条件,将修改表中的所有记录。
在UPDATE语句中也可以使用子查询。
3.DELETE删除数据
语法:
delete from 表名 where 删除条件

注意:
不指定删除条件,会删除所有的行。

4.事务
数据库事务:一组相关的数据改变SQL语句,这组SQL语句对数据的改变要么同时成功,要么同时失败。
事务的ACID属性:
原子性(Atomic):
指整个数据库事务是不可分割的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。
一致性(Consistency):
一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。
隔离性(Isolation):
指多个事务同时操作同一数据时,每个事务都有各自的完整数据空间。
持久性(Durability):
一旦事务完成,事务的结果应该持久化。
事务相关的环境变量—AUTOCOMMIT
Oracle数据库服务器默认为非自动提交事务模式。
SHOW AUTOCOMMIT; -- 查看
SET AUTOCOMMIT ON|OFF; --更改
隐式事务控制:
自动隐式提交事务:
执行一个DDL语句、执行一个DCL语句、从SQL*Plus正常退出(exit,quit)
自动隐式回滚事务:
强行退出SQL*Plus、客户端到服务器的连接异常中断、系统崩溃。
显示事务控制:(建议使用)
提交和结束事务:COMMIT;
回滚事务:ROLLBACK [TO 回滚点];
设置事务回滚点:SAVEPOINT 回滚点;


5.事务的隔离级别
SQL标准定义了四种隔离级别:
READ UNCOMMITTED: 读未提交数据。脏读、不可重复读、幻读都可能发生。它的事务隔离性最低。
READ COMMITTED:读已提交数据。不允许脏读。
REPEATABLE READ:可重复读。不允许不可重复读,脏读。
SERIALIZABLE:串行化。不允许任何并发事务问题。最严格的事务隔离性。
Oracle只支持READ COMMITTED和SERIALIZABLE。
默认为READ COMMITTED
设置一个事务的隔离级别
set transaction isolation level serializable
设置整个会话的隔离级别
alter session set isolation_level=serializable;

6.用户管理
1.创建用户语法:
CREATE USER 用户名 IDENTIFIED BY 密码;
2.修改用户密码:
ALTER USER 用户名 IDENTIFIED BY 新密码;
3.锁定用户:
ALTER USER 用户名 ACCOUNT LOCK;
4.解锁用户:
ALETER USER 用户名 ACCOUNT UNLOCK;
5.删除用户:
DROP USER 用户名;
7.权限管理
权限(privilege):用户执行某项操作的权力。
一个用户要在数据库中执行某项操作,必须为该用户授予执行这些操作所需的权限。
新创建的用户没有任何权限,就连连服

务器的权限都没有。
Oracle数据库中的权限分为:
系统权限:允许用户在数据库中执行特定的操作。
如:执行DCL、DDL语句
对象权限:允许用户针对数据库对象执行特定的操作。
如:对表执行DML语句。
向用户授予系统权限:
GRANT 权限名[,权限名2,...] TO 用户名;
示例:GREANT CREATE SESSION,CREATE TABLE TO test;
每个用户都可以通过user_sys_privs表查看所具有的系统权限。
撤消用户的系统权限:
REVOKE 权限名[,权限名2,...] FROM 用户名;
向用户授予对象权限:
GRANT 权限名[,权限名2,...] ON 方案名.对象名 TO 用户名;
示例:GRANT SELECT ON scott.emp TO test;
每个用户都可以通过user_tab_privs_made表查看自己向其他用户开放了哪些对象权限。
撤消用户的对象权限:
REVOKE权限名[,权限名2,...] ON 方案名.对象名 FROM 用户名;

8.角色管理
角色(role):一组权限的集合。可分配给用户或其它角色。
Oracle10G内置的常用角色:
CONNECT:连接到Oracle的权限
SELECT PRIVILEGE FROM dba_sys_privs WHERE grantee = 'CONNECT';
RESOURCE:创建各种数据库对象的权限。
SELECT PRIVILEGE FROM dba_sys_privs WHERE grantee = 'RESOURCE';
DBA:数据库管理员所有权限
EXP_FULL_DATABASE:可把数据库整个备份输出的权限
IMP_FULL_DATABASE :可把数据库整个备份恢复输入的权限
将角色授予用户:
GRANT 角色名[,角色名2,...] TO 用户名;
示例:GRANT CONNECT,RESOURCE TO test;
用户可以通过user_role_privs表查询自己所拥有的角色。
撤销用户的角色:
REVOKE 角色名[,角色名2,...] FROM 用户名;

9.数据库的备份和恢复
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件
imp命令可以把dmp文件从本地导入到远处的数据库服务器中

10.表的创建

语法:
create table 表名(列名 数据类型 [default 默认值],列名2 数据类型,...);

修改表结构:
添加列:ALTER TABLE 表名 ADD(列名 类型 [DEFAULT 默认值]…);
修改列:ALTER TABLE 表名 MODIFY(列名 类型 [DEFAULT 值]…);
删除列:ALTER TABLE 表名 DROP COLUMN 列名;
为表重命名:
RENAME 表名 TO 新表名;

11.删除表
删除表:把表中所有的行和表结构都删除。
DROP TABLE 表名;
Oracle中删除表时并没有直接删除,只是放置到“回收站”
显示回收站中的对象:SHOW RECYCLEBIN;
恢复回收站中的表:FLASHBACK TABLE 表名 TO BEFORE DROP;
删除回收站中的表:PURGE TABLE 表名;
彻底删除:DROP TABLE 表名 PURGE;
截断表:删除表中所有的数据行,重置表的存储空间。
TRUNCATE TABLE 表名;

12.数据字典表
Oracle数据库中从表的功能和使用上把表分为两类:
用户表:由用户创建和维护的表。
数据字典表:Oracle数据库创建和

维护的表。也叫系统表。
它包含数据库自身的信息,用于支撑数据库的运行。
数据字典包括了一系列只读的表和视图(由SYS用户拥有)。所有用户或数据库管理员只能使用SELECT查询相关的数据字典信息。
在需要查询数据库相关信息的时候,主要通过三类字典视图查询:
dba_*:整个数据库包含的对象信息。(一般是管理员使用)
all_*:当前用户可以访问的对象信息
user_*:当前用户缺省方案中的对象信息

13.约束管理
创建表时指定约束:
CREATE TABLE [方案名.]表名(
列名 列类型 [default 默认值] [约束类型], …
[CONSTAINT 表级约束类型]
);
使用单独的SQL语句添加约束:
ALTER TABLE 表名
ADD [CONSTRAINT 约束名] 约束类型(要约束的列名);
ALTER TABLE 表名
ADD [CONSTRAINT 约束名]
FOREIGN KEY (要添加外键的列名)
REFERENCES 主表名(主表的某一列名);
约束名的建议:表名_字段名_约束类型、主表_从表_FK
删除约束:ALTER TABLE 表名 DROP CONSTRAINT 约束名;


相关主题
文本预览
相关文档 最新文档