C/C++教程

Oracle数据库管理

本文主要是介绍Oracle数据库管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一. 用户管理

  1. 用户创建

  关键字:user

  语法: create user 用户  identified by 密码

     [default tablespace  表空间名

      temporary tablespace  临时表空间]

     [account lock|unlock] 

     " [] " 内的内容为可选项

  例如:create user xiaoming identified by 123456 account lock;

  注意:在创建用户的时候如果没有指定表空间,默认用户保存到系统表空间中:SYSTEM。

     在创建用户的时候如果没有指定临时表空间,系统如果有需要会创建一个TEMP临时表空间。

     lock|unlock:设置账户的锁定状态,如果账户被锁定则不能正常使用。

  2. 修改用户

  (1) 解锁|锁定 账户:

    语法:alter user 用户名 account unlock|lock;

     alter user xiaobai account unlock;

  (2) 修改用户密码:

    语法:alter user 用户名 identified by 新密码;

     alter user xiaobai identified by 123444;

  (3) 删除用户:

    语法:drop user 用户名 [cascade];

    注意:cascade:级联删除,如果用户没有任何数据库对象则不需要指定 cascade,用户下面有很多数据库对象则必须指定 cascade。

二. 权限管理

  一个用户创建出来时没有任何权限,所以不能进行数据库的登录以及其他操作,因此该用户想要操作数据库则必须赋予相应的权限。

  1. 系统权限:执行系统级别操作的一些权限。

   例如:登录数据库(create session),创建表(create table)等

  2. 对象权限:用户是否可以操作该用户下面的数据库对象中的数据的权限。

   例如:select,delete,update,insert...

  3. 执行语句

  (1)系统权限的授予:

    语法:grant 权限1,权限2,... to 用户名 [with admin option];

    with admin option:给予管理员权限,可以将管理员授予的权限授予给其他用户。

    例如:grant create session to xiaobai;(授予 xiaobai 登录的权限)

       grant connect,resource to xiaobai;(授予 xiaobai 连接的权限,connect 和 resource 为当前用户拥有的角色)

  (2)对象权限的授予:

    语法:grant 权限1,权限2,... on 用户名.对象名 to 用户名;

    例如:grant select on scott.emp to xiaobai; (授予xiaobai 查询 scott 用户中的 emp 表的权限)

  (3)系统权限回收:

    语法:revoke 权限1,权限2,... from 用户名;

    例如:revoke connect,resource from xiaobai;

  (4)对象权限回收:

    语法:revoke 权限1,权限2,... on 用户名.对象名 from 用户名;

    例如:revoke select on scott.emp from xiaobai;

  4. 查询系统中的所有系统权限:

   数据字典:dba_sys_privs:可以查询系统中授予给用户的所有对象。

   数据字段:dba_tab_privs:可以查询系统中的对象授予的对象权限。

    select * from dba_sys_privs;

    select * from dba_tab_privs;

三. 角色管理

  1. 角色可以理解为一组权限的集合,也就是说可以将多个权限进行打包,定义一个角色。

    数据字典:role_sys_privs:可以查询当前用户所拥有的角色

     select * from role_sys_privs;

    常见的角色:

     DBA:拥有所有的权限

     connect:登录数据库的权限

     resource:拥有常见数据库对象创建的权限

  2. 创建角色

   语法:create role 角色名;

    例如:create role role_test;

   注意:刚创建出来的角色是没有任何权限的,如果要使用该角色则需授予权限。

    例如:grant create session,create sequence,create table to role_test;

   将创建的角色授予给用户:grant role_test to xiaobai;

  3. 删除角色

   语法:drop role 角色名;

   注意:角色授予给用户之后也是可以删除的,如果角色删除了,拥有这个角色的用户也失去相应的权限。

