Oracle笔记.docx

上传人:b****4 文档编号:6081244 上传时间:2023-05-09 格式:DOCX 页数:47 大小:34.11KB
下载 相关 举报
Oracle笔记.docx_第1页
第1页 / 共47页
Oracle笔记.docx_第2页
第2页 / 共47页
Oracle笔记.docx_第3页
第3页 / 共47页
Oracle笔记.docx_第4页
第4页 / 共47页
Oracle笔记.docx_第5页
第5页 / 共47页
Oracle笔记.docx_第6页
第6页 / 共47页
Oracle笔记.docx_第7页
第7页 / 共47页
Oracle笔记.docx_第8页
第8页 / 共47页
Oracle笔记.docx_第9页
第9页 / 共47页
Oracle笔记.docx_第10页
第10页 / 共47页
Oracle笔记.docx_第11页
第11页 / 共47页
Oracle笔记.docx_第12页
第12页 / 共47页
Oracle笔记.docx_第13页
第13页 / 共47页
Oracle笔记.docx_第14页
第14页 / 共47页
Oracle笔记.docx_第15页
第15页 / 共47页
Oracle笔记.docx_第16页
第16页 / 共47页
Oracle笔记.docx_第17页
第17页 / 共47页
Oracle笔记.docx_第18页
第18页 / 共47页
Oracle笔记.docx_第19页
第19页 / 共47页
Oracle笔记.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle笔记.docx

《Oracle笔记.docx》由会员分享,可在线阅读,更多相关《Oracle笔记.docx(47页珍藏版)》请在冰点文库上搜索。

Oracle笔记.docx

Oracle笔记

Oracle

笔记

目录

绪论3

---------------------------day01-------------------------------

--1.概念导论

--1)什么是数据库

--有组织和结构存储数据。

可以存储

--字符、字节、图形、图像等类型数据

--DB(数据库):

数据集合

--DBMS(数据库管理系统):

对数据集合进行管理和操作的软件

----Oracle

----DB2

----MySQL

----SQLSERVER

--2)为什么使用数据库

--程序在运行时,对数据需要以下几点服务:

----持久存储(文件或数据库)

----高可靠性

----存取方便

----大数据量

--3)如何使用数据库

--a.Oracle

--Oracle甲骨文公司-->Oracle数据库

--LarryEllisonOracle之父CEO

--1970,IBM一个研究员发布一篇数据关系模型文章。

--1977,LarryEllison同另外两个人一起创办了公司***实验室(32岁)

--1979公司改名,最终在1983年改成Oracle.

--第一个员工是SCOTT/TIGER

--

--*b.操作语句SQL

--Oracle数据库通过SQL命令操作数据。

--SQL有以下几种类型:

----DML(DataManipulationLanguage):

数据操作语句。

例如存取数据。

----DDL(DataDefinitionLanguage):

数据定义语句。

例如定义存储结构

----DCL(DataControlLanguage):

数据控制语句。

例如授权,取消授权

----TCL(TransactionControlLanguage):

事务控制语句。

例如开启事务、提交和回滚

----DQL(DataQueryLanguage):

数据查询语句。

例如查询

--

--2.Oracle环境

--a.Oracle访问

--Oracle分为客户端和服务器端两部分。

--通过以下几种途径可以访问Oracle服务器。

----程序Java(JDBC)+SQL

----客户端软件(sqldeveloper,

--eclipse)

--运行opt/sqldeveloper

----远程登录telnet

--命令行运行:

telnet服务器ip

----服务器本机操作DBA工具界面

--b.Oracle环境

--安装Oracle服务器(DBA)-->

--创建库(DBA)-->

--创建用户和授权(DBA)-->

--*用户可以创建数据结构(表)-->

--*用户可以使用SQL对表操作

--c.达内北京Oracle实验室

--192.168.0.20:

1521:

tarena

--192.168.0.23:

1521:

tarena10g

--192.168.0.26:

1521:

tarena

--登录服务器用户名openlab和密码open123

--账号1:

openlab

--密码1:

open123

--账号2:

jsd1309

--密码2:

jsd1309

--opt/sqldeveloper

--*3.Oracle操作

--*1)命令行操作步骤(北京现场班)

----进入命令行,输入"telnet服务IP"

----输入openlab/open123登录服务器

----输入sqlplus命令

