ORACLE STUDY NOTES 02
【JSU】LJDragon's Oracle course notes In the first semester, junior year
I.用户和权限
1.用户操作
--创建新用户
--解锁用户
--修改密码
2.DCL授权语句
--GRANT 权限1,权限2,…… TO 用户; --授予开发人员权限
--授予对象访问权限
--授予创建会话的权限给LJL
3.DCL收权语句
--REVOKE 权限1,权限2,……FROM 用户;
--回收创建会话权限
--回收对象访问权限
--查询用户拥有哪些权限(SQLPlus)
--查自己拥有哪些系统权限
--删除用户
II.表管理
--创建学生表
--创建学生表(带列默认值)
- (
- stu_id NUMBER(6),
- stu_name VARCHAR2(50),
- );
--删除学生表
--删除表(直接删除)
--还原表
--利用子查询创建表
--常用数据字典
- --回收站的数据字典
修改表
--追加列
--修改列
- MODIFY (address VARCHAR2(200));
--删除列
- DROP (phone);
--重命名对象
- RENAME student TO stu;
--清空表
truncate与delete的区别:
delete truncate
事务 可回退 自动提交,不可回退
记录日志 记录 不记录
释放空间 不释放空间 释放空间
--表注释
--列注释
--清空回收站
- PURGE RECYCLEBIN;
III.五种约束
not null 非空约束 primary key 主键约束
unique 唯一值约束 check 检查约束 foreign key 外键约束
约束可以建表的同时创建,也可以在建表之后追加创建
--创建约束表
--创建表的同时增加约束_1
- (
- emp_sal NUMBER(8,2) CHECK (emp_sal>=400),
- emp_deptid NUMBER(6) REFERENCES newdept (department_id)
- );
--创建表的同时增加约束_2
- (
- emp_id NUMBER(6),
- emp_email VARCHAR2(50),
- emp_sal NUMBER(8,2),
- emp_deptid NUMBER(6),
- CONSTRAINTS emp2_email_uk UNIQUE (emp_email),
- CONSTRAINTS emp2_sal_chk CHECK (emp_sal>=400),
- REFERENCES newdept (department_id)
- );
--非空约束:限制列值不允许为空
--修改first_name列为非空(需先创建表)
--取消非空约束
- MODIFY (first_name NULL);
--增加约束
ALTER TABLE 表名 ADD CONSTRAINT 自定义约束名称 约束设置;
--主键约束:限制列值不允许重复,且不能为空,一个表只能由一个主键
--设置主键约束
--删除约束
--复合主键(多列组成一个主键)
--唯一值约束:限制列值不允许重复,不限制空值,一个表中可以有多个唯一值约束
--设置唯一值约束
--检查约束:限制自定义条件,忽略空值
--限制工资不能少于400
--外键约束:限制外键列值必须是引用的主表中的主键列存在的列值,不限制空值
--前置条件:引用的主表中的主键列必须已经设置主键约束
--部门主键约束设置
--员工外键约束设置
- REFERENCES newdept (department_id);
--级联删除
- REFERENCES newdept (department_id)
--级联置空
- REFERENCES newdept (department_id)
--无效化约束(暂时使约束失效)
- DISABLE CONSTRAINTS newemp_empid_pk;
--激活约束
- ENABLE CONSTRAINTS newemp_empid_pk;
--给学生表设置班级外键约束
- -- 设置班级表的主键
- --加外键约束
- references class (classid)
- --on delete cascade;--联级删除
--删除约束
IV.视图
虚拟表,作用是保存查询结果,仅保存查询语句,而不保存真实数据(物化视图例外)
--创建视图语法(如果查询语句中有衍生列,必须起别名)
CREATE [OR REPLACE] VIEW 视图名称 AS 查询语句
--创建视图CREATE VIEW v_视图名字AS SQL语句(不能有重复的列)
--创建视图v_emp:查询员工表中的50号部门的员工编号,姓名,工资
--创建只读视图_1
- on t1.deptno = t2.deptno
--创建只读视图_2
--查询视图
--删除视图
--创建视图v_dept:查询每个部门的编号,名称,员工人数,员工工资总和
- SELECT d.department_id,
- d.department_name,
- COUNT(e.employee_id) emp_count,
- SUM(e.salary) sal_sum
- FROM departments d
- d.department_name;
--查询视图
--物化视图
--序列
V.序列
--创建序列(CREATE SEQUENCE stu_seq;)
- CREATE SEQUENCE stu_seq
- START WITH 100 --起始值,默认是1
- INCREMENT BY 10 --递增值,默认是1
- NOMAXVALUE --最大值,默认无最大值
- NOCYCLE --假如设置了最大值,到达最大值之后,是否从头开始,默认NOCYCLE
- CACHE 10 --缓存数量,默认20
- ;
--使用序列
--在插入语句中使用序列
--删除序列
- DROP SEQUENCE stu_seq;
VI.索引
其作用加快查询速度,但是会降低DML速度
--索引的分类:
--B-TREE索引:默认,适合列值基数比较高,冗余数据很少的时候
--位图索引: 适合列值基数比较低,冗余数据比较多的时候
--创建实验表、
--创建唯一性索引
--创建普通索引
--删除索引
--创建基于函数的索引
--创建位图索引
--查询实验
适合创建B-TREE索引的时机:
1.列值基数比较高(重复率比较低)
2.不以空值做条件
3.列经常出现在条件子句中
4.表很大
5.经常做查询操作,而不是DML操作
6.满足条件的数据不超过总记录数的15%
7.模糊查询不走索引,如果模糊查询想使用索引,必须用全文检索技术
--快速查找
--二分法
--先排序
- --创建普通索引(单列)
- --创建普通索引(多列)
- --最左前缀性
- --创建唯一索引
- --创建函数索引
- --位图索引
like 'a%'--有可能走索引
like '%a%'--不会走索引
--创建实验表
--这个忘了什么意思
--去重
- union
--去重
--找交集
- intersect--找交集
--找补集
- minus--找补集
- minus--找补集
--查询5-10条记录
- minus
VII.同义词
即:缩短对象的名称
--授权
--创建同义词
--使用同义词
--删除同义词
- DROP SYNONYM e;
VII.集合运算
把多个查询结果以并集,交集,补集的形式合并成一个查询结果
-- 去掉重复,排序,速度慢--纵向拼接,注意,字段类型,数量,顺序保持一致
-- 不去掉重复,不排序,速度快
--创建试验表1
- id NUMBER,
- name VARCHAR2(50)
- );
--创建试验表2
- id NUMBER,
- name VARCHAR2(50)
- );
--并集union(自动消除重复行)
--并集union all
--交集intersect
--补集minus
- MINUS
- MINUS
--混合运算
- MINUS
--查询员工的第5到第10条数据
- MINUS
【JSU】LJDragon's Oracle course over in 3th.
ORACLE STUDY NOTES 02的更多相关文章
- ORACLE STUDY NOTES 01
[JSU]LJDragon's Oracle course notes In the first semester, junior year DML数据操纵语言 DML指:update,delete, ...
- Machine Learning Algorithms Study Notes(3)--Learning Theory
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...
- Machine Learning Algorithms Study Notes(2)--Supervised Learning
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...
- Machine Learning Algorithms Study Notes(1)--Introduction
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1 Introduction 1 1.1 ...
- Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(3)
Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(3) 一.配置共享存储 [oracle@aix203 ~]$lsdev -c disk hdisk0 Available ...
- Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4)
Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4) 一.安装CRS补丁 在安装CRS之前,须要安装补丁p6718715_10203_AIX64-5L,否则在安装时会出现 ...
- Oracle Study之--Oracle 11gR2通过RMAN克隆数据库
Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is usefu ...
- Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0
Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0 系统环境: 操作系统:RedHat EL6(64位) Oracle: Oracle 11gR2 ...
- Study notes for Clustering and K-means
1. Clustering Analysis Clustering is the process of grouping a set of (unlabeled) data objects into ...
随机推荐
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
遇着这个提示的话,如果本地只安装了一个mysql,这里写的很详细的 http://www.blogjava.net/asenyifei/articles/82575.html 看这里可以解决,如果本地 ...
- UML简易看懂
这是一堂关于UML基础知识的补习课:现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了:本篇主要就以前自己一直感觉很迷糊的几种class之间的 ...
- spring配置文件位置
参考http://name327.iteye.com/blog/1628884
- phpmyadmin设置id自增(AUTO_INCREMENT)(转)
phpmyadmin设置id自增(AUTO_INCREMENT) 在A_I 前面打勾:如图 AUTO_INCREMENT =A_I 查看效果
- window.location.href 和self.location的区别
你从字面上就可以理解到 window 指的是当前窗口 而 self 指的是自己 在HTML 中 由于页面可以镶嵌页面 所以这2个就有了 区别 比如说 我有个页面A.HTML 里面嵌套了一个B.HTML ...
- sql-----点点滴滴
from--------where-------groud by---------having----------select---------order by------------top --时间 ...
- 详解boost库中的Message Queue .
Message Queue(后文简写成MQ或消息队列)是boost库中用来封装进程间通信的一种实现,同一台机器上的进程或线程可以通过消息队列来进行通迅.消息队列中的消息由优先级.消息长度.消息数据三部 ...
- jquery获取浏览器高度、宽度和滚动条高度(来自网络)
Jquery代码: alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 ale ...
- C# 解析User-Agent工具
分享一个解析User-Agent的程序集: Neget程序集名称:UAParser Github下载地址:https://github.com/qiailu/uap-csharp 扩展程序集:UAPa ...
- DIRECTORY_SEPARATOR
定义 php的内置变量DIRECTORY_SEPARATOR是一个显示系统分隔符的命令,DIRECTORY_SEPARATOR是php的内部常量,不需要任何定义与包含即可直接使用. 2说明 路径分 ...