CREATE TABLE SMART_MULTITYPE_LOG
(
log_id CHAR(10) PRIMARY KEY, -- 固定长度主键
title VARCHAR(100), -- 可变长标题
seq_no INT,
total_cnt BIGINT,
phase_step SMALLINT,
tiny_flag TINYINT,
status_code BYTE,
price NUMERIC(12,2),
weighting NUMBER(8,4),
raw_bin BINARY(16), -- 例如 MD5
file_sha VARBINARY(64), -- 例如 SHA256
lat FLOAT,
lng DOUBLE,
temperature REAL,
is_active BIT,
happen_date DATE,
happen_time TIME,
happen_ts TIMESTAMP,
valid_span INTERVAL YEAR(2) TO MONTH,
happen_tz TIME WITH TIME ZONE,
note_text TEXT,
thumb_img IMAGE,
attach_blob BLOB,
full_report CLOB
);
-- 事件一:馆藏文物定期检测
INSERT INTO SMART_MULTITYPE_LOG (
log_id, title, seq_no, total_cnt, phase_step, tiny_flag, status_code, price,
weighting, raw_bin, file_sha, lat, lng, temperature, is_active,
happen_date, happen_time, happen_ts, valid_span, happen_tz,
note_text, thumb_img, attach_blob, full_report
)
VALUES (
'EVT000001', '青铜器春季巡检', 1, 1200, 2, 1, 12, 3520.50,
0.8721, HEXTORAW('5F4DCC3B5AA765D61D8327DEB882CF99'), HEXTORAW('D7A8FBB3F6B8C58B'), 30.57, 114.30, 21.8, 1,
DATE '2025-03-12', TIME '09:30:00', TIMESTAMP '2025-03-12 09:30:00', TO_YMINTERVAL('1-6'), TIME '09:30:00 +08:00',
'检测未发现明显破损', EMPTY_BLOB(), EMPTY_BLOB(), EMPTY_CLOB()
);
-- 事件二:文物临展借出登记
INSERT INTO SMART_MULTITYPE_LOG (
log_id, title, seq_no, total_cnt, phase_step, tiny_flag, status_code, price,
weighting, raw_bin, file_sha, lat, lng, temperature, is_active,
happen_date, happen_time, happen_ts, valid_span, happen_tz,
note_text, thumb_img, attach_blob, full_report
)
VALUES (
'EVT000002', '汉隶墨迹外借登记', 2, 300, 1, 0, 9, 12500.00,
0.9653, HEXTORAW('9D5DE678FE57BCCA610140957AFAB571'), HEXTORAW('ABCDEF1234567890'), 31.22, 121.48, 23.0, 1,
DATE '2025-04-01', TIME '14:15:00', TIMESTAMP '2025-04-01 14:15:00',
INTERVAL '0001-06' YEAR TO MONTH, TIME '14:15:00 +08:00',
'借展至南京博物院', EMPTY_BLOB(), EMPTY_BLOB(), EMPTY_CLOB()
);
-- 事件三:数字化修复项目
INSERT INTO SMART_MULTITYPE_LOG (
log_id, title, seq_no, total_cnt, phase_step, tiny_flag, status_code, price,
weighting, raw_bin, file_sha, lat, lng, temperature, is_active,
happen_date, happen_time, happen_ts, valid_span, happen_tz,
note_text, thumb_img, attach_blob, full_report
)
VALUES (
'EVT000003', '唐三彩马数字化修复', 3, 150, 3, 1, 5, 9800.75,
0.7435, HEXTORAW('E59A18C428CB38D5F260853678922E03'), HEXTORAW('1234567890ABCDEF'), 34.26, 108.95, 20.5, 0,
DATE '2025-05-18', TIME '10:45:00', TIMESTAMP '2025-05-18 10:45:00',
TO_YMINTERVAL('1-6'), TIME '10:45:00 +08:00',
'AR模型建立中,尚未完成渲染', EMPTY_BLOB(), EMPTY_BLOB(), EMPTY_CLOB()
);
UPDATE SMART_MULTITYPE_LOG
SET
note_text = '借展已结束,文物归还',
is_active = 0
WHERE
log_id = 'EVT000002';
DELETE FROM SMART_MULTITYPE_LOG
WHERE
log_id = 'EVT000003';
CREATE TABLE auto_test_identity (
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE auto_test_auto (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);
INSERT INTO auto_test_identity (name) VALUES ('张三');
INSERT INTO auto_test_identity (name) VALUES ('李四');
CREATE TABLE class_info (
class_id INT PRIMARY KEY,
class_name VARCHAR(50) NOT NULL
);
CREATE TABLE student_info (
student_id INT PRIMARY KEY, -- 主键约束(唯一且非空)
name VARCHAR(50) NOT NULL, -- 非空约束
id_number VARCHAR(18) UNIQUE, -- 唯一约束(身份证号不能重复)
age INT CHECK (age >= 0 AND age <= 120), -- 检查约束(0~120岁)
class_id INT, -- 外键字段(引用班级表)
CONSTRAINT fk_class FOREIGN KEY (class_id) REFERENCES class_info(class_id) -- 外键约束
);
INSERT INTO class_info VALUES (101, '软件工程一班');
INSERT INTO class_info VALUES (102, '计算机二班');
-- 符合所有约束的学生记录
INSERT INTO student_info VALUES (
1, '张三', '420101199001011234', 22, 101
);
INSERT INTO student_info VALUES (
2, '李四', '420101199202023456', 19, 102
);
INSERT INTO student_info VALUES (
1, '王五', '420101199303033333', 20, 101
);
-- 错误:违反主键约束 PRIMARY KEY
INSERT INTO student_info VALUES (
3, NULL, '420101199404044444', 21, 101
);
-- 错误:违反 NOT NULL 约束
INSERT INTO student_info VALUES (
4, '赵六', '420101199001011234', 23, 102
);
-- 错误:违反 UNIQUE 约束(身份证号已存在)
INSERT INTO student_info VALUES (
5, '钱七', '420101199505055555', 150, 101
);
-- 错误:违反 CHECK 约束(年龄超出范围)
INSERT INTO student_info VALUES (
6, '孙八', '420101199606066666', 20, 999
);
-- 错误:class_id = 999 不存在于 class_info 表中(外键约束失败)
CREATE TABLE row_table (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE list_table (
id INT PRIMARY KEY,
value FLOAT
)
STORAGE(ON COLUMN);
CREATE TABLE partition_table (
id INT,
created_date DATE
)
PARTITION BY RANGE (created_date) (
PARTITION p1 VALUES LESS THAN (DATE '2023-01-01'),
PARTITION p2 VALUES LESS THAN (DATE '2024-01-01'),
PARTITION pmax VALUES LESS THAN (MAXVALUE)
);
-- 定义一个对象类型
CREATE TYPE address_obj AS OBJECT (
province VARCHAR(50),
city VARCHAR(50)
);
-- 创建包含对象字段的表
CREATE TABLE object_table (
id INT PRIMARY KEY,
name VARCHAR(50),
address address_obj
);
CREATE GLOBAL TEMPORARY TABLE temp_table (
id INT,
note VARCHAR(100)
) ON COMMIT DELETE ROWS;
文章
阅读量
获赞