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.

相关推荐
流星白龙9 分钟前
【MySQL高阶】26.事务(1)
数据库·mysql
三十..1 小时前
Redis 核心原理与高可用架构实践
运维·数据库·redis
这个DBA有点耶1 小时前
索引优化深潜(下):索引合并、ICP 与索引设计的实战法则
数据库·mysql·架构
努力努力再努力wz1 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
sensen_kiss2 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程
JdSnE27zv2 小时前
Qt 操作SQLite数据库
数据库·qt·sqlite
wu_ye_m2 小时前
学习c语言第35天 函数声明和定义
c语言·开发语言·学习
tedcloud1232 小时前
HyperFrames部署教程:用HTML生成MP4视频
前端·数据库·人工智能·html·音视频
布朗克1682 小时前
25 IO流高级操作——序列化、NIO与Files工具类
java·数据库·io·nio
阿演2 小时前
DataDjinn 新版本更新:新增 Oracle 支持,查询窗口、表预览和连接树继续打磨
数据库·oracle·ai编程·数据库连接工具