Oracle数据库笔记
SQL分为四大类别
1、DDL:Date Definition Language 数据定义语言
用于建立、修改、删除数据库对象(create创建表和其它对象结构;alter修改表或其它结构;drop删除表或其它结构;truncate删除表数据,保留表结构)
2、DML:Data Manipulation Language 数据操作语言
用于改变数据表中的数据(和事务相关,执行完以后要进行提交,才能真正的把改变保存到数据库中)
INSERT:向数据表中插入一条数据
UPDATE:更新数据表中已经存在的数据
DELETE:删除数据表中的一条数据
3、TCL:Transaction Controller Language 事务控制语句
用来维护数据一致性的。
COMMIT:提交,确认已经进行的数据改变;
ROLLBACK:回滚,取消已经进行的数据改变;
SAVEPOINT:保存点,使得事务可以回滚到指定的保存点,用于取消改变;
4、DQL:Data Query Language 数据查询语言
用来查询所需要的数据 (SELECT语句)
5、DCL:Data Controller Language 数据控制语言
用于执行权限的授予和收回
GRANT:用于给用户或角色授予权限
REVOKE:用于收回用户或角色的权限
CREATE USER:创建用户
ORACLE数据类型
| 数据类型 | 说明 |
| CHAR | 表示固定长度的字符类型,CHAR(N) N表示占用的字节数,最大长度2000字节 |
| VARCHAR2 | 表示可变长度的字符类型,VARCHAR2(N) N表示最大占用的字节数,最大长度4000字节, |
| NUMBER(N,M) | 表示数字类型,N表示数字总的位数,M表示小数的位数,N的取值为1-38.INT,INTERGER,SMALLINT,DUOBLE,REAL,FLOAT,DECIMAL(P,S),NUMERIC(P,S)完全映射到NUMBER,目的是多种数据库及编程语言的兼容。 |
| DATE | 用于定义时间类型的数据,长度是7个字节,默认的格式是DD-MON-RR,例如10-APR-99,第一个字节:世纪+100;第二字节:年;第三字节:月;第四字节:天;第五字节:小时+1;第六字节:分+1;第七字节:秒+1; |
| LONG | 是VARCHAR2的加长版,有诸多限制,不介意使用,一个表中只能有一个列是LONG类型的,不能作为主键,不能出现在查询条件中,最多可以存2GB的数据。 |
| CLOB | 存储定长和可变长的字符,最大容量4GB,开发中经常使用CLOB代替LONG数据类型。 |
| TIMESTAMP | 与DATE不同的是,可以精确到ns(纳秒) |
| SYSDATE | 返回系统的时间,默认的格式是:DD-MON-RR; |
| SYSTIMESTAMP | 返回系统的日期和时间,精确到毫秒。 |
常用函数
| CONCAT(char1,char2)和||使用相同 | 连接两个字符串, | ||||||||||||||||||||||||
| LENGTH(char1) | 返回字符串的长度(如何是CHAR,这返回补空格后的长度,如果是VARCHAR2,则返回字符的实际长度。) | ||||||||||||||||||||||||
| UPPER(char1) | 用于将字符串转换成大写 | ||||||||||||||||||||||||
| LOWER(char1) | 用于讲字符串转换成小写字符 | ||||||||||||||||||||||||
| INITCAP(char1) | 用于将字符串中的首个单词转换成大写 | ||||||||||||||||||||||||
| TRIM(c2,c1) | 用于截去c1前后的c2,如果没有c2就是去掉前后空格 | ||||||||||||||||||||||||
| LTRIM(c1,c2) |
从c1的左边截去c2 |
||||||||||||||||||||||||
| RTRIM(c1,c2) |
从c1的右边截去c2 |
||||||||||||||||||||||||
| LPAD(char1,n,char2) | 左补位函数,用于在char1的左边用char2补足n位 | ||||||||||||||||||||||||
| RPAD(char1,n,char2) |
右补位函数,用于在char1的右边用char2补足n位 |
||||||||||||||||||||||||
| SUBSTR(char,[n,m]) |
用于获取字符串的子串,返回char中n,m的子串。n=0,则从开始位置,n等于负数,则从末尾开始,m没有,则取到末尾,m过大则取到末尾。注意,字符串的首位从1开始。 |
||||||||||||||||||||||||
| INSTR(char1,char2,[n,m]) |
返回char2在char1中的位置,n没有指定则从1开始,m用于指定出现的次数,如果不指定,则取1,如果在char1中没有找到char2,则返回0. |
||||||||||||||||||||||||
| ROUND(N,[,M]) |
参数n可以是任何数字,m必须为整数。m默认是0;m为正数,则四舍五入到小数点后m为;m为负数,则四舍五入到小数点前m位,m取0,则四舍五入到整数位。 |
||||||||||||||||||||||||
| TRUNC(N,[,M]) |
用于截取,和ROUND相同,不同的是,TRUNC是用于截取。 |
||||||||||||||||||||||||
| MOD(N,[,M]) | N除于M的余数,M没有,则直接返回N。 | ||||||||||||||||||||||||
| CEIL(N)和FLOOR(N) | 取N的最大值和N的最小值。 | ||||||||||||||||||||||||
| TO_DATE(char1[,fmt[,nlsparms]) |
char为要转换的字符串,fmt为格式,nlsparms指定日期语言。 日期语言:
|
||||||||||||||||||||||||
| TO_CHAR(date[,fmt[,nlsparms]]) | 将其它类型的转换位字符类型,将date类型的按照fmt格式输出字符串,nlsparms用于指定日期语言 | ||||||||||||||||||||||||
| LAST_DAY(date) | 返回date所在月的最后一天 | ||||||||||||||||||||||||
| ADD_MONTHS(date,i) | 返回date加上i个月后的日期值,i位整数,则加;i为负数,则减;i取小数,则截取小数后参与运算 | ||||||||||||||||||||||||
| MONTHS_BETWEEN(date1,date2) | 计算date1和date2之间相隔了多少个月。 | ||||||||||||||||||||||||
| NEXT_DAY(date,char) | 返回date日期的下一个周几,周几是由char来决定的,例如:WEDNESDAY | ||||||||||||||||||||||||
| LEAST(exp1[,exp2[,exp3]])和GREATEST(exp1[,exp2[,exp3]]) | 叫做比较函数,返回参数列表中最小和最大的值;注意:参数类型必须一致,后面的参数列表会隐含的转换和第一个参数一致,如果不能转换则会报错。 | ||||||||||||||||||||||||
| EXTRACT(date FROM datetime) | 从date time中提取date指定的数据,比如:提取年,月,小时等。 | ||||||||||||||||||||||||
| NVL(exp1,exp2) | 将NULL转换为非NULL,如果exp1为空,则取exp2的值,exp1和exp2可以是任何的数据类型,但是必须一致。 | ||||||||||||||||||||||||
| NVL2(exp1,exp2,exp3) | 和NVL一致,如果exp1不为空,则取exp2,exp2为空,则取exp3;类别表达式语句。 | ||||||||||||||||||||||||
| MAX(column)和MIN(column) | 用来统计列值的最大和最下值;可以用来统计任何数据类型,包括日期,数字,字符等 | ||||||||||||||||||||||||
| AVG(column)和SUM(column) | 用来统计列或表达式的平均值和和值。必须是数字,忽略空值。 | ||||||||||||||||||||||||
| COUNT(column or *) | 用来统计表中的记录数,忽略空值。聚合函数忽略空值。 |
表的创建
CREATE TABLE table_name(
column_name datetype[DEFAULT expr][,...]
);
DESC:DESC table_name --用于显示表的结构
DEFAULT:用于给列指定默认值
NOT NULL:非空,指定列值不能为空
RENAME oldtablename ON newtablename
ALTER TABLE table_name ADD(columnname typedate[DEFAULT expr][,...])注意,列只能追加到最后
ALTER TABLE table_name DROP(column)
ALTER TABLE table_name MODIFIED(column typedata[DEFAULT expr][,...])注意:修改列以后只能对后面插入的数据起作用,把数据由大改小,可能不成功!
INSERT语句
INSERT INTO table_name(column[,column]) VALUES(values[,values])
注意:执行DML,需要commit后,才能把此条记录提交到数据库中。
UPDATE语句
UPDATE table_name SET column=value,[,column=value]
[WHERE=condition];
DELETE语句
DELETE FROM table_name [WHERE=condition] 注意:如果没有where语句,则全表的数据都会被删除。
DELETE与TRUNCATE语句的区别:
DELETE语句可以有选择的删除,是DML语句,可以回退。当表的记录很多的时候,执行效率没有TRUNCATE语句高
TRUNCATE语句则删除全表的数据,是DDL语句,立即生效,不可回退。执行效率比DELETE语句高。
关联查询
基础:笛卡儿积
等值连接:使用=;连接两张关联的表;
内连接:内连接返回所以满足条件的记录;例如:SELECT * FROME DEPT D JION EMP E ON(D.NO=E.NO);
外连接:外连接不仅返回满足条件的记录,还返回不满足条件的记录。SELECT table1.column table2.column FROM table1 t1 [FULL][LEFT][RIGHT][OUTER] JION table2 t2 ON(t1.no=t2.no);
全外连接:返回满足条件的记录,还返回不满足条件的记录,是左右连接的查询结果的综合。FULL
自连接:数据来源一张表,可以自己参考自己的列,把表虚拟化成两张表。
Oracle数据库笔记的更多相关文章
- oracle11g之管理oracle数据库笔记(理论基础知识)
第三章 管理oracle数据库 1.启动数据库步骤;(创建启动实例--> ...
- Oracle数据库备份还原笔记
Oracle数据库备份还原笔记 通过查阅资料知道Oracle备份还原的方式有三种.分别的是导出/导入.热备份和冷备份.导出/导入是一种逻辑备份.而热备份和冷备份是物理备份.[参考资料(https:// ...
- Oracle学习笔记九 数据库对象
Oracle 数据库对象又称模式对象,数据库对象是逻辑结构的集合,最基本的数据库对象是表. 其他数据库对象包括:
- Oracle数据库学习笔记
创建表的同时插入数据:create table zhang3 as select * from zhang1;create table zhang3(id,name) as select * from ...
- 看的oracle数据库视频 记的一点笔记
3个默认的用户 sys //网络管理员 权限由上到下降低 [最后加上 as sysdba] system //本地管理员 scott //普通用户 默 ...
- 【学习笔记】Y2-1-1 Oracle数据库基础
Oracle 简介关系型(二维表)数据库 用来存储海量数据在大数据量的并发检索的情况下,性能要高于其他同类数据库产品一般运行环境是Linux和UnixOracle版本中的I(Internet) G(G ...
- oracle学习笔记1:windows下oracle数据库安装及.net调用oracle数据库
1.下载32位或64位oracle数据库并且安装,安装时可以选择安装数据库实例或者不安装,如果不安装的话之后可以用Database Configuration Assistant(DBCA) 通过向导 ...
- oracle数据库自学笔记(持续更新中……)
以前的项目都是使用mysql数据库开发的,如今进了新的公司,开始接触到了Oracle数据库,而自己以前没有接触过,就自己挤时间来学习一下. 一.关系型数据库的概念 关系型数据理论由E.F.Codd博士 ...
- Oracle学习笔记--第2章 oracle 数据库体系结构
第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...
随机推荐
- WinForm TextBox 实现自动索引功能
源代码如下: http://pan.baidu.com/s/1bnOz4hp
- pureMVC简单示例及其原理讲解五(Facade)
本节将讲述Facade,Proxy.Mediator.Command的统一管家.自定义Facade必须继承Facade,在本示例中自定义Facade名称为ApplicationFacade,这个名称也 ...
- POJ2115(扩展欧几里得)
C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23700 Accepted: 6550 Descr ...
- 从新手到高手c++全方位学习 pdf + 视频教程 共18章
淘宝已经和谐了这个网站,原网址:https://item.taobao.com/item.htm?spm=a1z09.8149145.0.0.mb00D0&id=17350311256& ...
- ArcGIS API for JavaScript 4.2学习笔记[3] 官方第二章Mapping and Views概览与解释
目录如下: 连接:第二章 Mapping and Views 根据本人体会, [这一章节主要是介绍地图(Map)和视图(View)的.] 其中,Get started with MapView(2D) ...
- [C#]为微软ASP.NET官方教学视频增加字幕
前言 Microsoft Virtual Academy提供了学习ASP.NET的大量视频材料.(注1) 由于视频服务器位于海外,国内浏览速度并不理想,幸好官方提供了视频的下载地址以及英文字幕文件. ...
- 腾讯X5内核使用 Android WebView 的一些小问题
大家好,我是博客小白,第一篇文章,文笔不好,务喷,希望能给各位提供点帮助 公司做个商城,然后我就简单的做个启动引导页,然后用个原生WebView套一下,加个加载动画,解决下第三方登录支付的返回问题,这 ...
- Spring MVC 的环境搭建和入门小程序
1.1.下载spring框架包. 1.1.1百度搜索Spring Framework. 进入spring官网,在网页右边选择想要下载的版本.如图 1.1.2进入页面按Ctrl+F搜索Distribut ...
- Android Studio中.9.png文件出错问题
昨天使用别人的.9.png图片放在自己的android studio工程下使用,出现如下错误: :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DA ...
- Debug和Release区别
VC下Debug和Release区别 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步 ...