操作数据(DML)

当添加、更改或者删除数据库中的数据时需要使用DML语句。DML依据的一个集合构成了一个被称之为事务的逻辑单元;
当完成以下操作是,DML语句被执行:
添加新的行到表中;
修改表中的行;
删除表中的行;


一、添加一个新行到表中


Insert语法(每次只能插入一行)

sql server向特定行插入数据 sql表任意位置增加一行_oracle

指定列添加

(以hr用户中的departments表为例)

向departments 表中添加一条数据。Department_Id=280,Department_name = Teaching,Manager_id=180,Location_id =2000;
Insert into departments(department_id , department_name , manager_id , location_id) values(280,’Teaching’,180,2000);

完全列添加

(以hr用户中的departments表为例)

向 departments 表中添加一条数据。 Department_Id=290,Department_name = 	Development,Manager_id=149,Location_id =2000;
 Insert into departments values(290,’Development’,149,2000);

插入空值的行

1.隐式方法
省略字段列表中的列;
(以hr用户中的departments表为例)

向 departments表中添加一条数据。Department_Id=300,Department_name 	= youtuber,其他为空值;
Insert into departments(department_id , department_name) 	values(300,’youtuber’);

2.显示方法
在values子句中指定null关键字;
(以hr用户中的departments表为例)

向 departments表中添加一条数据。Department_Id=310,Department_name 	  = singer,其他为空值;
Insert into departments(department_id , department_name , manager_id , 	location_id) values(310,’singer’,null,null);

插入日期值

(以hr用户中的departments表为例)

添加一个新的雇员;
1.入职时间为当前系统时间;
insert into employees values(300,'pang','danfu','qq','187.343.9024',sysdate,'SA_REP',2500.00,null,149,null);
2.入职时间为默认格式时间;
insert into employees values(301,'pang','danfu','yahoo','080.4417.0816','20/12/12','SA_REP',7500.00,null,149,null);
3.入职时间为指定格式时间;
insert into employees values(302,'miwa','tetsu','gmail','070.2218.5391',to_date('2021年5月6日','yyyy"年"mm"月"dd"日"'),'IT_PROG',15000.00,null,102,300);

从另一个表中复制行

1.用一个查询写insert语句;
2.不用values子句;
3.在查询中列的数目要匹配insert子句中列的数目;
(以hr用户中的employees表为例)

建立一个空表emp,并将 employees 表中的 job_id 中含有 REP 的工作岗位的	数据插入到 emp 表中。
insert into emp select e.employee_id,e.last_name,e.salary,e.commission_pct from 	employees e where e.job_id like '%REP%' ;

使用默认值

在insert中的default
(以hr用户中的emp表为例)

1.在emp中的salary列中加入默认值1000,添加数据,ID=302,name=hipi;
insert into emp(id,name) values(302,'hipi');
2.在emp中的salary列中加入默认值1000,添加数据,ID=303,name=hibi;
insert into emp values(303,'hibi',default,null);

二、改变表中的数据


Update语法

用update语句修改已存在的行;

sql server向特定行插入数据 sql表任意位置增加一行_java_02

(以hr用户中的emp表为例)

更新 emp 表中 ID 为 155 的数据,将名字修改为 tetsuhisa,薪水修改 17500。
Update emp set name = ‘tesuhisa’ , salary = 17500 where id = 155;

用查询更新列

(以hr用户中的emp表为例)

更新 emp 表中的雇员 165 的薪水,使其和雇员 156 相同。
  Update emp set salary = (select salary from emp where id = 156) where id = 165;

三、从表中删除行


Delete语句

使用delete语句从表中删除已存在的行;
(以hr用户中的emp表为例)

删除 emp 表中 id 为 301 的雇员。
Delete emp where id = 301;

删除基于另一个表的行

(以hr用户中的emp表为例)

删除 emp 表中薪水与 ST_CLERK 岗位相同的薪水。
Delete emp where salary in(select salary from employees where job_id = 	‘ST_CLERK’);

删除表中全部的数据;

如果再删除语句中没有给定任何条件,那么数据库将会删除该表中的所有数据;
(以hr用户中的emp表为例)

删除表中全部的数据;
Delete emp;
删除行:完整性约束错误

sql server向特定行插入数据 sql表任意位置增加一行_java_03