常用DDL语句集合

  • 创建表

    sql CREATE TABLE MATERIAL( ID NUMBER(20) NOT NULL, COMPANY_ID NUMBER(20), COMPANY_NAME NVARCHAR2(255) );

  • 新增主键

    alter table MATERIAL add primary key(ID);

  • 表加注释comment on table MATERIAL is '物料主数据表';

  • 字段加注释

    comment on column MATERIAL.ID is '主键ID';

  • 删除数据

    delete from MATERIAL where ID = #{value};

  • 创建索引

    create index MATERIAL_ID_INDEX on MATERIAL(MATERIAL_ID);

  • 删除索引

    drop index MATERIAL_ID_INDEX;

常用DCL语句集合

  • 创建表空间
    格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小

    bash SQL> create tablespace APPS_TS_TX_DATA datafile ’D:_TS_TX_DATA.dbf’ size 2000M;
    表空间已创建。
    
  • 创建用户

    create user root identified by 123456;
    root:登陆账号
    123456:登陆密码

  • 创建用户并分配表空间

    create user root identified by 123456 default tablespace 表空间表;

  • 重新指定用户默认表空间

    alter user root default tablespace userspace;

    bash SQL> alter user APPS default tablespace APPS_TS_TX_DATA;
    用户已更改。 
    
  • 修改用户密码

    alter user root identified by 123456;

  • 删除用户

    drop user root;
    若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。

    drop user root cascade;

  • 命令行登陆数据库

    sql sqlplus /nolog; conn root/123456@cgmro;

    cgmro:服务名称(在安装数据库或新建数据库的时候自定义的名称)

  • 查询数据库Service Name

    select global_name from global_name;

  • 给新添加的用户授权(权限分两种:系统权限和对象权限,都使用以下sql操作)

    grant create session to root;
    常用系统权限:
    查询所有系统权限:

    select distinct p.privilege from user_sys_privs p order by p.privilege asc;
    查询所有对象权限:

    select distinct t.privilege from user_tab_privs t;

  • 获取当前登陆数据库的用户名

    show user;

  • 给当用户root授权系统管理员权限

    grant dba to root;

  • 撤销权限

    revoke dba from root;

    • Oracle为兼容以前版本,提供三种标准角色:connectresourcedba.

      resource role(资源角色)
      更可靠和正式的数据库用户可以授予resource role。resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

      dba role(数据库管理员角色)

      dba role拥有所有的系统权限包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
      connect role(连接角色)
      临时用户,特指不需要建表的用户,通常只赋予他们connect role,connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)


历史问题日志

2020年9月1日 13点28分

客户现场使用的是Oracle 11g的版本,以下所涉及的内容均以该版本为基础

安装数据库后遇到的几个问题:

  • 需要留意是刚安装的时候有个Service Name,这个会在以后链接数据库的时候会用上,务必要记住它,记不住也没关系,使用该SQL进行查询select global_name from global_name;
  • 还需要留意的是,安装时会给个默认的数据库管理员账号orcl,这个账号只能本地登陆,内网用户想要访问数据库需要新建用户,新建完用户后执行grant create session to root给账号授权
  • 安装完Oracle后,本地1521端口本地可访问,但内网telnet不通
    运行安装完Oracle后附带的软件Net Mannager,在【Oracle Net配置】-【本地】-【监听程序】-【LISTENER】中添加地址,协议为TCP,主机为当前电脑的名称(我的电脑右键属性中可以找到),端口为1521,配置好后关闭当前窗口会提示是否保存,点击保存即可.
  • 本地和内网均可telnet通1521端口,但是jdbc连接不上
 1. 打开Net Configuration Assistant
        2. 选择监听程序配置,下一步
        3. 选择重新配置,下一步
        4. 选择监听程序,默认,下一步(注:如果你的监听已启动,则出现提示框,选择是)
        5. 选择协议,使用默认的TCP协议,下一步
        6. 选择端口号,使用标准端口号1521,下一步
        7. 不配置另一个监听程序,选择否,下一步
        8. 监听程序配置完成,下一步

    **重配服务名,测试连接**

        1. 选择Net服务器配置,下一步
        2. 选择重新配置,下一步
        3. 选择数据库名,下一步
        4. 填写服务名,也就是你创建数据库时的全数据库名,下一步
        5. 选择TCP协议,下一步
        6. 填写主机名(可填写你的IP地址,也可填写你的主机名),使用标准端口号1521,下一步
        7. 进行测试,下一步
        8. 选择更改登录
        9. 填写用户名和口令,确定
        10. 测试连接成功,下一步
        11. 网络服务名,默认(和之前的数据库名一样),下一步
        12. 不配置另一个Net服务名,选择否,下一步
        13. Net服务名配置完毕,下一步,完成

        启动PL/SQLDeveloper,输入用户名和口令,登录成功