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 ...
随机推荐
- PHP的魔术方法(简介)
public void _set(string $name,mixed $value) public mixed _get(string $name) public bool _isset(strin ...
- N!水题
//题目是求N!的问题,思路:设定一个整形数组来存放每次计算过后的值 有两个for循环,第一个for循环每次加进一个数 然后在第二个for循环里面计算出此时的阶乘,比如9999,先给出i=2 在第二个 ...
- java反射新的应用
利用java反射动态修改运行中对象的私有final变量,不管有没有get方法获取这个私有final变量. spring aop 本质是cglib,动态代理 可以做很多事情 query.addCrite ...
- ViewState探索
什么是 view state? View State是客户端状态管理重要机制之一.当页面PostBack(向服务器发送或获得数据)时,它能存储页面的值.ASP.NET把View State属性作为页面 ...
- (转)asp.net中Literal与label的区别
asp.net中Literal与label的区别 一.Literal Web 服务器控件概述(摘于MSDN) 可以使用 Literal Web 服务器控件作为页面上其他内容的容器.Literal 最常 ...
- 返回到上一页的html代码的几种写法
关键词:返回上一页 html代码超链接返回上一页代码: <a href=”#” onClick=”javascript :history.back(-1);”>返回上一页</a> ...
- mysql查询计划
mysql查询计划 1:客户端发起查询请求 2:服务器接收到请求后,先查询缓存 如果缓存命中,直接返回数据给客户端 否则,解析sql 3:sql解析完成后,进行预处理 4:有查询优化器生存查询计划 5 ...
- 小学生之解析XML应用
1.什么是XML? 解析:XML:Extensible Markup Language(可扩展标记语言) HTML:HyperLink Text Markup Language(超文本标记语言) ...
- 自动加载类PHP中spl_autoload_register函数的用法
spl_autoload_register(PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明bool spl_autoloa ...
- 你好,C++(14)如何描述“一个名叫陈良乔,年龄33岁,身高173厘米,体重61.5千克的男人”——3.8 用结构体类型描述复杂的事物
3.8 用结构体类型描述复杂的事物 利用C++本身所提供的基本数据类型所定义的变量,只能表达一些简单的事物.比如我们可以用int类型定义nAge变量表示人的年龄,用string类型定义strName ...