数据库的插入修改删除操作


 

1、复制工作表(练习使用)

create table myemp as select * from emp where 1=1 -----1=1 1:1复制表

select * from myemp;

 

create table myyemp as select * from emp where 1=2----1=2 只复制表名

 

2、插入记录

语法格式:

insert into 表名 (字段列表(列名))

value(值列表)

 

 insert into myemp (empno,ename,job,mgr,hiredate,sal,comm,deptno)

   values (7999,'小葵','前台',7369,'06-5-2019',2000,200,20);

 

 select * from myemp where empno=7999;--- 查询员工信息

 

当插入的记录部分信息为空值时--注:插入记录时要注意插入的值和列名一一对应

方法一 

insert into myemp (empno,ename,job,hiredate,sal,deptno)

values (7993,'小葵111','后台','06-5-2019',2000,20);

select * from myemp

方法二

insert into myemp (empno,ename,job,mgr,hiredate,sal,comm,deptno)

values (7999,'小葵','前台',null,'06-5-2019',2000,null,20);

--1 若省略的字段列表,有空值时用 null 代替

--2 不省略时值列表的顺序类型与字段列表顺序一致

 

插入日期的格式

insert into myemp (empno,ename,job,mgr,hiredate,sal,comm,deptno)

values (7996,'张韶涵','音乐总监',null,to_date('20180823','yyyymmdd'),8000,200,30);

insert into myemp (empno,ename,job,mgr,hiredate,sal,comm,deptno)

values (7996,'张韶涵','音乐总监',null,to_date('2018-08-23','yyyy-mm-dd'),8000,200,30);

 

 

3、批量插入

语法格式

insert into 表名

select 字段列表 from 表名

where 条件   (empno,ename,job,mgr,hiredate,sal,comm,deptno)

 

create table lxy as select * from emp ---创建

insert into lxy select * from emp-----插入

insert into lxy select * from myemp where empno=7996---插入编号为7996一行信息

 

 

4、删除

(1)delete from lx --删除数据,保持表结构但可以回滚

(2)truncate table lx---删除数据,保持表结构(字段列表),不可以回滚

(3)drop table lx; --直接删除表,也把表结构删除了,不可以回滚

 

语法格式

delete from 表名 where 条件

 

例:删除员工7999的员工信息

delete from myemp where empno=7999---where用来指定删除条件,否则会改变表中记录

 

解释

1事务,工作的一个逻辑单位,由一个或多个sql语句组成

2回滚,rollback 是撤销未提交事务中sql语句中所做的数据修改

3提交,commit 事务提交之后就说明sql语句所执行的改变将永久化

 

5、数据更新

语法格式

update 表名 set 要修改的字段(列名)=新值,要修改的字段=新值......

where 条件                     -------where限定条件,一定不能忘用来指定修改条件

 

例:给员工7999奖金再加100

update myemp set comm=300

where empno=7998

 

关联更新

update emp a set deptno=(select b.deptno from dept b where b.deptno=a.deptno)

where exists (select 1 from dept b where b.deptno=a.deptno)

 

6、merge:插入/更新

create database link link_zwz connect to scott identified by tiger using 'zwz'

grant create database link to scott

 

merge into 表名 a

using (select * from 表名@数据库连接名) b

on (a.empno=b.empno)

when matched then 

  update  set a.ename=b.ename where a.ename!= b.ename

when not matched then

  insert (a.empno,a.ename) values (b.empno,b.ename)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM