Oracle学习系列7
Oracle学习系列7 ************************************************************************************ 关联表的约束: 强制删除关联表中的父表: drop table tab_name cascade constraint ; 约束本身是可以修改的,但是不建议修改约束 知识点: ,掌握视图的作用及定义 ,掌握序列的使用:SEQUENCE ,掌握PowerDesigner设计工具的使用 ,了解同义词,了解用户管理,了解嵌套表及可变数组 ,理解数据库的设计范式 -------------------------------------------------------- ,视图: 封装了一条复杂的查询语句 语法: create view view_name as 子查询 {with check option | with read only } ; //不能更新视图的创建条件,不能更改视图数据 建立一个视图,此视图包含了全部部门20的信息: create view view_emp20 as select empno,ename, job,hiredate from emp ; 查询视图: sele * from view_emp20 ; 删除视图: drop view view_name ; ex: drop view view_emp20 ; 完整语法格式: create or replace view view_name as 子查询 //系统会为用户自动进行删除及重建的功能 ex: create or replace view view_emp20 as ) years from emp e, dept d where e.deptno=d.deptno group by d.dname ; 更新视图: 修改视图中7369的部门编号: update view_emp20 ; //提示更新成功,但是视图表中无编号7369的雇员 -------------------------------------------------------- 序列(重点) 在oracle完成自动序列增长的功能,则只能依靠序列完成 格式: create sequence seq_name [increment by n] [start with n] [{maxvalue n |nomaxvalue}] [{minvalue n | nominvalue }] [{cycle | nocycle}] [{cache n | nocache }]; 删除: drop sequence seq_name ex:创建一个myseq的序列,验证自动增长的操作: create sequence myseq increment by ; 在序列中提供两种操作: nextVal:取得序列的下一个内容 currVal:取得序列的当前内容 创建表test_seq: create table test_seq( curr number, next number ); 使用序列: insert into test_seq(curr,next) values(myseq.currval,myseq.nextVal) ; -------------------------------------------------------- 同义词(了解): 功能:可以让其他用户通过一个名称方便的访问‘user.table_name’. 语法: create synonym syn_name for user.tab_name ; //建立 drop synonym syn_name ; //删除 ex: create synonym dual for sys.dual ; ------------------------------------------ select sysdate from dual ;//dual是张虚拟表 conn sys/change_on_install as sysdba ; select * from tab where TNAME='DUAL';//在sys用户下存在此表 -------------------------------------------------------- 用户管理(了解): 语法: create user user_name identified by passwd //创建用户(sys用户权限) [default tablespace default_tablespace] [temporary tablespace temporary_tablespace ] grant 权限1,权限2,权限3.. to user ;//给用户授权 create session alter user user_name identified by passwd_new ; //修改用户密码 eg: create user kevin identified by root ; grant conncet, resource to kevin ; 角色:connect 、resource //每个角色有好多不同的权限 解/锁住用户: alter user user_name account lock /unlock; eg: alter user kevin account lock /unlock ; 授权emp表: grant 权限1,权限2 on user_name.tabl_name to user_name ; 将scott用户下的emp表的查询权限及删除权限给kevin: grant select ,delete on scott.emp to kevin; 回收权限: revoke 权限1,权限2,.. on user.tab_name from user_name ; eg: revoke select ,delete on scott.emp from kevin ; grant/(revoke) 权限1,权限2,权限3 on user.tab_name to / (from) user_name ; -------------------------------------------------------- 数据库的备份与恢复(了解): 数据库备份: exp D:\data>exp 数据库恢复: imp D:\data>impf 查看错误:show error -------------------------------------------------------- 嵌套表(了解): 在一个表中包含另外一个子表 //创建project_ty类型 create type project_ty as object( proid number(), proname varchar(), prodate date ) ; / //最后一个‘/' 不可少 //使用porject_nt类型 create type project_nt as table of project_ty; / //最后一个‘/' 不可少 create table department( deptno number() primary key not null, dname varchar2() not null, projects project_nt ) nested table projects store as project_nt_tab_temp ; 对于插入数据来讲,需要指定每个project_ty的数据类型 insert into department(deptno,dname,projects) values( ,'技术部', project_nt( project_ty(,'erp',sysdate), project_ty(,'crm',sysdate), project_ty(,'oa',sysdate), ) ); 查询: select * from department ; 若此时需要查看一个部门的全部项目的话,则需要查询嵌套表: ) ; 更新: update table ( ) pro ','测试项目',to_date('2016-02-12','yyyy-mm-dd')) ; -------------------------------------------------------- 可变数组(了解): 属于嵌套表的升级版,在可变数组中手机上就是将内部的嵌套表的内容的长度进行了限制。 //定义类型 create type worker_info as object( id number, name varchar2(), sex varchar2() ); / //定义数组类型 create type worker_info_list ) of worker_info ; / //创建可变数组表 create table department( deptno number() primary key not null, dname varchar2() not null, workers worker_info_list ); //插入数据 insert into department(deptno,dname,workers) values( ,'后勤部', worker_info_list( worker_info(,'dustin','F'), worker_info(,'kevin','F'), worker_info(,'allen','M') ) ); -------------------------------------------------------- 数据库设计范式(了解): .第一范式(确保每列保持原子性) .第二范式(确保表中的每列都和主键相关) .第三范式(确保每列都和主键列直接相关,而不是间接相关) -------------------------------------------------------- 数据库设计工具(重点): powerDesigner工具的使用
Oracle学习系列7的更多相关文章
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- Oracle学习系列6
Oracle学习系列6 ************************************************************************************ 删除约 ...
- Oracle学习系列5
Oracle学习系列5 ************************************************************************************ ,掌握 ...
- Oracle学习系列4
Oracle学习系列4 ************************************************************************************ 数据库 ...
- Oracle学习系列3
Oracle学习系列3 ************************************************************************************ 多表查 ...
- Oracle学习系列1
两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 300 ; set pag ...
- oracle学习系列之四 (视图)
视图视图是数据库中特有的对象.视图用于存储查询,但不会存储数据(物化视图除外).这是视图和数据表的重要区别.可以利用视图进行查询,插入,更新和删除数据.Oracle有如下四种视图(关系视图,内嵌视图, ...
- oracle学习系列之三 (约束)
主键约束:外键约束:唯一性约束:检查约束:默认值约束 -——————五大约束 一. 主键约束: --创建表的主键约束 create table student (student_id number ...
- Oracle 学习系列之二(会话与事务级临时表和dual表 )
一. 会话临时表 --创建会话临时表create global temporary table tmp_user_session(user_id int, user_name varchar2(20) ...
随机推荐
- iOS 推送通知处理
//这是程序杀死后再通过点击通知进入时调用的方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...
- 【转载】协同过滤 & Spark机器学习实战
因为协同过滤内容比较多,就新开一篇文章啦~~ 聚类和线性回归的实战,可以看:http://www.cnblogs.com/charlesblc/p/6159187.html 协同过滤实战,仍然参考:h ...
- 进程、线程、socket套接字-资源大小 & 切换代价
另,进程 & 线程的很多知识可以看这里:http://www.cnblogs.com/charlesblc/p/6135666.html 今天查了一下进程和线程的资源占用. 比如问:栈和堆的大 ...
- [css] 页面重构“鑫三无准则” 之“无宽度”准则
原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=1152 一 ...
- hiho_1141
题目 按顺序给出N个数字,求出所有的逆序对个数(逆序对指数字 Ai > Aj且 i < j) 题目链接:hiho_1141 数据规模为 100000,必须使用O(nlogn)的算法 ...
- Retrofit 2.0使用
最近在想能不能把之前项目里的网络请求改下 想通过Retrofit重构下,因为Retrofit完美兼容Rxjava后面会用到Rxjava 所以 开个坑写点 由于网上Retrofit 2.0的架构介绍很详 ...
- 0518 Scrum 项目 5.0
燃尽图: Sprint 1看板: 成员 团队贡献分 许佳仪 22 柯晓君 21 卓宇靖 18 赖文亮 19
- js调用父窗口中的方法
window.open调用父窗口中的方法 回调函数: function fun9(ex){ alert(ex); } 调用语句: window.open("RoomSelecter.htm? ...
- jQuery经典面试题及答案精选(转)
jQuery是一款非常流行的Javascript框架,如果你想要从事Web前端开发这个岗位,那么jQuery是你必须掌握而且能够熟练应用的一门技术.本文整理了一些关于jQuery的经典面试题及答案,分 ...
- cookie 路径问题
Path – 路径.指定与cookie关联的WEB页.值可以是一个目录,或者是一个路径.如果http://www.zdnet.com/devhead /index.html 建立了一个cookie,那 ...