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 ...
随机推荐
- mysql 热备
全备份:(生成时间戳文件夹:2016-04-20_16-12-01)innobackupex --users=root --password=root /tmp/backup 第一次增量备份:(生成时 ...
- Oracle数据库配置方式二--使用Net Manager配置数据库
在Oracle安装配置中使用Net Configuration配置了数据库,今天给大家介绍第二种配置方式,Net Manager配置. 先找到我们的Net Manager的快捷方式,如下面截图
- Java类与类之间关系总结
继承,依赖,关联,聚合,组合 一般来说依赖和关联是类似的,关联是强依赖,聚合和组合是一类,组合属于强聚合. 继承:一般是子类和父类之间的关系,关键字extends 依赖:可以这样记忆,做某件事必须要依 ...
- bootstrap字体图标
bootstrap字体图标 http://v3.bootcss.com/components/ <!DOCTYPE HTML> <html> <head> < ...
- Redis,MemCached,MongoDB 概述
调研项目主要有Redis. MemCached. MongoDB,以及Amazon的DynamoDB Redis 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key- ...
- SQL Server 分组后取Top N
SQL Server 分组后取Top N(转) 近日,工作中突遇一需求:将一数据表分组,而后取出每组内按一定规则排列的前N条数据.乍想来,这本是寻常查询,无甚难处.可提笔写来,终究是困住了笔者好一会儿 ...
- String在JAVA里是固定长度的吗?为什么可用“+”连接
所谓长度固定不是你理解的意思而是说String类中存储的char[]是final的,不能修改,你对String的操作实际上是产生了一个新的String,对于某一个String来说,长度就是固定的了 S ...
- 3D dungeon
算法:广搜: 描述 You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is comp ...
- [java] Java NIO 学习笔记 I
如今在运行时优化方面,JVM 已然前进了一大步.现在 JVM 运行字节码的速率已经接近本地 编译代码,借助动态运行时优化,其表现甚至还有所超越.这就意味着,多数 Java 应用程序已不 再受 CPU ...
- UVA 305 Joseph (约瑟夫环 打表)
Joseph The Joseph's problem is notoriously known. For those who are not familiar with the original ...