----输入oracle账号openlab或jsd1309账号登录Oracle,进行SQL操作

--*2)SQLDeveloper操作步骤

----启动该软件,opt/sqldeveloper

----填写用户名、密码、服务器IP、端口号、SID(库)名

----单击“连接”按钮,进入之后执行SQL操作

--*3)具体使用

--表结构:

表是数据库存储的基本单元和结构。

表格由若干行和列构成。

--列被称为"字段",行被称为记录。

--列需要在建表时定义,行不需要指定。

--a.DDL语句

--负责创建、修改、删除表结构。

----创建表

--createtable表名(

--字段1类型,

--字段2类型,

--字段3...

--);

--常用类型有:

CHAR,VARCHAR2,NUMBER,

--DATE.

--CHAR(10)固定字符串"abc"

--VARCHAR2(10)可变字符串"abc"

----查看表结构

--desc表名;

----删除表

--droptable表名;

----查阅改用户下已创建表有哪些

selecttable_namefromuser_tables;

--

--b.DML

--负责添加、修改、删除表记录信息。

--DML操作必须执行commit才能生效。

----添加记录

--INSERTINTO表名【(字段1,字段2..)】VALUES(值1,值2...)

--给部分字段指定值:

insertintoperson1(t_id,t_name,t_sex)values(102,'sun','女');

--给所有字段指定值:

insertintoperson1values(103,'tiger',50,'男',SYSDATE,'Y');

----更新记录

--UPDATE表名

--SET字段1=值1,字段2=值2

--【WHERE字段=条件值】

--

--没有WHERE语句将更新所有记录。

--有WHERE语句将更新满足WHERE条件的

--记录。

--

----删除记录

--DELETEFROM表名

--【WHERE字段=条件值】

--

--没有WHERE语句将删除所有记录。

--有WHERE语句将删除满足WHERE条件的

--记录。

--c.TCL

--用于事务管理,默认DML增删改语句执行后没有真正修改表中数据,可以该操作进行确认commit和取消rollback。

--

--d.DQL

--用于数据查询操作。

--SELECT*或字段1,字段2

--FROM表名

--【WHERE字段=值】

--

--SELECT*表示返回所有列,

--SELECT字段1,字段2返回指定列

--没有WHERE语句将查询所有记录。

--有WHERE语句将查询满足WHERE条件的

--记录。

 

--新建表

--createtable表名(

--字段1类型

--字段2类型

--字段3……

--);

createtablewang_feng_createtable(

t_idNUMBER,

t_nameVARCHAR2(20),

t_ageNUMBER(3),

t_sexCHAR

(2),

t_birthDATE,

t_marryCHAR

(1)

);

--查看当前表的结构desc表名

desccreatetable32;

droptablecreatetable32;

--删除当前表droptable表名

droptablewangfeng

--获取当前用户名下的所有表

selecttable_name

fromuser_tables;

--查看当前表的数据select*from表名;

select*fromwang_feng_createtable;

--批量更新表中的数据

insertintowang_feng_createtable(t_id,t_name,t_age,t_sex,t_birth,t_marry)

values(23,'王小丰',22,'男',SYSDATE,'Y');

commit;--刷新

select*fromwang_feng_createtable;

--更改update表名

--set字段1=值where字段=条件值(不加条件默认为修改全部);

updatewang_feng_createtablesett_name=wangfeng;

commit;

select*fromwang_feng_createtable;

 

--删除记录deletefrom表名where字段=值/in(多个条件中满足一个)(如果不加条件就删除当前表中所有记录)

deletefromwang_feng_createtablewheret_idin(11,12,23,44);

--CTL用于事务管理,默认DML增删改语句执行后没有真正修改表中数据,可以改操作进行确认comit和取消rollback

--DQL查询select字段1,字段2(如果查看全部就用“*”)

--from表名

selectt_name

fromwang_feng_createtable;

 

--定义一个资费信息表sost_yelang

--ID资费ID

--NAME资费名

--BASE_DURATION基本时长

--BASE_COST基本费用

--UNIT_COST单价数值

--STATUS状态数值

--DESCR资费描述

--COST_TYPE资费类型

--CREATIME创建时间

--STARTTIME开启时间字符串类型'1'包月'2'套餐'3'计时

--插入若干数据测试

--查询资费类型='1'

--查询资费名=xxx

--单价>0.5

