现在的位置: 首页 > 综合 > 正文

pracle 笔记1

2014年03月17日 ⁄ 综合 ⁄ 共 1955字 ⁄ 字号 评论关闭
一.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

抱歉!评论已关闭.