DML: 数据操作语言(添加  修改  删除)

来源:互联网 发布:经常用到的c语言函数库 编辑:程序博客网 时间:2024/05/17 09:33
create table t_student(
sid number(5) primary key,
sname varchar2(20),
ssex char(6),
sage number(5),
saddress varchar2(50),
cid number(5),
constraint fk_cid foreign key(cid) references t_class(cid)
)


添加:insert
语法1:insert into 表名(字段名1,字段名2,...,字段名n)
      values(值1,值2,...,值n)
      ---注意:表名后跟着的字段列表与values后跟着值列表
        ---  中顺序  类型  个数都要一致
      insert into t_student(sid,sname,ssex) values(1,'张国荣','男');
  ---注意:在DML操作中,都需要执行提交或回滚操作
      当执行完DML操作之后,操作的数据都会被保存在缓冲中
      当执行了提交之后,才会将操作的数据保存到数据库中
      当执行回滚之后,之前的操作则会被撤销
    insert into t_student(sid,sname,ssex) values(2,'李王桥','男');
    --commit;  ---提交
    rollback;  ---回滚
    
语法2:insert into 表名 values(值列表);
    --- 注意:该语法一般是使用在字段个数较少的情况下
        当将表结构中的所有的字段都添加数据,也就是表中有多少个字段
        值列表中就要写多少个对应的值,才可以省略掉字段列表
      
    insert into t_class values(1,'
    --值列表中的值的顺序类型及个数都要与表结构中的字段的顺序类型和个数一致
insert into t_student (sid,sname,ssex) values(3,'张三','男');
--主键每次添加数据的时候,都要检查主键是否唯一
系列:用于管理主键,通过序列计算主键唯一的数字
--dual 表示虚拟表
--seq_t_student.nextval 获取序列中的下一个数字
--seq_t_student.currval 获取序列中的当前的数字
currval 必须是执行在nextval之后
select seq_t_student.nextval from dual 
select seq_t_student.currval from dual 
多行插入:
1:复制表
复制表及表中的数据j
create table t_student_coly as select * from t_student
复制表结构:
create table t_student_coly1 as select * from t_student where 1<>1
--给恒不成立的条件就查询不 到
2:将一张表中的数据添加到另一表中 
insert into t_student_coly1
select * from t_student
insert into t_student_coly1(sid,sname,ssex)
select sid,sname,ssex from t_student
修改数据:update
语法:update 表名 set 字段名1=值1 字段名2=值2 字段名n=值n where 条件
1:修改学生表中所有学生的地址,
update t_student set saddress='广州' 
2:修改学生表中学生学号为3的地址修改,
update t_student set saddress='广州' where sid=3
3:修改学生表中学生的年龄18-20岁之间的地址修改,性别改为女
update t_student set saddress='上海',ssex ='女'
where sage>=18and sage<=20
--where sage between 18and20
4:修改 学生表中年龄为19和23的学生地址为北京,性别改男

update t_student set saddress='北京',ssex ='男'
where sgae=19 or sage=23
--where sage in(19,23)
5:修改学生表中年龄为null的学生地址改为南京,性别改为男

update t_student set saddress='南京' ssex ='男'
where sage is null 
--is null  为空
--is not null 不为空
6:修改学生表中的年龄不等于18的学生的班级改为1,
update t_student set cid=1 where sage!=18
--where sage><18
删除数据:
delete
语法:delete from 表名 where 条件
delete from t_student_coly --删除表中所有数据
delete from t_student_coly  where cid =1
快速删除:truncate 不属于DML命令,是DDL命令
执行改命令会直接数据删除,不会将数据保存在缓冲中。不可反悔。
truncate 的效力北delete快
truncate table 表名
原创粉丝点击