--更新

--将id=1的记录的名字更新

--将所有单价上调10%

createtablecost_yelang(

t_idnumberprimarykey,--资费id/主键

t_namevarchar2(20),--资费名/

base_durtionnumber,--基本时长

base_costnumber,--基本费用

unit_costnumber,--单价

startusvarchar2(10),--状态

descrvarchar2(50),--资费描述

createtimedate,--创建时间

starttimedate,--开启时间

cost_typevarchar2

(2),--资费类型

constraintname_1unique(t_name)

);

SELECT*FROMcost_yelang;

insertintocost_yelang(t_id,t_name,base_durtion,base_cost,unit_cost,

startus,descr,createtime,starttime,cost_type)

values(8,'3G上网套餐',10,3,1.8,'开启','长话漫游包',sysdate,sysdate,3);

commit;

SELECT*FROMcost_yelang;

 

SELECT*FROMcost_yelang--查询资费类型='1',包月类型的数据

wherecost_type='1';

SELECT*FROMcost_yelang--查询资费名='30M包月'类型的数据

wheret_name='30M包月';

SELECT*FROMcost_yelang--查询单价大于0.5类型的数据

whereunit_cost>0.5;

updatecost_yelangsett_name='30M你妹啊'wheret_id=1;--将id=1的资费名更新

sommit;

select*fromcost_yelang;

updatecost_yelangsetunit_cost=unit_cost*1.1;

sommit;

select*fromcost_yelang;

 

--字符串操作

--字符串类型:

--Char:

固定长度字符串,不足则用空格补齐

--Varchar:

同varchar2,但推荐使用varchar2

--注意:

varchar存储中文的问题:

varchar2存储字符与安装oracle字符集有关,一般字母按一个长度,

--中文按2个,因此varchar定义时,最大上限长度指定为*3

--Varchar2:

可变字符串长度,

--Nvarchar2:

采用unicode编码存储,一个汉字算一个长度

--上限

--Varchar2:

上限最大长度是4000,在使用时必须指定一个上限,例:

varchar2(20)

--Char:

上限长度是2000,在使用时可以使用char格式,默认长度是1.

--表名、字段名最大上限长度是30,不能以数字开头

 

---------------------------day02-------------------------------

createtablestringss(

t_idnumber,

t_namevarchar2(10)

);

insertintostringss(t_id,t_name)

values(3,'夜狼');

commit;

select*fromstringss;

selectt_id||t_namefromstringss;--字符串连接,将字段id和字段name连接

selectt_id||'.'||t_namestringss;

 

selectupper(t_id||'.'||t_name)fromstringss;将全部转换为大写

selectlowper(t_id||'.'||t_name)fromstringss;将全部转换为大写

selectinitcap(t_id)||initcap(t_name)fromstringss;--首字母大写

--trim(str)去掉字符串两边的空格

--rtrim(str)过滤右边空格

--ltrim(str)过滤左边空格

selectt_id||t_name||t_idfromstringss;没去空格

selecttrim(t_id)||trim(t_name)||trim(t_id)fromstringss;--去掉两边空格

--substr(str,截取位置[n,m])如果m不写,则默认为到末尾截取字符串

createtablefoo51(

ssvarchar2(30)

);

insertintofoo51values('1234567890');

commit;

selectsubstr(ss,3,7)fromfoo51;--从3到7

selectsubstr(ss,-6)fromfoo51;--倒着取5个

--填充字符串

--lpad(str,长度,填充字符):

对str在左边填充到指定长度,如果没有指定填充字符,则默认为空格

--rpad(str,长度,填充字符):

******右***

selectlpad('abc',5,'*')

fromdual;

selectrpad('agc',5,'*')

fromdual;

selectrpad('abc',5)

fromdual;

--instr(str,str1,5)查看str1在str中从第5位开始出现的位置,不写着默认从第一位开始

--instr(str,str1,int,int)查找str1在str中第5位后第3次匹配的字符的位置

selectinstr(ss,'78')fromfoo51;

selectinstr('12341234123412341234512345','3',4,3)fromdual;

--数值操作

--数值类型

--number,Oracle采用number表示整数和浮点数。

定义格式number(p[,s])p表示有效位数,s表示精度

--number含义:

--idnumber;不指定参数时,采用默认长度38位有效数字。

--number(p[,s]):

使用规则

