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;


oracle命令2的更多相关文章
- Oracle命令:授权-收回权限-角色
		Oracle命令:授权-收回权限-角色 oracle grant 不论授予何种权限,每条授权(grant)语句总是由三部分组成: 1) 接受者部分是准备获得权限的一个或多个用户的列表. 2)关键字权限 ... 
- Oracle命令行中显示:ORA-04076: 无效的 NEW 或 OLD 说明
		Oracle命令行进行操作时可能出现"ORA-04076: 无效的 NEW 或 OLD 说明" 需要在条件语句中JOB前面添加“old.”即可(因为是在when条件里面,所以不用“ ... 
- 给oracle命令的参数赋值
		''' <summary> ''' 给oracle命令的参数赋值 ''' </summary> ''' <param name="cmd& ... 
- Oracle命令类别
		Oracle命令类别: 数据操纵语言:DML: select; insert; delete; update; merge. 数据定义语言:DDL: create; alter; drop; trun ... 
- Linux下登录Oracle命令行时删除键^H解决方法
		Linux下登录Oracle命令行时删除键^H解决方法 在linux服务器下登录oracle的控制台,如果输入错误,想用删除键删除时却不能删除,输出的是^H的字符. 方法 用如下的命令可以使删除键生效 ... 
- oracle命令
		oracle创建表空间: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要 ... 
- oracle命令识记
		连接数据库 sqlplus /nolog; conn / as sysdba; set ORACLE_SID=实例名; 查看表结构命令 select table_name from user_tabl ... 
- oracle 命令创建用户 、授权、数据库导入、导出
		最近在使用oracle,经常要导入导出数据,命令很简单,却经常忘记,所以记下来.. drop user yfplss cascade;--登录system用户删除已存在的用户名,该用户下的所有东西都被 ... 
- oracle命令大全
		内容包括三大项: 1.oracle基本操作语句 2.SQLServer基本操作语句 3.各种数据库连接方法 ******************************************* ... 
- oracle命令1
		基础查询 查询当前用户 show user; 查询当前用户下的表 select * from tab; 清屏 host cls: clear; --查询所有的员工信息 select * from e ... 
随机推荐
- nyoj308-Substring
			#include<stdio.h> #include<string.h> #include<string> #include<math.h> #incl ... 
- postman(一):主界面模块解析
			在做接口测试时经常会用到postman,但是一直没有总结过,太过零散,这次找了一些好的资料,结合自己平时所用到的功能,总结一波 打开postman,主界面如下 左侧菜单 1.History标签 里面存 ... 
- Speak Confident English
			I hope you don'd mind me asking... I know I shouldn't ask, but.... - Well, before I answer that ... 
- style.width与offsetWidth的区别
			1. style.width只能读取内联样式,offsetWidth都可以读取: 2. style.width读取的值带“px”单位,offsetWidth读取纯数值: 3. style.width获 ... 
- Python 小节回顾
			1.python程序是大小写敏感. 2.python中字符串是用单引号 ' 或双引号 " 括起来的任意文本. python中用 r ' ' 表示 ' ' 内部的字符串不转义. 3.在pyt ... 
- 『Python CoolBook:Collections』数据结构和算法_collections.deque队列&yield应用
			一.collections.deque队列 deque(maxlen=N)构造函数会新建一个固定大小的队列.当新的元素加入并且这个队列已满的时候,最老的元素会自动被移除掉. 如果你不设置最大队列大小, ... 
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)
			梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ... 
- SocketServer模块,hmac模块验证client合法性
			hmac模块: 1.模块初识: import hmac # h = hmac.new() #括号里要给它连个bytes类型,一个是自定义的secret_key,一个是你想进行加密的bytes # 密文 ... 
- nginx概述
			1)nginx的特性: 模块化设计,较好的扩展性 高可靠性 master/worker 支持热部署 不停机更新配置文件,更换日志,更新服务器程序版本 低内存消耗 支持event-driven,alo, ... 
- 基于FPGA的1553B通信模块的设计(转)
			reference:http://www.21ic.com/app/eda/201808/798483.htm https://www.milstd1553.com/ [导读] 摘 要: 提出一种将F ... 
