zoukankan      html  css  js  c++  java
  • oracle命令2

    使用DDL创建和管理表

    DBA角色:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构,并且系统权限也需要DBA授出,且DBA用户可以操作全体用户的任意基表,包括删除

    grant dba to user;   --user为用户表名

    进入system用户下给用户赋予DBA权限,否则无法正常登陆

    --创建表

    create table test1 (tid number,tname varchar2(20));

     

    --rowid 行地址

    select rowid,empno,ename,sal from emp;

    通过rowid可以查询到数据

    select * from emp where rowid='AAAMfPAAEAAAAAgAAJ';

    如果只想要表结构,那么只需要在子查询后加上一个where 1=2(假条件)

    --子查询创建表:保存20号部门的员工

    create table emp20 as select * from emp where deptno=20;

    --创建表:员工号 姓名  月薪 年薪 部门名称

    create table empinfo as select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname from emp e,dept d where e.deptno=d.deptno;

     --修改表:增加新列,修改列,删除列,重命名列,重命名表

     SQL> desc test1

    --增加新列

     alter table test1 add photo blob;

    --修改列

     alter table test1 modify tname varchar2(40);

    --删除列

     alter table test1 drop column photo;

    --重命名列

    alter table test1 rename column tname to username;

    --重命名表

    rename test1 to test2;

    --删除表

     

     drop table TESTDELETE;

    --查看回收站

    show recyclebin;

     --清空回收站

    purge recyclebin;

    ---删除表情况2

    --注意:管理员没有回收站

    --闪回删除 ---> 回收站

    flashback table emp20 to before drop;

    oracle 10g有6种 11g有7种闪回  : 闪回删除/闪回表/闪回查询/闪回版本查询/闪回事务查询/闪回数据库/闪回数据归档(11g才有)

    约束:

    在数据库开发中,约束是必不可少的,使用约束可以更好的保证数据的完整性。在Oracle数据库中,约束的类型包括:

    主键约束:Primary Key

    非空约束:Not null

    唯一约束:Unique

    外键约束:Foreign Key

    检查性约束:Check

      create table student

      (

       sid number constraint student_pk primary key,

      sname varchar2(20) constraint student_name_notnull not null,

      gender varchar2(2) constraint student_gender check (gender in ('男','女')),

      email varchar2(40) constraint student_email_unique unique

                constraint student_email_notnull not null,

      deptno number constraint student_fk references dept(deptno) on delete set null

      );

    外键约束:

    FOREING KEY:在字表中,定义一个表记的约束

    REFERENCES:指定表和父表中的列

    ON DELETE CASCADE:当删除父表时,级联删除字表记录

    ON DELETE SET NULL:将字表的相关依赖记录的外键值置为null

    其他数据库对象

    什么是视图:视图就是封装了一条复杂查询的语句。

          视图是一个虚表。最大的优点就是简化复杂查询。

    create or replace view empinfoview as 

      select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname

      from emp e,dept d

        where e.deptno=d.deptno

      with read only;

     

    注意:不建议通过视图对表进行修改

    删除视图:drop view view名;

    什么叫序列:主要是用于提供主键值,以供主键增长,存在内存中,提升访问效率。

    create sequence myseq;

     

     

     什么是索引:索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低  i/o  次数,从而提高数据访问性能。(如:书的目录)

     

    --SQL的执行计划

     explain plan for select * from emp where deptno=10;

     select * from table(dbms_xplan.display);

    --创建目录(索引)

     create index myindex on emp(deptno);

    explain plan for select * from emp where deptno=10;

    通过执行计划的CPU可以看出有索引的更好;

     

    select count(*) from hr.employees;

    --为hr.employees起别名  ---> 同义词

    create synonym hremp for hr.employees;

    select count(*) from hremp;

     

  • 相关阅读:
    心血来潮学python
    lua中的table、stack和registery
    wrapper for lua
    FT232RL变砖之后
    12.04 redmine
    Webpack 概念
    如何学习 Webpack
    React基础篇
    Intellij实用技巧
    一行代码搞定图片缩放、旋转、加水印
  • 原文地址:https://www.cnblogs.com/ttzzyy/p/8076007.html
Copyright © 2011-2022 走看看