Oracle数据库入门之DML与事务控制

  次阅读 作者:智能小宝 来源:互联网 2016-01-28 13:19 我要评论(0)

insert语句

语法:insert into table [(column1, column2...)] values (value1, value2...);

说明:insert语句每次只能向表中插入一条记录。缺省字段名列表时,应为新插入记录中的每个字段显式的设定新值

也可在insert语句中指定赋值字段列表,只为部分字段显式设定新值,其余字段将被缺省赋值为null

举例:insert into dept values(88,'研发部','北京');--此句便是缺省字段名列表的情况

insert into dept values(66,'美工部');--这句将执行出错,提示为没有足够的值。即必须为所有字段设定值

insert into dept(deptno,dname) values(99,'财务部');--也可以单独为deptno和dname字段赋值

select table_name from user_tables;--用到了数据字典表。目的是查询当前用户方案下所有的表的名字

select user from dual;--查询当前连接到数据库的用户名

补充:可以在insert语句中使用子查询,实现表间数据拷贝。在现实开发中很少用的到,有点类似Java中的数组拷贝

比如insert into dept1(id, name) select deptno, dname from dept;

此时不必再给出values子句。子查询中的值列表应与insert子句中的字段列表相匹配

实现数据复制的时候,也可以在应用程序层面采用这种方式进行数据备份,但一般来说这种备份是不可靠的

应该在数据库的层面做备份,也可以由DBA对整个数据库做自动的数据备份处理,包括出现问题的时候的恢复

update语句

语法:update table set column1=value1 [, column2=value2, ...] [where condition];

说明:update语句用于更新表中的数据。update语句每次可更新多条记录

可使用where子句限定要更新的记录,如果缺省where子句,则更新表中的所有记录

举例:update emp set sal=sal+88;--将所有员工的工资都涨88元钱

update student2 set phone='010-51288984' where name='张三';--将张三的电话改为010-51288984

delete语句

语法:delete [from] table [where condition];

说明:delete语句用于从表中删除数据。delete语句每次可删除多条记录

可使用where子句限定要删除的记录,如果缺省where子句,则删除表中的所有记录

delete语句并不是删除整个表,只是删除表中的记录,表仍然存在,还可用来存放数据

举例:delete emp;--等价于delete from emp;

delete emp where empno=7778;--删除empno字段的值为7778的所有记录

merge语句

概述:merge语句用于进行数据合并,它是根据条件在表中执行数据的修改或插入操作

如果要插入的记录在目标表中已经存在,则执行更新操作,否则执行插入操作

实际开发的过程中使用它的机会并不是很多

语法:merge into table [alias]

using(table|view|sub_query) [alias]

on(join_condition)

when matched then

update set col1=col1_val, col2=col2_val

when not matched then

insert (column_list) values(column_values);

举例:create table test1(eid number(10), name varchar2(20), birth date, salary number(8,2));

insert into test1 values (1001, 'Stone', '21-1月-10', 8888);

insert into test1 values (1002, 'Smith', '04-1月-09', 6666);

select * from test1;

create table test2(eid number(10), name varchar2(20), birth date, salary number(8,2));

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...