论坛首页 Java企业应用论坛

oracle学习笔记二

浏览 4211 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-23  

一.SQL操作

1.     语句:

(一)查询:SELECT

数据操作语句:DML(数据的插入INSERT、删除DELETE、修改UPDATE、合并MERGE

(二)合并:把一个表中的数据合并到另一个表中去,如果数据在原表中存在做UPDATE,否则INSERT9I独有)。

(三)事务控制语句: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

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics