原创:oracle DML介绍与使用<八>

DML(Data Manipulation Language)数据操纵语言,SQL的分类之一,此外还有DDL(Data Definition Language)数据定义语言和DCL(Data Control Language)数据控制语言。DML包括:INSERT、UPDATE、DELETE。注意,select语句属于DQL(Data Query Language)。


DML(Data Manipulation Language – 数据操作语言) 可以在下列条件下执行:
• 向表中插入数据
• 修改现存数据
• 删除现存数据
1、插入语句
使用 INSERT 语句向表中插入数据。
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
使用这种语法一次只能向表中插入一条数据
//向users表中插入一条完整的记录
SQL> insert into users(username,password,name,address,zip) values('rrmy','1234','红军','北京',100089);
备注:如果是字符串加’’ 如果是数字可与加’’也可以不加===>一般不加
SQL> commit;
注意:oracle数据库在DOS命令中执行插入,修改等操作时,必须手动完成提交。否则不会(正真)插入成功。
在插入完整的记录是users()中的表对应的字段可以省略不写.但一定要与数据库中表的结构对应才行。
//向users表中插入一条非完整的记录

SQL> insert into users(username,password) values('mj','123');
//注意:在插入部分子段的时候,必须满足的表的约束条件,否则会出现如下异常信息。
insert into users(username,password) values('mj','123')
RA-01400: 无法将 NULL 插入 ("RED"."USERS"."NAME")
SQL> insert into users(username,password,name) values('mj','123','马杰');
1 row inserted
SQL> commit; //必须手动提交
Commit complete
以上简单总结如下:
 为每一列添加一个新值。
 按列的默认顺序列出各个列的值。
 在 INSERT 子句中随意列出列名和他们的值。
 字符和日期型数据应包含在单引号中。

补充知识点:
隐式方式: 在列名表中省略该列的值
SQL> insert into users(username,password,name) values('mj','123','马杰');
显示方式: 在VALUES 子句中指定空值。
SQL> insert into users values('test','123','test',null,null);

常见面试题:
//备份一张表
SQL> create table usess as select * from users;
//清空表中的记录
SQL> delete from usess;
//使用插入语句把users表中记录插入到usess中
SQL> insert into usess(username,password,name,address,zip) select username,password,name,address,zip from users;
SQL> commit
注意:
 不必书写 VALUES 子句。
 子查询中的值列表应于 INSERT 子句中的列名对应


2、更新数据
采用update语法进行更新数据:
语法如下:
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
备注:一次可以更新多条记录
//更新数据:更新users表 重新设置了passwrod 条件是唯一(主键是唯一)的条件。
SQL> update users set password='redarmy' where username='redarmy';
SQL> commit
注意:当更新多个字段时,可以采用逗号进行区分.举例如下:
SQL> update users set password='redarmy' , name='陈红军' where username='rrmy';
SQL> commit
备注:如果省略WHERE子句,则表中的所有数据都将被更新
SQL> update users set password='redarmy' , name='陈红军';
6 rows updated
SQL> commit;
Commit complete
SQL> select * from users;
USERNAME PASSWORD NAME ADDRESS ZIP
-------------------- -------------------- -------------------- -------------------- -------
huxz redarmy 陈红军 北苑家园 100012
liucy redarmy 陈红军 清华园 100084
redarmy redarmy 陈红军 北京 100089
rrmy redarmy 陈红军 北京 100089
mj redarmy 陈红军
test redarmy 陈红军
6 rows selected

补充:在update语句中使用子查询
//更新huxz的邮编与用户liucy的邮编一致
SQL> update users set zip=(select zip from users where username='liucy') where username='huxz';
//备注:在更新数据的时候 where条件中也可以使用子查询。
3、删除数据
在表中如果某些数据不在需要就可以使用delete语句进行删除,并释放该数据所占用的存储空间删除语法如下:
DELETE [FROM] table
[WHERE condition];
备注:delete语句只是从表中删除数据,不会删除表结构.删除表结构采用drop语句。
注意:删除表中的数据时,一定要考虑表的约束(否则会出现一些异常信息)
//清空表 delete from 表名 ||delete 表名
//删除数据 where条件与更新一致,必须保证唯一性(主键是唯一)条件
SQL> delete from users where username='test';


以上内容版权归redarmy_chen所有,如有转载请附带出处,如有疑问请发送邮件至redarmy_chen@qq.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值