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 ...
随机推荐
- linux系统中中断已连接的用户
1.用w命令查看当前系统登录的用户 [root@rhel7 ~]# w :: up :, users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOG ...
- 最小生成树--->NYOJ-38 布线问题
此题是最基础的最小生成树的题目,有两种方法, 一个是prim一个是kruskal算法,前者利用邻接矩阵,后者是利用边集数组 prim算法的思想是:一个点一个点的找, 先找从第一个点到其他点最小的, 把 ...
- JPush 极光推送 消息推送 实例
简介 官网:https://www.jpush.cn/ 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度 ...
- 使用socket实现聊天功能
public class Service { //服务器 public static void main(String[] args) { ServerSocket serverSocket=null ...
- java03变量和基本数据类型
/** * * 失去一日甚易,欲得回已无途! * * 关键字:java中的关键字 就是指 已经被定义了的单词! * 我们就不能再拿关键字 作为我们的变量名! * 常用的关键字: * 基本数据类型: * ...
- js动态新增组合Input标签
var x = 1; function addlink() { var linkdiv = document.getElementById("add1_0"); if (linkd ...
- ImageView设置点击效果没有用?ImageView src的图片大小改变不了?
ImageView设置点击效果没有用? 解决 1.ImageView xml里面必须clickable 和longClickable为true <ImageView android:layout ...
- Starting nagios:This account is currently not available nagios
nagios在启动时报错 # service nagios restartRunning configuration check…done.Stopping nagios: done.Starting ...
- static和const关键字的作用
static关键字至少有下列n个作用: (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值: (2)在模块内的stat ...
- Libevent源码分析(一):最小堆
Libevent中的timeout事件是使用最小堆来管理维护的.代码位于<minheap-internal.h>. 看函数命名和代码风格应该是一个C++程序员,函数名都挺好懂的,只是下面这 ...