`
234390216
  • 浏览: 10196987 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:461006
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1772095
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1395757
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:393996
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:678352
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:529409
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1178967
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:462522
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:150274
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:66971
社区版块
存档分类
最新评论

Oracle——02表的基本操作+merge+truncate

阅读更多

 

 

(1)创建表的基本语法如下:

 

	create table tableName(columnName dataType [default expression][column columnStraint],...n) [tablespace tableSpaceName]
 

(2)修改表的基本语法如下:

 

	alter table tableName
	[add(columnName dataType [default expression][column columnStraint],...n)] --添加列
	[modify(columnName [dataType][default expression][columnStraint],...n)] --修改列
	[drop drop_clause] --删除列或约束条件 drop column columnName
 

(3)删除表的语法:drop table tableName.

 

(4)在往表中插入记录时,如果需要插入某列的值为空,则值必须置为null,如果列值指定为该列的默认值,则用default。

 

(5)merge语句,使用该语句可以实现对表的更新或插入。语法格式如下:

 

	merge into tableName using tableName on(join_condition) when matched then update set...
		when not matched then insert(...) values(...)
 

这个语句的意思是把using表合并到into表,合并条件是on(condition),当条件满足时只能是更新into表中的对应的记录,当条件不满足时,则也只能是往into表里面添加对应的数据,而该数据中也只能使用using表中当前记录对应的数据。

示例如下:

假设有一个student表,那么以下语句就可以实现当a的id大于b的id的时候把所有student的年龄加2,否则就新增一条记录。

 

		merge into student a using student b on(a.id>b.id) when matched then update set age=age+2 when not matched then insert(id,name,age,sex,no) 
		values(b.id+100,b.name,b.age,b.sex,b.no);
 

(6)删除表记录之delete和truncate。

delete的语法格式如下:

delete from tableName [where condition] 

该语句的意思是删除tableName表中满足condition条件的记录,当condition省略时则删除表中所有记录。

truncate的语法格式如下:

truncate table tableName

该语句的意思是删除tableName表中的所有记录,使用truncate可以释放占用的数据块表空间。truncate删除是不能回滚的,而delete删除是可以回滚的。正因为如此使用truncate删除所有记录的速度比用delete删除所有记录的速度快。

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics