zoukankan      html  css  js  c++  java
  • 关于oracle的基础增删改查操作总结

    ① 进入数据库:

     sqlplus“/as sysdba” 或者sqlplus / as sysdba

     注:完整格式:  sqlplus“用户名/密码@数据库名as sysdba”

     注:请注意,sqlplus非常撇脚,没能回删,没有方向键,等等,最好安装一个rlwrap。

     详情链接:http://blog.csdn.net/wjx515628/article/details/35238097

    ② 查看表空间(表空间就是库的意思)

     方法1:只查询所有表空间的名称


    select tablespace_name from dba_tablespaces;
     方法2:查询某张表所在的表空间的名称


    select * from user_tables where table_name=‘表名';
     方法3:查询当前用户默认的表空间


    Select default_tablespace from user_users;
     方法4:查看当前用户可以查看的所有表空间名以及其所拥有的属性


    Select * from sys.dba_tablespaces;
     方法5:查看所有用户的默认表空间和临时表空间


    Select username,default_tablespace,temporary_tablespace from dba_users where username like ‘%SYS%’;
    ③ 创建表空间(create tablespaces)(注:最好指定一下用户,只能由管理员才能创建)

     1)数据文件一个


    Create [temporary] tablespace 表空间自定义名称 datafile ‘linux系统自定义路径和以.ora结尾的文件名’ size <数值M> extent management local uniform size <数值M>;
     (注:放在oradata目录下,最好将不同用户的数据文件放在oradata下建立的对应用户名的文件夹中,放在其中,便于管理)

     2)数据文件多个

    Create [temporary] tablespace 自定义名 datafile ‘路径1’ size 数值M ,

    ‘路径2’ size 数值M ,

    ... ...

    [Extent management local]

    Uniform size 数值M;
    注:加了[temporary]后,新建的表空间是临时表空间,不加则是永久表空间。

    ④ 删除表空间

     方法1:


    Drop tablespace 表空间名;
     注:需要自己手动删除对应路劲下的数据文件

     方法2:


    drop talespace 表空间名 including contents and datafiles;
    ⑤ 修改表空间指定的数据文件的增大设定

     方法1:

    Alter database datafile ‘文件所在路径’ autoextend on next 数值m;
     注:表示在原有大小的基础上增加数值m(看数值是1还是多少,数值是正整数型的)

     方法2:

    Alter database datafile ‘文件所在路径’ autoextend on next 数值1m maxsize 数值2m;
     注:表示在原有大小的基础上增加数值1m,增加量直到数值2m为止!

    ⑥ 修改默认表空间

     查看目前设置的默认表空间和临时表空间(对未指定表空间和临时表空间的用户起作用):


    Select property_name,property_value from database_properties where property_name like ‘%TABLESPACE%’;
     类型1:在创建用户的时候没有指定默认表空间和临时表空间的时候起作用

     修改默认永久表空间:


    Alter database default tablespace 永久表空间名称;
     修改默认临时表空间:


    Alter database default temporary tablespace 临时表空间名称;
     注:在创建表空间的时候永久和临时就有区别,所以指定临时表空间名的时候不要指到永久表空间名;指定永久表空间名的时候也是一样的。

     类型2:将用户本来指定的默认表空间更换。

     更换用户的永久表空间:

    Alter user 用户名 default tablespace 表空间名称;
     更换用户的临时表空间:

    Alter user 用户名 temporary tablespace 临时表空间名称;
    ⑦ 表空间状态查看(是否在线)

     方法1:查看所有表空间的在线状态:

    Select tablespace_name,status from dba_tablespaces;


    ⑧ 表空间脱机(其实脱机就是用户不可访问,联机就是可访问)

    Alter tablespace 表空间 offline 选项四选一;
    解释:当表空间为脱机状态的时候,任何用户都访问不了的状态;(值得注意的是,system表空间无法脱机,因为数据库运行中,始终都会用到system表空间中的数据)。表空间脱机有如下四个选项:normal(正常),temporary(临时),immediately(立即),for recover(进行恢复)

    ⑨ 表空间联机

    Alter tablespace 表空间名 online;
    ⑩ 增加表空间数据文件(为表空间增加数据库文件)


    Alter tablespace 表空间自定义名称 add datafile ‘自定义路径’ size 数值M;
    ⑪ 查看表

     类型1:查看当前用户权限内的所有表空间的所有表,同时显示每张表的属性。


    Select * from user_tables;
     类型2:查看指定表空间下的所有表,只显示表空间名和表名

    SELECT TABLESPACE_NAME,TABLE_NAME FROM DBA_TABLES WHERE TABLESPACE_NAME='表空间名称';
    ⑫ 创建表(可以指定到某个表空间中)

     方法1:


    Create table 自定义表名(自定义字段名1 约束内容,自定义字段名2 约束内容,.. ..自定义字段名n 约束内容) [tablespace 已有表空间名字];
      [tablespace已有表空间名字]  这个表示为表指定表空间,有需要的时候才写。

     方法2:

    Create table 新表名 as <select语句>
     注:方法二中,可以让select语句中的查询条件不成立,这样就会建立一张数据为空的表格;方法二中得到的表格将不存在任何约束,需要自己添加。

     注:最后中括号中的内容为可加可不加,看是需要将表建立在默认表空间还是指定表空间中。

     数据类型:char(数值)  varchar2(数值)number(总位数,小数位数)date timestamp clob    blob

     注:表和索引一旦创建被指定表空间后,其所属表空间将无法修改;若想更改,就需要当网上搜(不想写~~~)

    ⑬ 删除表


    drop table 表名;
     注:表中列为其他表外键且有数据应先解除约束,或删除相关表

    ⑭ 修改表名


    Rename 旧表名 to 新表名
    ⑮ 查看表字段


    Desc 表名;
    ⑯ 增加表字段

    Alter table 表名 add 字段名 数据类型;
     注:comment on column表名.列名is '列注释,自定义';

     (注释中的命令是对字段进行注释)

    ⑰ 删除表字段


    Alter table 表名 drop column 列名;
    ⑱ 修改表字段类型


    Alter table 表名 modify(字段名 新的数据类型);
     (注,一般来说字段类型不可随便更改:大多数情况下,若实在需要改变,需要字段下没有数据;有的话,需要新建一个需求的类型的字段列,然后将旧字段列的值移动到新字段中,从而实现类型更改。少部分情况可以直接修改类型不报错!一旦报错则按照大多数情况下的解决方法。)

     详情可见:

      点击打开链接

    ⑲ 修改表字段名称


    Alter table 表名 rename column 旧字段名 to 新字段名
    ⑳ 查看表数据(这个是重点,查询以后细讲)


    Select <*|列名|表达式> from 表名 [where 条件] [order by 列名]
     注:<>中必须三选一;列名集或后者混用集(逗号为分隔符)

     注:order by默认排序方式是升序。

    21 增加表数据

     方法1:

    Insert into 表名(列名1,列名2......) values(值1,值2......);

    Commit;
     注:可以将列名集合去掉,默认为所有列加值;字符串或者字符需要加引号。

     方法2:

    Insert into 表名 <select语句> [union <select 语句>];

    Commit;
    22 删除表数据

     方法1:

    Delete from 表名 where 条件;

    Commit
     方法2:

    Truncate table表名;

    Commit
     注:两者区别,delete可以将表清空,同时可以通过日志恢复;truncate清空之后不能通过日志恢复,不过它的清空速度很快!一般来说truancate慎用,最好不用!

    23 修改表数据

    Update 表名 set 列名1=值1,列名2=值2 .. .. where 条件;

    Commit;
    24 创建用户 (只是创建用户,不具备任何数据库权限)


    Create user 用户名 identified by 口令 [account lock|unlock]
     (注:如果是lock状态的话,用户无法正常登录;口令就是密码,不需要引号;后面的[]内的东西可以写可不写,默认unlock) (注:创建用户后最好为用户指定一下默认的表空间,那么该用户所有的数据库对象都会放入表空间)

    25 删除用户


    Drop user 用户名 cascade
     注:删除用户的同时需要关注,其默认的表空间是否需要被删除。

    26 修改用户锁定状态


    Alter user 用户名 account lock|unlock
    27 为用户指定默认表空间


    Create user 用户名 identity by 密码口令 default tablespace 表空间名
    28 用户授权(系统权限只能有dba用户授权,对象权限由拥有该对象的用户授权)


    Grant <角色|权限> to 用户
     常用权限(角色抑或权限):connect,resource,DBA

    29 修改授权用户密码


    Alter user 用户名 identified by 新密码
    30 查看授权用户的密码

    select username,password from dba_users where username='SYSTEM';
     注意:在g11版本中,字段password将不显示值。

     所以可以查看还在使用默认密码的用户名:

    SELECT * FROM DBA_USERS_WITH_DEFPWD ;
     关于修改和查看密码的详细解析链接(只限于9-11g):

     点击打开链接

    31 回收权限


    Revoke 角色|权限 from 用户
    32 查看所有授权用户

    Select * from dba_users;
     注:该方式可以查到每个用户的相关属性,可以查询username字段的值

    33创建约束命令

    Alter table 已有表名 add constraint 自定义约束名 约束内容

  • 相关阅读:
    算法笔记--二分图判定
    算法笔记--最小表示法
    Codeforces 525A
    Codeforces 140D
    Codeforces C
    Codeforces 665C
    Codeforces 604B
    Codeforces 285C
    The Fewest Coins POJ
    Triangular Pastures POJ
  • 原文地址:https://www.cnblogs.com/banxian-yi/p/10636416.html
Copyright © 2011-2022 走看看