开发工具与关键技术:sql plus、PLSQL Developer、DML数据操控语句
作者:陈华周
撰写时间:2019年4月8日
Orecle_DML数据定义语言用于查询与修改数据记录DML的动作有:向表插入数据,修改现存的数据,删除现存数据,事务是由完成若干项工作的DML语句组成的!
Insert语句语法:
insert into course_s values ('c001','J2SE','t002');
insert into course_s values ('c002','Java Web','t002');
insert into course_s values ('c003','SSH','t001');
insert into course_s values ('c004','Oracle','t001');
insert into course_s values ('c005','SQL SERVER 2005','t003');
insert into course_s values ('c006','C#','t003');
insert into course_s values ('c007','JavaScript','t002');
insert into course_s values ('c008','DIV+CSS','t001');
insert into course_s values ('c009','PHP','t003');
insert into course_s values ('c010','EJB3.0','t002');
commit;
注释:Orecle_DML数据操纵语言的insert into 数据库表对象名称 values根据每一个列字段顺序去插入数据值,在PLSQL Developer工具中insert语法可以多写一次性插入字段中
例子1:
insert into emp1(department_id,last_name,allsal,hire_date)
values (30,'Edison','1000',to_date('2019-3-13','yyyy-mm-ss'));
例子2:
insert into emp1 (employee_id,
first_name, last_name,
email, phone_number,
hire_date, job_id, salary,
commission_pct, manager_id,
department_id)
values (
113,'Louis', 'Popp',
'LPOPP', '515.124.4567',
SYSDATE, 'AC_ACCOUNT', 6900,
NULL, 205, 100
);
注释:insert into把数据库表的指定每一个列的字段进行values添加值存放在字段列中
create table I_table(
ID number(2),
Name varchar2(5),
sex varchar2(2)
)
insert into I_table(ID,Name,sex)
values (&ID,&Name,&sex);
注释:使用Insert into 数据库表对象指定字段列进行values+&符号手动添加值
例如题目:
向SC 表中插入一些记录,这些记录要求符合以下条件:没有上过编号“c002”课程的同学学号、“c002”号课的平均成绩。
insert into sc (sno,cno,score)
select st.sno,sc.cno,(select avg(sc.score) from sc where cno='c002')
from student_s st,sc
where not exists (select * from sc where cno='c002' and sc.sno = st.sno)
and sc.cno = 'c002';
UPDATE 语句语法:
update U_table
set departments.department_id = 50
where U_table.Employee_Id;
注释:使用Update关键字自定义数据库对象表名,使用where指定部门iD进行更新,如果取消where条件,表中的所有数据都会被全部更新一遍
update U_table
set job_id = (SELECT job_id
FROM employees
WHERE employee_id = 198),
salary = (SELECT salary
FROM employees
WHERE employee_id = 198)
where employee_id = 206;
注释:在Udate中使用子查询,会根据Orecle数据库对象子表的数据去进行更新
Delete 语句语法:
delete from U_table a
where a.first_name = 'Finance'
commit;
rollback;
注释:在Orecle数据库中Delete语句是一个删除的关键字,使用delete关键字指定数据库对象表,可以进行简写空格自定义起别名,where条件根据表里的字段去进行过滤删除,使用commit提交,delete删除后并没有完全删除,他还储存在计算机的内存里,进行commit提交就直接删除了,不可复原了,使用rollback回滚,delete执行删除后,有时候发现删除错误了,可以进行一个rollback回滚,恢复数据
delete from U_table;
注释:delete关键字如果单单指向数据库对象表,不进行where条件的情况下,结果会删除整张表
delete from U_table where departments.department_id = (
select department_id from dep1 where department_name like '&Public&');
注释: 关于在delete语句中使用子查询去达到某个条件得到一个结果值,delete指向数据库对象表,where条件部门ID,括号可以在delete中进行写一个查询语句,根据部门的ID再where进行过滤出来部门名称,返回值delete,delete根据这个过滤信息去精确删除这条数据值,这就是嵌套,在delete中嵌套查询,一般写嵌套式的语句,都是按照从内到外的一个执行过程