Oracle 学习之 DML 语句

1. 数据库

2. 表

2.1. SELECT

sql 复制代码
SELECT 
	* 
FROM 
	SYS_USER
WHERE
	AGE > 18;

2.2. INSERT

sql 复制代码
INSERT INTO SYS.SYS_USER(
	ID, 
	USER_NAME, 
	AGE, 
	SEX, 
	CRT_BY, 
	CRT_TM,
	UPD_BY,
	UPD_TM
) VALUES (
	sys_guid(), 
	'ZHANGSAN', 
	18, 
	'1', 
	'100001', 
	sysdate,
	'100001',
	to_date('2024-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS')
);

2.3. UPDATE

sql 复制代码
UPDATE
	SYS_USER
SET 
	USER_NAME = 'ZHANGSAN',
	AGE = 18
WHERE
	USER_ID = '0001';

2.4. DELETE

sql 复制代码
DELETE 
	SYS_USER
WHERE 
	USER_ID = '0001';

2.5. MERGE INTO

sql 复制代码
MERGE INTO 
	SYS_USER su
USING (
	<foreach collection = "list" item = "item" separator="UNION ALL">
	SELECT 
		#{req.id} AS id,
		#{req.userName} AS userName,
		#{req.age} AS age,
		#{req.sex} AS sex,
		#{req.crtBy} AS crtBy,
		#{req.crtTm} AS crtTm,
		#{req.updBy} AS updBy,
		#{req.updTm} AS updTm
	FROM dual
	</foreach>
) t
ON (
	su.id = t.id
)
WHEN MATCHED THEN 
	UPDATE SET 
		su.USER_NAME = t.userName,
		su.AGE = t.age,
		su.SEX = t.sex,
		su.UPD_BY = t.updBy,
		su.UPD_TM = t.updTm
WHEN NOT MATCHED THEN 
	INSERT (
		su.ID,
		su.USER_NAME,
		su.AGE,
		su.SEX,
		su.CRT_BY,
		su.CRT_TM,
		su.UPD_BY,
		su.UPD_TM
	) VALUES (
		sys_guid(),
		t.userName,
		t.age,
		t.sex,
		t.crtBy,
		t.crtTm,
		t.updBy,
		t.updTm
	)

3. 字段

3.1. 数据类型

数据类型 分类 简述 示例 默认 大小
NUMBER 数字 精度:1, 38 小数位数:-64, 127 NUMBER(18,4),其中18 为精度,4 为小数位数, 精度:38 小数位数:0
BINARY_DOUBLE 数字 用于存储双精度的64位浮点数
BINARY_FLOAT 数字
CHAR 字符串
VARCHAR 字符串
VARCHAR2 字符串
NVARCHAR2 字符串 sys_guid()
LONG 字符串
LONG RAW 字符串
BLOB 字符串
CLOB 字符串
NCLOB 字符串
DATE 时间
TIMESTAMP 时间
TIMESTAMP WITH TIME ZONE 时间
TIMESTAMP WITH LOCAL TIME ZONE 时间
INTERVAL_DAY_TO_SECOND 时间
INTERVAL_YEAR_TO_MONTH 时间
RAW 字符串

3.2. 特殊场景

场景 函数 示例
主键 sys_guid()
时间 sysdate TO_DATE('2024-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') / TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')

4.

相关推荐
爱喝水的鱼丶1 小时前
SAP-ABAP:条件判断与循环控制语句(7篇)第七篇:性能优化:条件与循环代码的常见性能瓶颈与优化方案
学习·算法·性能优化·sap·abap
运维行者_6 小时前
Applications Manager中的Redis监控
大数据·服务器·数据库·人工智能·网络协议
悦数图数据库8 小时前
图数据库选型指南 2026:从架构、性能、AI 适配三个维度看 悦数科技
数据库·人工智能·架构
handler019 小时前
【MySQL】常用命令总结(库与表增删查改)
运维·数据库·mysql·命令·总结
week@eight10 小时前
Linux - Doris
linux·运维·数据库·mysql
小新同学^O^10 小时前
简单学习 --> 模型参数
学习·llm·大模型参数
cdbqss110 小时前
VB2026 菜单生成基类 BqGetMenuStrip
数据库·经验分享·学习·oracle·vb
洛水水10 小时前
Redis 分布式锁详解:实现与缺陷
数据库·redis·分布式
韶博雅10 小时前
oracle中表和列转大写
数据库·oracle