Orecle_DML数据操纵语言

开发工具与关键技术: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中嵌套查询,一般写嵌套式的语句,都是按照从内到外的一个执行过程

猜你喜欢

转载自blog.csdn.net/qq_37290823/article/details/89081088