Oracle笔记Word下载.docx
- 文档编号:7860476
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:47
- 大小:34.11KB
Oracle笔记Word下载.docx
《Oracle笔记Word下载.docx》由会员分享,可在线阅读,更多相关《Oracle笔记Word下载.docx(47页珍藏版)》请在冰点文库上搜索。
例如开启事务、提交和回滚
----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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 笔记