网站首页 > 教程文章 正文
4. 数据操纵语言 ( DML )
数据操纵诺言(DML) 用于对数据库的表中数据进行添加、修改、删除和select…ForUpdate(后面专门学习该查询)操作。对比一期学习过的SQL Server 操作,接下来一一介绍在Oracle 中的操作。
★ 简单查询
数据查询是用 SELECT 命令从数据库的表中提取信息。SELECT 语句的语法是:
SELECT * 丨列名丨表达式 FROM 表名 WHERE 条件 ORDER BY 列名
说明:
1. * 表示表中的所有列。
2. 列名可以选择苦干个表中的列名,各个列表中间用逗号分隔。
3. 表达式可以是列名、函数、常数等组成的表达式。
4. WHERE子句是查询的条件。
5.ORDER BY 要求在查询的结果中排序,默认是升序。
你错过的不只是一个机会,而是一个时代!兆隆IT云学院,0学费,0基础,等你来!
Oracle 中可以把查询的结果根据结果集中的表结构和数据形成一张新表。语法是:
CREATE TABLE 表名 AS SELECT 语句。
使用上面命令创建的新表中,不存在任何约束,并且把查询的收据一起插入到新表中。如果只复制表结构,只需使查洵的条件不成立(比如 where 1=2 ),就不会查询出任何故据,从而复制一个表结构。
★ 数据插入
用 INSERT 命令完成对数据的插入。INSERT 命令的语法是:
INSERT INTO 表名 ( 列名1,列名2……) VALUES (值1,值2……)
说明:
t. 列名可以省略。当省略列名时,默认是表中的所有列名,列名顺序为表定义中列的先后顺序。
2.值的数量和顺序要与列名的数量和顺序一致。值的类型与列名的类型一致。
在 Oracle 中,一个 INSERT 命令可以把一个结果集一次性插入到一张表中。使用的语句是:INSERT INTO 表 SELECT 子句。如下示例:
代码演示:INSERT 向表中插入一个结果集
SQL> INSERT INTO INFOS2 SELECT * FROM INFOS;
5 rows Inserted
在这种语法下,要求结果集中每一列的数据类型必须与表中的每一列的数据类型一致,结果集中的列的数量与表中的列的数量一致。比如表 INFOS2,该表的结构与 INFO 表一样,那么可以把 INfo 表中的所有记录一次性插入到 INFOS2 表中。
Oracle 的简单查询和 SQL server 一样都可以在查询列中使用常量,如图:
你错过的不只是一个机会,而是一个时代!兆隆IT云学院,0学费,0基础,等你来!
可以使用刚才的做法,把该结果集中的数据插入到表INFOS 中。
★ 更新数据
oracle 在表中更新数据的语法是:
UPDATE 表名 SET 列名1=值,列名2=值……WHERE 条件
代码演示:Update 操作
SQL> ∪PDATE INFOS SET CLASSNO=‘’1002’,STUADDRESS=‘’山东莱芜'
WHERE STUNAME =’ 阮小二 ' ;
1 rows updated
SQL> commit;
★ 删除数据
Oracle 在表中删除数据的命令是:DELETE,语法是:DELETE FROM 表名 WHERE 条件。
符合条件的记录将被删除。
代码演示:Delete 操作
SQL > DELETE FROM INFOS WHERE STUID='s100103';
1 ROW DELETED
SQL > COMMIT;
★ TRUNCATE
在数掂库操作中,TRUNCATE命令(是一个DDL命令) 可以把表中的所有数据一次性全部删除,语法是:
TRUNCATE TABLE 表名。
TRUNCATE 和DELETE 都能把表中的数据全部删除,他们的区别是:
t. TRUNCATE 是 DDL命令,删除的数据不能恢复;DELETE 命令是DML 命令,删除后的数据可以通过日志文件恢复。
2. 如果一个表中数据记录很多,TRUNCATE 相对 DELETE 速度快。
由于 TRUNCATE 命令比较危险,因此在实际开发中,TRUNCATE 命令慎用。
你错过的不只是一个机会,而是一个时代!微信公众号:bdqnzlx QQ:598756835
猜你喜欢
- 2025-05-10 金仓数据库日志大揭秘:WalMiner工具实战全解析
- 2025-05-10 十年之重修MySQL原理(十年之重修mysql原理是什么)
- 2025-05-10 值得收藏的Oracle数据库性能优化(oraclesql性能优化)
- 2025-05-10 MySQL锁机制:从表锁到MVCC,一场数据库的“锁”事大戏
- 2025-05-10 MySQL日志篇(mysql日志详解)
- 2025-05-10 十个你必须会的mysql面试题(mysql面试题经典)
- 2025-05-10 利用Oracle触发器实现不同数据库之间的数据同步
- 2025-05-10 Spring 云微服务的组件测试(spring cloud微服务组件)
- 2025-05-10 GaussDB关键技术原理|高可用:逻辑复制
- 2025-05-10 一文了解MySQL Binlog(一文了解太空安全有多重要)
- 最近发表
-
- 绝区零:公测必看!300菲林兑换码、萌新补给一览!切勿踩坑!
- 事半功倍 轻松制作可交互移动原型
- LOL英雄联盟美服注册教材 教你玩转美服
- 「正点原子Linux连载」第五十八章Linux INPUT子系统实验(一)
- 如何轻松薅Cursor羊毛:用免手机号邮箱快速注册
- C/C++基础语法复习(一):C++与C语言的区别,主要有这些
- 永久免费的高配容器Clawcloud,超爽体验!
- Spaceship低价注册域名 | 每年5元不到 | XYZ域名 | 托管cloudflare
- 云杉网络DeepFlow基于Free5GC的方案示例
- alma8飞速搭建zabbix6、微信报警、windows、linux、交换机监控
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)