创建数据库对象
创建表
在模式 DMHR 下创建表 CITY,并插入数据。示例语句如下所示:
CopyCREATE TABLE dmhr.city
(
city_id CHAR(3) NOT NULL,
city_name VARCHAR(40) NULL,
region_id INT NULL
);
插入数据
在 CITY 表中插入 11 条数据,为后续创建视图与创建触发器做准备。示例语句如下所示:
CopyINSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('BJ','北京',1);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('SJZ','石家庄',1);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('SH','上海',2);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('NJ','南京',2);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('GZ','广州',3);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('HK','海口',3);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('WH','武汉',4);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('CS','长沙',4);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('SY','沈阳',5);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('XA','西安',6);
INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('CD','成都',7);
查询插入数据
示例语句如下所示:
CopySELECT * FROM dmhr.city;
输出结果:

创建视图
对 CITY 表创建一个视图,命名为 V_CITY,保存 region_id 小于 4 的数据,列名有:city_id,city_name,region_id。示例语句如下所示:
CopyCREATE VIEW dmhr.v_city AS
SELECT
city_id ,
city_name ,
region_id
FROM
dmhr.city
WHERE
region_id < 4;
查询视图结果,示例语句如下所示:
CopySELECT * FROM dmhr.v_city;
输出结果:

创建存储过程
创建一个名为 PROC_1 的存储过程,入参数据类型为 INT,变量 B 赋予初始值 10,输出变量 A 的值为输入的变量 A 值与变量 B 值之和。示例语句如下所示:
CopyCREATE
PROCEDURE dmhr.proc_1
(a IN OUT INT)
AS
b INT:=10;
BEGIN
a:=a+b;
PRINT 'DMHR.PROC_1调用结果:'||a;
END;
调用存储过程,输入变量值 3,得到结果值 13。
CopyCALL dmhr.proc_1(3);
输出结果:

创建函数
创建一个名为 FUN_1 的存储函数。该函数的返回类型为 INT 类型。两个参数 A、B 的和赋给了变量 S,RETURN 语句则将变量 S 的值作为函数的返回值返回。示例语句如下所示:
CopyCREATE
FUNCTION dmhr.fun_1
(a INT, b INT)
RETURN INT
AS
s INT;
BEGIN
s:=a+b;
RETURN s;
END;
调用函数,给变量 A、B 分别赋值 4 和 5,得出结果 9。示例语句如下所示:
CopySELECT dmhr.fun_1(4,5);
输出结果:

创建序列
创建序列 SEQ_QUANTITY,起始值为 5,增量值为 2,最大值为 200。示例语句如下所示:
CopyCREATE SEQUENCE dmhr.seq_quantity START WITH 5 INCREMENT BY 2 MAXVALUE 200;
查询序列下一个值,示例语句如下所示:
CopySELECT dmhr.seq_quantity.nextval FROM dual;
输出结果:

创建触发器
创建一个触发器 TRG_UPD,当对表 CITY 进行更新操作时,定义的触发器 TRG_UPD 将被激发。示例语句如下所示:
CopyCREATE TRIGGER dmhr.trg_upd AFTER
UPDATE ON dmhr.city
FOR EACH ROW
BEGIN
PRINT 'UPDATE OPERATION ON CITY !!';
END;
对 CITY 表数据进行更新操作,测试触发器结果,示例语句如下所示:
CopyUPDATE dmhr.city SET city.region_id=8 WHERE city.city_id='XA';
输出结果:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




