pracle 笔记1

来源:互联网 发布:余国荔 知乎 编辑:程序博客网 时间:2024/06/08 04:26
一.SQL操作1. 语句:(一)查询:SELECT数据操作语句:DML(数据的插入INSERT、删除DELETE、修改UPDATE、合并MERGE) (二)合并:把一个表中的数据合并到另一个表中去,如果数据在原表中存在做UPDATE,否则INSERT(9I独有)。(三)事务控制语句:COMMIT 提交、ROLLBACK 回滚、SAVEPOINT 存储点(与 ROLLBACK 搭配使用)在回滚的时候可以回滚到某个存储点上。否则回滚到最初起点上。(四)数据定义语句(DDL):对对象操作。TRUNCATE 清除表中所有数据 /CREATE 创建 /DROP 删除 /ALTER 修改 (五)权限控制语句(DCL):GRANT 授予权限 /REVOKE 移除权限2. SQL语句说明:(1)语句文本的书写不区分大小写。(但字符串在作为值的时候要注意大小写)(2)语句可以写单行也可以写多行。(3)关键字不能缩写或跨行。(4)语句通常被分多行书写。(5)缩进被用于提高语句的可读性。3.对表的基本操作 建立一种简单的表我们已经在笔记一中进行的说明,当然表的结构需要改动时还需要其它的命令(在dos下操作)(1) 增加字段:alter table 表名 add (字段名 字段类型)(2) 删除字段:alter table 表名 drop column 字段名(3) 更改字段名: alter table 表名 rename column 旧字段名 to 新字段名(4) 修改字段: alter table 表名 modify( 字段 类型),(此时应注意的问题,更改时要看具体值情况之间的转达换, 改为字符类型时,必须要为空)not null约束是使用alter table .. modify (..,not null),来加上的。(5) 增加约束:alter table 表名 add constraint [约束名] 约束(字段); 只能够增加表级约束。(6) 解除约束:(删除约束) alter table 表名 drop 约束; (对于主键约束可以直接用此方法,因为一张表中只有一个主键约束名, 注意如果主键此时还有其它表引用时删除主键时会出错)alter table 表名 drop primary key cascade; (如果有子表引用主键时,要用此语法来删除主键,这时子表还存在只是子表中的外键约束被及联删除了)alter table 表名 drop constraint 约束名;(7) 添加外键 alter table 表名 add constraint [约束名] foreign key(字段名) references 表名(字段名)(8) 使约束失效或者生效: i. alter table 表名 disable primary key; (相当于把一个表的主键禁用) ii. alter table 表名 enable primary key; enable 时会自动去检查表的记录是不是符合要求,如果有脏数据时必须要先删除脏数据才可以 enable (9) 重命名表: rename 旧表名 to 新表名(10) 删除表 :trucate table 表名, 表结构还在,数据全部删除,释放表所占的空间,不支持回退,常用删除大表1. drop table 表名 (11)当前用户的所有表: select table_name from user_tables;二.oracle权限1. 系统权限:对表的权限a) 创建用户之后,还不能对创建表b) 授权: i. grant connect to 用户名(连接的权限) ii. grant resource to 用户名(访问资源的权限) iii. grant create session to 用户名 iv. grant create table to 用户名(有了创建表的权利就能对表进行其它的操作) v. grant unlimited tablespace to 用户名 vi. 对所有的用户有授予这个权限:grant create table to public(public 表示所有的用户) vii. 撤销权限:把grant换成revoke viii. 查看当前用户的系统权限:select * from user_sys_privs(系统提供的表,用户提供系统信息) ix. create table 与create any table的区别:前者只能给当前用户创建表 ,而后者可以给其它的用户创建表2. 对象权限:用户与用户之间的权限。如果不授权的话,当前用户是不能访问另外一个用户的表(对于普通用户来讲) , 对象权限可以控制到列上 i. 把当前用户表的权限授予给另外一个用户:grant select/insert[某列]/delete/update[某列] on 表名 to 用户名,这样另外一个用户就可以对当前用户指定的表进行基本操作 ii. 授予所有的权限给另外一个用户: grant all on 表名 to 用户名 iii. 查看当前用户的对象权限: select * from user_tab_privs; &n