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.

相关推荐
爱可生开源社区17 小时前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸17721 小时前
《从零搭建NestJS项目》
数据库·typescript
西岸行者2 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest2 天前
数据库SQL学习
数据库·sql
jnrjian2 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
十月南城2 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark