Oracle笔记Word下载.docx

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

Oracle笔记Word下载.docx

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

Oracle笔记Word下载.docx

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

----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:

tarena10g

--192.168.0.26:

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

--账号1:

openlab

--密码1:

open123

--账号2:

jsd1309

--密码2:

--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条件的

 

--新建表

--字段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,'

commit;

--刷新

--更改update表名

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

updatewang_feng_createtablesett_name=wangfeng;

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'

计时

--插入若干数据测试

--查询资费类型='

--查询资费名=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);

SELECT*FROMcost_yelang--查询资费类型='

,包月类型的数据

wherecost_type='

;

SELECT*FROMcost_yelang--查询资费名='

30M包月'

类型的数据

wheret_name='

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;

select*fromcost_yelang;

--字符串操作

--字符串类型:

--Char:

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

--Varchar:

同varchar2,但推荐使用varchar2

--注意:

varchar存储中文的问题:

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

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

--Varchar2:

可变字符串长度,

--Nvarchar2:

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

--上限

--Varchar2:

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

varchar2(20)

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

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

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

createtablestringss(

t_idnumber,

t_namevarchar2(10)

insertintostringss(t_id,t_name)

values(3,'

夜狼'

select*fromstringss;

selectt_id||t_namefromstringss;

--字符串连接,将字段id和字段name连接

selectt_id||'

.'

||t_namestringss;

selectupper(t_id||'

||t_name)fromstringss;

将全部转换为大写

selectlowper(t_id||'

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'

selectsubstr(ss,3,7)fromfoo51;

--从3到7

selectsubstr(ss,-6)fromfoo51;

--倒着取5个

--填充字符串

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

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

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

******右***

selectlpad('

abc'

5,'

*'

fromdual;

selectrpad('

agc'

5)

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

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

selectinstr(ss,'

78'

)fromfoo51;

selectinstr('

12341234123412341234512345'

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<

s,是一个小于1的数,小数位为s,小数点右边有s-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);

select*fromfoo1

insertintofoo1(c2)

values(12333);

--会报错,超过指定长度

insertintofoo1(c2)

values(1234.56);

--会自动的四舍五入为整数

insertintofoo1(c3)

values(12.55);

insertintofoo1(c4)

values(125345);

select*fromfoo1;

--数值函数:

--round(n[,m]):

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

--trunc(n[,m]):

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

selectround(123.456,2)

--123.46

selecttrunc(123.456,2)

--123.45

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

--130

selecttrunc(123.456,-1)

--120

--日期操作

--日期类型

--date:

存储年月日时分秒

--timestamp:

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

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

--日期时间关键字

--sysdate:

当前Orcale服务器系统时间

--systimestamp:

当前Orcale服务系统时间

createtablefoo71(c1date,c2timestamp);

insertintofoo71(c1,c2)

values(sysdate,systimestamp);

select*fromfoo71;

--日期格式:

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

10-NOV-13'

insertintofoo71(c1)

values('

select*fromfoo71;

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

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

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

mi:

ss

values(to_date('

2013-08-08'

yyyy-mm-dd'

));

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

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

selectto_char(sysdate,'

yyyy-mm-ddhh24:

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,'

星期一'

months_between(日期1,日期2):

获取两个日期差多少个月

selectmonths_between(to_date('

2013-8-8'

yy-mm-dd'

),to_date('

2013-7-8'

))fromdual;

--round(日期[,'

yyyy'

|'

mm'

]):

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

--trunc(日期[,'

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

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

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

t4varchar(10));

dropt

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

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

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

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