oracle入门到精通超详细oracle教程菜鸟入门手册oracle 入门




oracle入门到精通超详细oracle教程菜鸟入门手册oracle 入门

2022-07-21 2:24:03 网络知识 官方管理员

1.建表:

1)常规建表:

createtabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15));

创建字段为TempCode,TempName的temp_1表,新创建的表中无数据,如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(1)

2)根据查询结果建表:

createtabletemp_1asselecttempcode,tempnamefromtemp_2;

创建字段为TempCode,TempName的temp_1表,新创建的表中存在temp_2的存储结果,如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(2)

3)创建事务级临时表:

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows

创建字段为TempCode,TempName的temp_1表,新创建的表为事务级临时表,当该表事务进行提交commit/回滚rollback时,清除表内所有数据(truncate)

4)创建会话级临时表:

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitpreserverows

创建字段为TempCode,TempName的temp_1表,新创建的表为会话级临时表,当会话结束时,清除表内所有数据(truncate)

2.新增

1)单行插入

insertintotemp_1(tempcode)values('1001');--指定字段插入insertintotemp_1values('1001','张三同学');--全字段插入

执行insert操作,如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(3)

2)根据查询结果插入

insertintotemp_1(tempcode)selecttempcodefromtemp_2;--指定字段插入insertintotemp_1selecttempcode,tempnamefromtemp_2;--全字段插入

指定字段插入,如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(4)

全字段插入,如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(5)

3.删除

1)delete:删除表数据,不删除表结构,事务提交后删除,DML语句,不释放表空间,激活触发器

2)truncate:删除表数据,不删除表结构,执行后自动提交,DDL语句,保留原始表空间,不激活触发器

(外键约束引用的表和参与视图索引的表不能使用truncate)

3)drop:删除表数据、表结构等,DDL语句,释放表空间,删除触发器

性能比较:drop>truncate>delete

4.更新

1)单列更新

updatetemp_1settempname='张三(new)'wheretempcode='1001';--单列更新

2)多列更新

updatetemp_1settempname='李四(new)',tempcode='1002new'wheretempcode='1002';--多列更新

3)根据查询结果更新

updatetemp_1set(tempname,tempcode)=(selecttempname,tempcodefromtemp_2wheretempcode='1003new')wheretempcode='1003';--根据查询结果更新

执行更新操作后,结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(6)

4)Mergeinto

mergeintotemp_1ausing(selecttempcodecode,tempnamenamefromtemp_2wheretempcode='1001')bon(a.tempcode=b.code)whenmatchedthenupdateseta.tempname=b.namewhennotmatchedtheninsert(tempcode,tempname)values(b.code,b.name)

条件满足,tempcode='1001'时,执行update操作;

把tempcode='1001'换成tempcode='1004',条件不满足,执行insert操作;

结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(7)

5.完整的查询SQL语句格式:

select<查询结果集>

from<被查询表集>

where<查询条件集>

groupby<分组条件集>

having<分组结果过滤>

orderby<查询结果过滤>

6.连接

1)交叉连接:笛卡尔集全连接

createtabletemp_1asselecttempcode,tempnamefromtemp_2;0

oracle入门到精通(超详细oracle教程菜鸟入门手册)(8)

2)内连接:对于不匹配的都会进行舍弃

createtabletemp_1asselecttempcode,tempnamefromtemp_2;1

oracle入门到精通(超详细oracle教程菜鸟入门手册)(9)

3)全外连接:左右无都补null

createtabletemp_1asselecttempcode,tempnamefromtemp_2;2

oracle入门到精通(超详细oracle教程菜鸟入门手册)(10)

4)左外连接:左为基表,右表无则补null

createtabletemp_1asselecttempcode,tempnamefromtemp_2;3

oracle入门到精通(超详细oracle教程菜鸟入门手册)(11)

5)右外连接:右为基表,左表无则补null

createtabletemp_1asselecttempcode,tempnamefromtemp_2;4

oracle入门到精通(超详细oracle教程菜鸟入门手册)(12)

7.集合

1)unionall:求并集,记录可以重复,不自动排序

createtabletemp_1asselecttempcode,tempnamefromtemp_2;5

oracle入门到精通(超详细oracle教程菜鸟入门手册)(13)

2)union:求并集,排除重复数据,自动排序

createtabletemp_1asselecttempcode,tempnamefromtemp_2;6

oracle入门到精通(超详细oracle教程菜鸟入门手册)(14)

3)minus:求差集,自动排序

createtabletemp_1asselecttempcode,tempnamefromtemp_2;7

oracle入门到精通(超详细oracle教程菜鸟入门手册)(15)

4)intersect:求交集,自动排序

createtabletemp_1asselecttempcode,tempnamefromtemp_2;8

oracle入门到精通(超详细oracle教程菜鸟入门手册)(16)

8.排序

1)orderby

createtabletemp_1asselecttempcode,tempnamefromtemp_2;9

倒序结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(17)

2)排名函数

rank()/dense_rank()/row_number()over(partitionby分组条件orderby排序条件)

[1]rank()over:进行排序,会跳过空出的名次,如(1,2,2,4,5)

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows0

按tempsubject学科分组,按tempscore成绩倒序排列,结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(18)

[2]dense_rank()over:进行排序,不会跳过空出的名次,如(1,2,2,3,4)

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows1

按tempsubject学科分组,按tempscore成绩倒序排列,结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(19)

[3]row_number()over:进行排序,不会考虑成绩是否相同,即使相同也会继续排序,如(1,2,3,4,5)

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows2

按tempsubject学科分组,按tempscore成绩倒序排列,结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(20)

9.常用函数

1)字符函数

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows3

查询结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(21)

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows4

查询结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(22)

2)数字函数

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows5

查询结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(23)

3)日期函数

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows6

查询结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(24)

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows7

查询结果如下图所示:

oracle入门到精通(超详细oracle教程菜鸟入门手册)(25)

4)分组函数

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows8

oracle入门到精通(超详细oracle教程菜鸟入门手册)(26)

5)转换函数

[1]日期格式转字符串

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitdeleterows9

oracle入门到精通(超详细oracle教程菜鸟入门手册)(27)

[2]字符串转日期格式

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitpreserverows0

oracle入门到精通(超详细oracle教程菜鸟入门手册)(28)

[3]字符串转数字格式

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitpreserverows1

oracle入门到精通(超详细oracle教程菜鸟入门手册)(29)

6)其他函数

createglob altemporarytabletemp_1(Tempcodevarchar2(30)notnull,TempNamevarchar2(15))oncommitpreserverows2

oracle入门到精通(超详细oracle教程菜鸟入门手册)(30)

发表评论:

最近发表
网站分类
标签列表