使用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;

oracle命令2的更多相关文章

  1. Oracle命令:授权-收回权限-角色

    Oracle命令:授权-收回权限-角色 oracle grant 不论授予何种权限,每条授权(grant)语句总是由三部分组成: 1) 接受者部分是准备获得权限的一个或多个用户的列表. 2)关键字权限 ...

  2. Oracle命令行中显示:ORA-04076: 无效的 NEW 或 OLD 说明

    Oracle命令行进行操作时可能出现"ORA-04076: 无效的 NEW 或 OLD 说明" 需要在条件语句中JOB前面添加“old.”即可(因为是在when条件里面,所以不用“ ...

  3. 给oracle命令的参数赋值

    ''' <summary>    '''   给oracle命令的参数赋值    ''' </summary>    ''' <param name="cmd& ...

  4. Oracle命令类别

    Oracle命令类别: 数据操纵语言:DML: select; insert; delete; update; merge. 数据定义语言:DDL: create; alter; drop; trun ...

  5. Linux下登录Oracle命令行时删除键^H解决方法

    Linux下登录Oracle命令行时删除键^H解决方法 在linux服务器下登录oracle的控制台,如果输入错误,想用删除键删除时却不能删除,输出的是^H的字符. 方法 用如下的命令可以使删除键生效 ...

  6. oracle命令

    oracle创建表空间: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要 ...

  7. oracle命令识记

    连接数据库 sqlplus /nolog; conn / as sysdba; set ORACLE_SID=实例名; 查看表结构命令 select table_name from user_tabl ...

  8. oracle 命令创建用户 、授权、数据库导入、导出

    最近在使用oracle,经常要导入导出数据,命令很简单,却经常忘记,所以记下来.. drop user yfplss cascade;--登录system用户删除已存在的用户名,该用户下的所有东西都被 ...

  9. oracle命令大全

    内容包括三大项:    1.oracle基本操作语句 2.SQLServer基本操作语句 3.各种数据库连接方法 ******************************************* ...

  10. oracle命令1

    基础查询  查询当前用户 show user; 查询当前用户下的表 select * from tab; 清屏 host cls: clear; --查询所有的员工信息 select * from e ...

随机推荐

  1. linux 因内存不足而 kill 掉 java 程序

    grep "Out of memory" /var/log/messages Sep 17 16:13:34 xxxaaa kernel: Out of memory: Kill ...

  2. 【NET Core】 缓存 MemoryCache 和 Redis

    缓存接口 ICacheService using System; using System.Collections.Generic; using System.Threading.Tasks; nam ...

  3. POJ 1088 滑雪(模板题 DFS+记忆化)

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  4. JxBrowser之三:常用函数setNetworkDelegate

    1.常用函数setNetworkDelegate,包含对网络传输数据状态的多种监控回调. 2.着重说一下其中的几个函数 BrowserContext browserContext = BrowserC ...

  5. 一个时代的终结:为什么是时候放弃ITOM四大巨头了?这对IT领导者来说意味着什么?

    ​​关注嘉为科技,获取运维新知 2018年7月,Broadcom宣布了收购CA Technologies的计划,收购额近190亿美元.虽然分析师对于芯片制造商收购企业级软件公司这件事是否值得还在进行激 ...

  6. 重写console.log的一些理解

    关于重写console.log的方式通常都是这样的: console.log = (function(oriLogFunc){ return function(str) { oriLogFunc.ca ...

  7. 字节顺序标记——BOM,Byte Order Mark

    定义 BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码.     介绍 UTF-8 不需要 BOM,尽管 Unico ...

  8. Mac OS 下安装nvm

    关于安装: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh 安装完成后关闭终端,重新打开终端输 ...

  9. node常用模块---path

    path---用来提供文件路径和文件之间的处理的函数 node常用模块之path

  10. 安装tifffile

    python的opencv和PIL不能很好地处理tiff图像,所以我就转用tifffile 但是tifffile也装了很近,因为我是远控别人的电脑,所以看不太清报错,就自己瞎猜,不过还是装好了 首先去 ...