oracle数据库自学笔记(持续更新中……)
以前的项目都是使用mysql数据库开发的,如今进了新的公司,开始接触到了Oracle数据库,而自己以前没有接触过,就自己挤时间来学习一下。
一.关系型数据库的概念
关系型数据理论由E.F.Codd博士在1970年提出;
Codd制定了一个数据库产品成为关系型数据库所必备一系列相关标准;
它是RDBMS(关系型数据库管理系统)的基础;
关系型数据库需要包含下面三个方面:
1.对象或关系的集合;
2.基于关系的操作集合;
3.因数据精确性和一致性二带来的数据的完整性;
关系型数据库是关系的集合或二维表的集合;
每个表有行和列组成;
可以通过Structured Query Language(SQL)来操作表中的数据;
表中的每一行数据可以通过主键即Primary Key(PK)来唯一标识;
表与表之间可通过外键即Foreign Key(FK)来关联;
关系型数据库中的对象:
1.表:存储的基本单元,有行和列组成;
2.视图:从一个或多个表的数据自己的一逻辑表示
3.序列:用来产生主键;
4.索引:提高查询的速度;
5.同义词:一个对象的别名;
6.编程单元:包括过程、函数或包,以及PL/SQL中的声明。
二.ORACLE简介
oracle是一个最大的数据库厂商提供的关系型数据库产品
oracle的RDBMS也称为oracle服务器
1.一个存储数据的地方;
2.能快速的获得数据;
3.数据库安全性;
4.分布式的数据库;
5.客户端和服务器的配置;
SQL——结构化的查询语言,通过它能以一种标准化的方法来对关系型数据库种的数据进行访问和操作。
SQL*Plus——是最简单的数据库开发工具。它允许用户从提示行上以交互方式输入SQL语句和PL/SQL语句块。这些语句被直接发给数据库,而结果会返回到屏幕上。通常,SQL*Plus与oracle服务器集成在一起,是标准oracle安装的一部分。SQL/Plus是字符模式环境,window版本包括了需对GUI操作,主要用于连接数据库和设置SQL*Plus选项。
PL/SQL——是用于从各种环境中访问oracle数据库的一种比较复杂的编程语言。它与数据库服务器集成在一起,也是标准数据库安装的一部分。
SQL命令:
1.取值语句:
SELECT
2.数据操作语句Data manipulation language(DML):
INSERT UPPDATE DELETE
3.数据定义语句Data definition language(DDL):
CREATE ALTER DROP RENAME TRUNCATE
4.事务控制语句Transaction control:
COMMMIT ROLLBACK SAVEPIONT
5.数据控制语句Data control language(DCL):
GRANT REVOKE
三.SELECT语句
语法:SELECT [DISTINCT] {*,column [alias],......} FROM table;
说明:
1.SELECT 后面可以跟上列名、列别名、通配符;
2.FROM 子句后面跟上要查找的表名;
3.DISTINCT 查找不重复的记录
4.SELECT语句可以写成一行或多行,不区分大小写;
5.通配符*显示表中所有的列
select * from department;
6.查询指定列时,SELECT语句中列与列之间用逗号分割
select d_id,d_name from department;
7.查询出来的数值或日期可以进行加减乘除运算,如果某一项为NULL,那么运算结果也为NULL
select salary*12 from department;
可以使用括号改变优先权,如:
select salary*12+100 from department;
和
select 12*(salary+100)from department;
8.采用NVL函数将NULL转换成某个值,如NVL(列名,‘字符串’)或NVL(列名,数值)
9.列别名是可选的,一个列别名包含了空格、特殊字符、或者要区分大小写,那就要给它加上双引号
select last_name "Employees" from department;
四.排序和条件查询
ORDER BY 子句:
1.order by 子句在整个SQL语句最后;
2.ORDER BY 后面可以是列名、列别名、表达式、列出现在SELECT关键词后的序号。
select name,salary from department order by salary;
等同于:
select name,salary from department order by 2;
3.ORDER BY后面可以跟多列,先按第一列排序,如果第一列相同再以第二列排序,一次类推。。。
4.ASC表示升序,是默认的,可以省略,DESC是降序排列;
5.NULL永远是最大的。
WHERE 子句:
1.紧跟在from子句之后,对返回数据进行筛选
2.条件由一个或多个表达式、比较符或字面值组成
3.所有字符串和日期都要用单引号包起来,数字不需要
4.日期在oracle数据库有特定形式,‘DD-MON-YY’(具体看日期显示格式),否则视作字符串
5.WHERE子句的运算符:=等于、 >大于、 >=大于等于、 <小于、 <=小于等于、 !=不等于、 <>不等于、 BETWEEN...AND...包括起止值、 IN(list)限定内容、 LIKE模糊查询、 IS NULL为空(不能使用=null)、 NOT BETWEEN不在...之间、 NOT IN不再集合里、 NOT LIKE不包含、 IS NOT NULL不为空、 NOT、 AND、 OR;
五.单行函数
Oracle数据库的函数作用:对数据进行计算、数据统计、修改数据显示、数据类型转换等
函数分类:单行函数和多行函数(组函数)
单行函数:字符函数、数值函数、日前函数、转换函数;
单行函数的使用:作用在单行(单挑记录)上,每行都可以返回一个结果,可操作数据项,接受参数并返回结果,修改数据类型,还可以嵌套使用。
函数使用方式:
function_name(column|expression,[arg1,arg2,...])
1.字符函数:
lower:转换成小写;
upper:转换成大写;
initcap:首字母大写,其余的都小写;
concat:字符串连接;
substr(str,start,end):字符串截取;
length:求字符串长度;
nvl:空值置换
示例:
LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE
INITCAPP('SQL Course') Sql Course
CONCAT('good','string') goodstring
SUBSTR('String',1,3) Str
LENGTH('String') 6
2.数值函数
round:四舍五入
trunc:截取,不进行四舍五入
mod:求余,取模
示例:
ROUND(45.923,2) 45.92
ROUND(45.923,0) 46
ROUND(45.923) 46
ROUND(45.923,-1) 50
TRUNC(45.923,2) 45.92
TRUNC(45.923) 45
TRUNC(45.923,-1) 40
MOD(1600,300) 100
3.日期函数
MONTHS_BETWEEN(date1,date2) 两个日期之间的月数
ADD_MONTHS(date,n) 指定日期上添加月数
NEXT_DAY(date,'friday') 指定日期的下一天(如:下一个星期五)是哪一天
LAST_DAY(date) 指定日期的最后一天
ROUND(date,'year') 对指定日期四舍五入,逢16日往月进一,逢7月往年进一
TRUNC(date,'year') 对指定日期进行截取
说明:oracle日期包括世纪、年、月、日、时、分、秒、毫秒,默认显示DD-MON-YY,函数SYSDATE、SYSTIMESTAMP可以返回相同时间,通过DUAL表可以使用这两个函数来查看系统时间。
MONTHS_BETWEEN('01-SEP-95','11-JAN-94') 19.774194
ADD_MONTHS('11-JAN-94',6) '11-JUL-94'
NEXT_DAY('01-SEP-95','FRIDAY') '08-SEP-95'
LAST_DAY('01-SEP-95') '30-SEP-95'
ROUND('25-MAY-95','MONTH') 01-JUN-95
ROUND('25-MAY-95','YEAR') 01-JAN-95
TRUNC('25-MAY-95','MONTH') 01-MAY-95
TRUNC('25-MAY-95','YEAR') 01-JAN-95
4.转换函数
TO_CHAR 将日期转换成字符串,TO_CHAR(date,‘fmt’)使用format定时日期格式,使用fm来去除空格或0,使用逗号分割
日期格式模型的元素:
year:英文年份
month:英文月份
mon:英文月份缩写
day:星期几的英文单词
DY:星期几的前三个字母
ddap:英文拼写的天
ddspth:英文拼写的第几天
d:一个星期的数字表示,周日为1,周六为7
dd:一个月的第几天
ddd:一年的第几天
yyyy:四位年
mm:二位月
hh24:24小时制的时
mi:分钟
ss:秒
AM:上午
PM:下午
RR日期格式:
RR:0-49代表本世纪,50及以上代表上世纪(默认)
YY:代表和当前时间所处的同一世纪
TO_CHAR 将数值转换成字符串,TO_CHAR(number,‘fmt’)
0:强制0填充未满数据位数
9:代表数字
$:设置一个浮点型的美元符号
L:使用本地货币符号
示例:
SELECT 'Order'||TO_CHAR(id)||'was filled for a total of'||TO_CHAR(total,'fm$9,999,999') FROM table WHERE date='21-SEP-95';
TO_NUMBER 将一个数值字符串转换成数字
TO_DATE 将一个日期字符串转换成日期
好了,今天就更新到这里,下次更新内容是夺标查询。
oracle数据库自学笔记(持续更新中……)的更多相关文章
- oracle学习 一 (持续更新中)
首先你需要创建一个表空间,然后,再创建一个用户名,用户名要给他指定一个表空间,并且给这个用户赋予权限, DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有 ...
- oracle学习 二(持续更新中)
oracle数据库的启动停止 以oracle用户身份登录 登录后输入以下命令: oracle-> sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Pro ...
- oracle学习 四(持续更新中)无法为表空间 MAXDATA 中的段创建 INITIAL 区
解决建立表的时候出现的 ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区 出现这个问题是因为表空间的大小不足,可以给他扩容这样的话也会多出来一个数据文件.具体写法如下 ...
- oracle学习 三(持续更新中)
关于ora 01219问题的解决 之前学习oracle的时候练习去建立表空间,建了很多之后手动删除了,之后再使用自己创建的用户名登陆数据库就会造成数据库 ORA-01031: ORACLE initi ...
- react-navigation 使用笔记 持续更新中
目录 基本使用(此处基本使用仅针对导航头部而言,不包含tabbar等) header怎么和app中通信呢? React-Navigation是目前React-Native官方推荐的导航组件,代替了原用 ...
- VB导入Excel到数据库软件(持续更新中。)
1.选择Excel文件版本 电脑上用的 Office2010 引用:Mircosoft Excel 14.0 Object Library 2.选择Excel文件 '选择文件公共变量 Public D ...
- GOF 的23种JAVA常用设计模式 学习笔记 持续更新中。。。。
前言: 设计模式,前人总结下留给后人更好的设计程序,为我们的程序代码提供一种思想与认知,如何去更好的写出优雅的代码,23种设计模式,是时候需要掌握它了. 1.工厂模式 大白话:比如你需要一辆汽车,你无 ...
- oracle 常用指令(持续更新中....)
1. 查看所有表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_nam ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
随机推荐
- 注解配置spring
1.为什么使用注解配置Spring基于注解配置的方式也已经逐渐代替xml.这个是不可逆的潮流,所以我们必须要掌握使用注解的方式配置Spring 总结:(1)使用注解配置Spring,注解的作用就是用于 ...
- Java之二分查找算法
算法说明:取中间位置的值与待查字比较.如果比待查字更大,则去列表的前半部分查找,如果比待查字小,则去列表的后半部分查找,直到找到这个待查字,或者返回没有找到这个待查字.其中给定的列表是从大到小排列的有 ...
- 编码原则 之 Stable Dependencies
The Stable Dependencies Principle states that “The dependencies between software packages should be ...
- 使用教育邮箱激活JetBrains全家桶
如果你还有在校时的邮箱,比如your_name@xxx.edu或者your_name@xxx.edu.cn的邮箱,那么你可以免费激活JetBrains全家桶. JetBrains Toolbox 专业 ...
- loadrunner常用函数集锦
一.三个复制函数的区别: strcpy 原型:extern char *strcpy(char *dest,char *src);用法:#i nclude功能:把src所指由NULL结束的字符串复制到 ...
- sublime Text3下载与安装以及解决安装Install Package时遇见的问题
最近下载安装sublime Text3后,在安装Install Package时遇到了几个问题,网上搜了一大圈终于解决了,特此记录为以后之便. 一.下载安装sublime Text3 1.sublim ...
- HTTP 方法:Get与Post分析
GET - 从指定的资源请求数据 POST - 向指定的资源提交要被处理的数据 GET 方法 GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处 ...
- threejs深入纹理,立体场景cubeResolution(四)
在这个课程里主要完成讲解两个demo: 一个是电视墙:用视频做纹理 一,用视频做纹理 首先我们用video标签把视频源引入: <video id="video" autopl ...
- ArcGIS Pro开发Web3D应用(2)——地图分屏对比(多屏对比)思路
很多应用中都需要用到地图联动.多屏对比.二三维分屏.大屏显示,有图形可视化的地方就有事件响应触发:鼠标按下.移动.鼠标滚轮,由此触发了地图上坐标或范围的变化,将这些变化发送给另一个地图并响应这些变化, ...
- 小程序分享进入H5动态网页
在要分享的界面加上这段代码 onShareAppMessage: function (options) { var that = this; // var return_url = that.data ...