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";
谈谈怎么实现Oracle数据库分区表Oracle数据库子查询介绍相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)