四. 数据表管理

  在创建表的时候需要设置以下信息:

  (1)设置表名;

  (2)设置属性名;

  (3)规定属性的数据类型;

  (4)设置一些约束条件。

  1. 创建数据库表

   语法:create table 表名(

    列名 数据类型[(长度)] [约束条件],

    列名 数据类型[(长度)] [约束条件],

    ......

   );

   Oracle 数据库中的数据类型:

   (1)数值型

      number[(长度)],默认为11

      number(3):最大可以保存999的整数

      number(5,2):可以保存两位小数的浮点数字

   (2)字符串型

      char(长度):固定长度的字符串,如果存入的数据长度小于规定的长度,则剩下会使用空格填充。

             如果实际保存的长度大于规定的长度数据库报错。  

      varchar2(长度):可变长度的字符串,如果存入的数据长度小于规定的长度,则自动将长度设置为实际长度

             如果实际保存的长度大于规定的长度同样会报错。

   (3)时间类型

      date:时间类型

      timestamp: 时间戳类型

   (4)LOB类型

      BLOB:主要用来保存一些二进制,未被结构化的数据文件。

      CLOB:主要用来保存一些字符格式的文件。

      BFILE:主要用来保存一些二进制文件,但是并不会保存文件本身,只是保存文件的物理地址。

            该类字段是只读字段,只能由系统进行维护,用户只能看不能修改

   (5)rowId类型(伪列类型):

       主要用来保存表中的每一行数据的保存的物理地址

  2. 数据表的维护

   (1)新增字段

     alter table student_t add (字段名 数据类型,........);

   (2)删除字段

     alter table student_t drop column 字段名;

     alter table student_t drop (字段名,......);

   (3)修改字段

     alter table student_t modify (字段名 数据类型,......);

     alter table student_t rename column 旧的列名 to 新的列名

  3. 数据表的操作

   (1)修改表名

     alter table 表名 rename to 新的表名;

   (2)删除表

     drop table 表名 [cascade constraints];

     如果在删除的时候设置了cascade constraints,则会一起删除和该表相关联的约束条件

   (3)复制一张表

     create table 新表名 as select * from 旧表名

     只复制结构

     create table 新表名 as select * from 旧表名 where 1=2

五. 约束条件

  (1)非空约束:not null,不为空

 

  (2)唯一性约束:unique,不重复,为空时不限定

  (3)主键约束:primary key,主键,非空且唯一

  (4)外键约束:foreign key,外键

  (5)检查约束:check 用来限定字段的取值范围

  (6)默认值约束:default 添加数据时字段数据为空则设置为默认值

   设置方式:

    1. 在创建表的时候添加约束

     非空约束,唯一性约束,主键约束——> 字段名 数据类型 约束条件

     外键约束——> 字段名 数据类型 foreign key references 关联表名 (关联表的列名)

     检查约束——>  字段名 数据类型 check between 开始 and 结束

     默认值约束——> 字段名 数据类型 default 默认值

    2. 修改表数据类型的时候添加约束

     添加非空约束:alter table 表名 modify (列名 not null)

     添加默认值约束:alter table 表名 modify(列名 default 默认值)

    3. 修改表的方式添加约束

     添加非空,唯一性,主键约束:alter table 表名 add constraint 约束名 约束条件 (列名)

     添加外键约束:alter table 表名 add constraint 约束名 foreign key (列名)references 关联表名 (关联表的列名)

     添加检查约束:alter table 表名 add constraint 约束名 check (列名 between 开始 and 结束)

     添加默认值约束:alter table 表名 add constraint 约束名 default 默认值

    4. 如果表中有外键约束要删除数据则需要设置级联删除方式

     no action:不做任何处理,也就是在删除的时候如果有关联的数据则不允许删除。

     cascade:级联删除,在删除数据的时候会将另外一张表中所关联的所有数据都删除

     set null:允许删除,在删除之后会将另一张表所关联的数据设置为空

    5. 约束条件操作

     禁用和激活

      alter table 表名 disable constraint 约束名

      alter table 表名 able constraint 约束名

     删除

      drop table constraint 约束名

这篇关于Oracle数据库管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!