Oracle学习整理
用 startup 命令启动数据库,用 shutdown 命令关闭数据库
Oracle SQL 语句由如下命令组成:
数据定义语言(DDL),包括 CREATE (创建)命令、ALTER (修改)命令、DROP(删 除)命令等。
数据操纵语言(DML),包括 INSERT(插入)命令、UPDATE(更新)命令、DELETE (删除)命令、SELECT … FOR UPDATE(查询)等。
数据查询语言(DQL),包括基本查询语句、Order By 子句、Group By 子句等。
事务控制语言(TCL),包括 COMMIT(提交)命令、SAVEPOINT(保存点)命令、 ROLLBACK(回滚)命令。
数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。
1、创建用户
CREATE USER 用户名
IDENTIFIED BY 口令
[ACCOUNT LOCK|UNLOCK]
LOCK|UNLOCK 创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进 行数据库操作。
2、授权(CONNECT、RESOURCE、DBA)
GRANT角色|权限 TO 用户(角色)
GRANT CONNECT TO jerry; 授权成功。
GRANT RESOURCE TO jerry; 授权成功。
//回收权限
REVOKE 角色|权限 FROM 用户(角色)
//修改用户的密码
ALTER USER 用户名 IDENTIFIED BY 新密码
//修改用户处于锁定(非锁定)状态
ALTER USER 用户名 ACCOUNT LOCK|UNLOCK
3、创建约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束内容。
ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID) ;-- 主键约束
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDER CHECK(GENDER = '男' OR GENDER = '女');--check 约束
ALTER TABLE INFOS ADD CONSTRAINTS UN_STUNAME UNIQUE(STUNAME) ;--唯一约束
根据结果集创建表: CREATE TABLE INFOS1 AS SELECT * FROM INFOS;
集合运算就是将两个或者多个结果集组合成为一个结果集。
集合运算包括:
INTERSECT(交集),返回两个查询共有的记录。
UNION ALL(并集),返回各个查询的所有记录,包括重复记录。
UNION(并集),返回各个查询的所有记录,不包括重复记录。
MINUS(补集),返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩 余的记录。
表连接
外连接:不完全匹配
左连接: FROM e JOIN d ON e.id = d.id(+) 左边数据全部显示,右边匹配不上的部分用空值代替
右连接: FROM e JOIN d ON e.id(+) = d.id
select a.latn, a.guanz, nvl(b.bangd,)
from (select nvl(a.latn, '') latn, count() guanz
from wx_run_user_state a
group by a.latn) a
left join (select nvl(a.latn, '') latn, count() bangd
from wx_run_user_state a
where a.bind_type =
group by a.latn) b
on a.latn = b.latn
函数:
1、DECODE DECODE(AA﹐V1﹐R1﹐V2﹐R2,。。。)函数
解释: IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2 ..… ELSE RETURN NULL
2. ROUND(X[,Y]),四舍五入。 在缺省 y 时,默认 y=0;
比如:ROUND(3.56)=4。 y 是正整数,就是四舍五入到小数点后 y 位。
ROUND(5.654,2)=5.65。 y 是负整数,四舍五入到小数点左边|y|位。
ROUND(351.654,-2)=400。 3.
TRUNC(x[,y]),直接截取,不四舍五入。 在缺省 y 时,默认 y=0;
比如:TRUNC (3.56)=3。 y 是正整数,就是四舍五入到小数点后 y 位。
TRUNC (5.654,2)=5.65。
TRUNC (351.654,-2)=300。y 是负整数,四舍五入到小数点左边|y|位。
4、截串 SUBSTR(表达式,位置,长度)
select substr('asdfghjkl',1,4) from dual; --asdf
select SUBSTR('abcdefg', LENGTH('abcdefg')-3+1, 3) from dual; --efg
SUM(DECODE(SEX, '男', 1, 0)) 筛选出行被为男的记录 并加1
SUM(DECODE(SEX, '女', 1, 0)) 筛选出行被为女的记录 并加1
5、日期函数
1. ADD_MONTHS(d,n),在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期。 d 表示日期,n 表示要加的月数。
select sysdate,ADD_MONTHS(sysdate,) from dual;
2、LAST_DAY(d),返回指定日期当月的最后一天。
select sysdate,LAST_DAY(sysdate) from dual;
3、ROUND(d[,fmt]),返回一个以 fmt 为格式的四舍五入日期值, d 是日期, fmt 是格式 模型。默认 fmt 为 DDD,即月中的某一天。
select sysdate,ROUND(sysdate),ROUND(SYSDATE,'YEAR'),ROUND(SYSDATE,'MONTH'),ROUND(SYSDATE,'DDD'),ROUND(SYSDATE,'DAY') from dual;
select sysdate,TRUNC(sysdate),TRUNC(SYSDATE,'YEAR'),TRUNC(SYSDATE,'MONTH'),TRUNC(SYSDATE,'DDD'),TRUNC(SYSDATE,'DAY') from dual;
4. EXTRACT(fmt FROM d),提取日期中的特定部分。
SELECT SYSDATE "DATE",
EXTRACT(YEAR FROM SYSDATE) "YEAR",
EXTRACT(MONTH FROM SYSDATE) "MONTH",
EXTRACT(DAY FROM SYSDATE) "DAY",
EXTRACT(HOUR FROM SYSTIMESTAMP) + "HOUR",
EXTRACT(MINUTE FROM SYSTIMESTAMP) "MINUTE",
EXTRACT(SECOND FROM SYSTIMESTAMP) "SECOND"
FROM DUAL;
5.NVL2
NVL2(x,value1,value2) 如果 x 非空,返回 value1,否则返回 value2
SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,NVL2(E.COMM,e.comm+,),E.DEPTNO FROM EMP E WHERE E.SAL<;
6、同义词(Synonym)
CREATE [OR REPLACE] [PUBLIC] SYSNONYM [schema.]synonym_name FOR [schema.]object_name
GRANT CREATE SYNONYM TO XiaoMei;
CREATE SYNONYM MyEmp FOR SCOTT.EMP;
7、序列 序列(Sequence)是用来生成连续的整数数据的对象
CREATE SEQUENCE sequence_name
[START WITH num]
[INCREMENT BY increment]
[MAXVALUE num|NOMAXVALUE]
[MINVALUE num|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE num|NOCACHE]
解释:
START WITH:从某一个整数开始,升序默认值是 1,降序默认值是-1。
INCREMENT BY:增长数。如果是正数则升序生成,如果是负数则降序生成。升序默认值是 1,降序默认值是-1。
MAXVALUE:指最大值。
NOMAXVALUE:这是最大值的默认选项,升序的最大值是:10^27,降序默认值是-1。
MINVALUE:指最小值。
NOMINVALUE:这是默认值选项,升序默认值是 1,降序默认值是-10^26。
CYCLE:表示如果升序达到最大值后,从最小值重新开始;如果是降序序列,达到最 小值后,从最大值重新开始。
NOCYCLE:表示不重新开始,序列升序达到最大值、降序达到最小值后就报错。默认 NOCYCLE。
CACHE:使用 CACHE 选项时,该序列会根据序列规则预生成一组序列号。保留在内存中,当使用下一个序列号时,可以更快的响应。当内存中的序列号用完时,系统再生成一组新的序列号,并保存在缓存中,这样可以提高生成序列号的效率。 Oracle 默认会生产 20 个序列号。
NOCACHE:不预先在内存中生成序列号。
8、视图:
视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中 查询信息与从表中查询信息的方法完全相同。只需要简单的 SELECT…FROM 即可。
CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name
AS
SELECT查询
[WITH READ ONLY CONSTRAINT]
Oracle学习整理的更多相关文章
- js数组学习整理
原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- TweenMax学习整理--特有属性
TweenMax学习整理--特有属性 构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓 ...
- HttpClient学习整理
HttpClient简介HttpClient 功能介绍 1. 读取网页(HTTP/HTTPS)内容 2.使用POST方式提交数据(httpClient3) 3. 处理页面重定向 ...
- Oracle学习线路
出自huyangg的博客,地址是:oracle学习路线图 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验) 作为oracle的基本功,需要大家对sql和 ...
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- Oracle学习系列7
Oracle学习系列7 ************************************************************************************ 关联表 ...
- Oracle学习系列6
Oracle学习系列6 ************************************************************************************ 删除约 ...
随机推荐
- 【leetcode】Best Time to Buy and Sell Stock III
Best Time to Buy and Sell Stock III Say you have an array for which the ith element is the price of ...
- tomcat下不用项目名直接访问项目
把tomcat下的项目名称改为ROOT,访问项目的时候,不用输入项目名称,输入地址,如192.168.182.100:8080即可.
- nodeJS文件路径总结
文件夹目录F:* test1* tes2* test3* test4* a.html*//例句fs.readFile('../../../a.html', function (err, html) { ...
- 在Win8中创建热点,共享网络
在Win8中创建热点,共享网络 办公室中,我独享10M光纤,没什么要下的,便想利用来更新下Ipad里面的程序,下点公开课.那在不利用软件[用很多wifi共享的软件],从win7开始 系统本身就自带相关 ...
- 创建型模式之Singleton模式
单例模式大概是最直观的一种设计模式了,尽管直观却不简单. 数学与逻辑学中,singleton定义为“有且仅有一个元素的集合”, 单例模式可以如下定义:“一个类有且仅有一个实例,并且自行实例化向整个系统 ...
- Android中JNI 的一些常用Method说明
Android JNI和NDK关系 1.什么JNI Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程 ...
- Java Hour 34 Weather ( 7 ) struts2 – validate
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 34 Form Validation 一般Form 提交都有验证的, ...
- 免费电子书:微软Azure基础之Azure Automation
(此文章同时发表在本人微信公众号"dotNET每日精华文章") Azure Automation是Azure内置的一项自动化运维基础功能,微软为了让大家更快上手使用这项功能,特意推 ...
- HDU 5682/BestCoder Round #83 1003 zxa and leaf 二分+树
zxa and leaf Problem Description zxa have an unrooted tree with n nodes, including (n−1) undirected ...
- Web开发中运行环境的配置:(Tomcat7.0.59)和开发环境的配置
第一部分:运行环境的配置 1.下载压缩包,解压即可 2.配置系统变量JAVA_HOME为jdk的安装路径 3.如有需要修改端口号,比如8080已被占用的时候,可以将其改为9080等 apache-to ...