--1.整数位超过p-s会出错

--2.小数位超过s会四舍五入

--3.s>0,对小数位进行四舍五入如number(4,2)23.567=》23.57

--4.s<0,对整数的指定位进行四舍五入,并将指定位后的位变为0,例:

number(4,-2)1253=>1300;

--5.s=0,采用四舍五入对整数取整

--6,p

number(2,4),0.00xx

--number定义:

--createtablefoo1(

--c1number,--默认长度38位有效数字

--c2number(4),--存储四位整数,有小数会自动四舍五入

--c3number(int1,int2)--存一个长度为int1的浮点数,小数位占int22位,整数位=int1-int2,

--整数位过多就超范围,小数过多者四舍五入

--c4number(4,-2)存储4位有效数,先将|-2|这个位四舍五入,末为0,例如1234变为1200

--1254变为1300123435变为123400

--);

createtablefoo1(

c1number,

c2number(4),

c3number(4,2),

c4number(4,-2)

);

insertintofoo1(c1)

values(12433215345);

commit;

select*fromfoo1

insertintofoo1(c2)

values(12333);--会报错,超过指定长度

insertintofoo1(c2)

values(1234.56);--会自动的四舍五入为整数

insertintofoo1(c3)

values(12.55);

insertintofoo1(c4)

values(125345);

commit;

select*fromfoo1;

--数值函数:

--round(n[,m]):

保留m位小数采用四舍五入对n操作,m默认为0;

--trunc(n[,m]):

保留m位小数采用截取方式对n操作

selectround(123.456,2)

fromdual;--123.46

selecttrunc(123.456,2)

fromdual;--123.45

selectround(126.456,-1)--负数就像小数点左移在操作

fromdual;--130

selecttrunc(123.456,-1)

fromdual;--120

--日期操作

--日期类型

--date:

存储年月日时分秒

--timestamp:

存储年月日小时,分钟秒.毫秒

--上述类型使用时,不需要指定参数

--日期时间关键字

--sysdate:

当前Orcale服务器系统时间

--systimestamp:

当前Orcale服务系统时间

createtablefoo71(c1date,c2timestamp);

insertintofoo71(c1,c2)

values(sysdate,systimestamp);

commit;

select*fromfoo71;

--日期格式:

--date默认格式为DD-MON-RR,日月年格式,例如'10-NOV-13'

insertintofoo71(c1)

values('10-NOV-13');

commit;

select*fromfoo71;

--如果需要插入自定义格式要使用to_date函数。

to_date(日期str,模板格式),将日期str转换为date类型,

--末班格式yyyy-mm-ddhh24:

mi:

ss

insertintofoo71(c1)

values(to_date('2013-08-08','yyyy-mm-dd'));

commit;

select*fromfoo71;

--将日期时间转换成字符串

--to_char(date,模板格式),将date值按模板格式转换成字符串

selectto_char(sysdate,'yyyy-mm-ddhh24:

mi:

ss')fromdual;

--extract:

获取日期和时间制定部分

--extract(yearfrom日期)--年

--extract(monthfrom日期)--月

--extract(dayfrom日期)--日

--extract(hourfromsystimestamp)--小时

--extract(minutefromsystimestamp)--小时

--extract(secondfromsystimestamp)--秒

--

selectextract(yearfromsysdate)fromdual;--2013

selectextract(monthfromsysdate)fromdual;--11

selectextract(dayfromsysdate)fromdual;--12

selectextract(hourfromsystimestamp)fromdual;

--

--日期处理函数(其他)

--last_day(日期):

获取当前月份最后一天

selectlast_day(sysdate)fromdual;

--next_day(日期,星期几):

获取下一个星期几的日期

selectnext_day(sysdate,'星期一')fromdual;

months_between(日期1,日期2):

获取两个日期差多少个月

selectmonths_between(to_date('2013-8-8','yy-mm-dd'),to_date('2013-7-8','yy-mm-dd'))fromdual;

--round(日期[,'yyyy'|'mm']):

可以对年月日时分秒取四舍五入,不加后面的参数就取下一天

--trunc(日期[,'yyyy'|'mm']):

可以对年与日时分秒截取,不加参数则是舍去时分秒

---------------------------day03-------------------------------

createtableyl_table1(t1number,t2varchar2(10),t3varchar(10),

t4varchar(10));

dropt

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2