【自用】Oracle创建用户、表空间、表(实现主键自增触发器)

一、创建表空间

1.Windows:
create tablespace RAGDOLLTABLESPACE datafile 'G:\app\Oracle19c\RAGDOLL_TABLESPACE\RAGDOLLTABLESPACE.dbf' size 500M reuse autoextend on next 40M maxsize unlimited;
2.Linux:
create tablespace RAGDOLLTABLESPACE datafile '/home/oracle/app/oracle/oradata/helowin/RAGDOLLTABLESPACE.dbf' size 500M reuse autoextend on next 40M maxsize unlimited;

二、创建用户并指定表空间

1.Windows & Linux
create user RAGDOLLUSER identified by fish0424 default tablespace RAGDOLLTABLESPACE;

三、为用户赋权

1.Windows & Linux
grant dba to RAGDOLLUSER;

四、使用Navicat连接Oracle19c

1.配置好Navicat环境(sqlplus、oci.dll文件)

在这里插入图片描述

2.设定好连接,开始连接

在这里插入图片描述

3.连接成功

在这里插入图片描述

五、创建表(并设定主键自增)

1.创建表并指定主键
--创建表并指定主键
-- 一、创建表并指定主键
	-- 1.创建表 DEPARTMENT
	CREATE TABLE DEPARTMENT(
		-- 部门编号
		ID NUMBER PRIMARY KEY,
		-- 部门名
		DEPARTMENT_NAME VARCHAR2(50),
		-- ## 新属性:部门类型(显示)
		DEPARTMENT_TYPE VARCHAR2(50),	
		-- 员工数量
		NUM_OF_STAFF NUMBER,
		-- 添加时间
		ADD_TIME VARCHAR2(50)
	);

	-- 2.创建表 DISTRIBUTE
	CREATE TABLE DISTRIBUTE(
		-- 指派号
		ID NUMBER PRIMARY KEY,
		-- 发送部门
		FROM_DEPARTMENT VARCHAR2(100),
		-- 接收部门
		TO_DEPARTMENT VARCHAR2(100),
		-- 指派时间
		ORDER_TIME VARCHAR2(50)
	);

	-- 3.创建表 STAFF
	CREATE TABLE STAFF(
		-- 编号
		ID NUMBER PRIMARY KEY,
		-- 姓名
		NAME VARCHAR2(50),
		-- 电话
		TEL VARCHAR2(50),
		-- 归属部门
		DEPARTMENT VARCHAR2(100),
		-- ## 新属性:部门类型(不显示至前端)
		DEPARTMENT_TYPE VARCHAR2(50),
		-- 职务
		JOB VARCHAR2(50),
		-- 管理端权限
		ORDER_ADMIN VARCHAR2(25),
		-- 添加时间
		ADD_TIME VARCHAR(50),
		-- ## 新属性:用户名(显示)
		USERNAME VARCHAR(100),
		-- ## 新属性:密码(显示)
		PASSWORD VARCHAR(100)
	);
	
	-- 4.创建表 PIPE
	CREATE TABLE PIPE(
		-- 编号
		ID NUMBER PRIMARY KEY,
		-- 名称
		NAME VARCHAR2(50),
		-- 规格型号
		MODEL VARCHAR2(50),	
		-- 生产日期
		PRODUCE_TIME VARCHAR2(50),
		-- 检测日期
		EXAM_TIME VARCHAR2(50),
		-- 单位(当前所处的部门)
		DEPARTMENT_ID NUMBER,
		-- QRCode
		QRCODE VARCHAR2(4000)
	);
	
	-- 5.创建表 TRANSFORM
	CREATE TABLE TRANSFORM(
		-- 记录号
		ID NUMBER PRIMARY KEY,
		-- 钢管编号
		PIPE_ID VARCHAR2(100),
		-- 操作
		OPERATION VARCHAR2(100),
		-- 操作时间
		OPERATION_TIME VARCHAR2(50),
		-- 操作人
		OPERATION_PERSON VARCHAR2(50)
	);
2.创建id自增序列规则
-- 二、创建id自增序列规则
	-- 1.DEPARTMENT 主键自增 序列规则
	CREATE SEQUENCE DEPARTMENT_ID
		INCREMENT BY 1
		MINVALUE 1
		NOMAXVALUE
		START WITH 1
		NOCACHE;
		
	-- 2.DISTRIBUTE 主键自增 序列规则
	CREATE SEQUENCE DISTRIBUTE_ID
		INCREMENT BY 1
		MINVALUE 1
		NOMAXVALUE
		START WITH 1
		NOCACHE;
		
	-- 3.STAFF 主键自增 序列规则
	CREATE SEQUENCE STAFF_ID
		INCREMENT BY 1
		MINVALUE 1
		NOMAXVALUE
		START WITH 1
		NOCACHE;
		
	-- 4.PIPE 主键自增 序列规则
	CREATE SEQUENCE PIPE_ID
		INCREMENT BY 1
		MINVALUE 1
		NOMAXVALUE
		START WITH 1
		NOCACHE;
		
	-- 5.TRANSFORM 主键自增 序列规则
	CREATE SEQUENCE TRANSFORM_ID
		INCREMENT BY 1
		MINVALUE 1
		NOMAXVALUE
		START WITH 1
		NOCACHE;
3.创建id自增触发器
-- 三、创建触发器
	-- 1.创建 DEPARTMENT ID自增触发器 DEPARTMENT_ID_AUTOINCREASE
	CREATE OR REPLACE TRIGGER DEPARTMENT_ID_AUTOINCREASE
	BEFORE INSERT ON DEPARTMENT FOR EACH ROW
	BEGIN
	SELECT DEPARTMENT_ID.NEXTVAL INTO:NEW.ID FROM dual;END;
	
	-- 2.创建 DISTRIBUTE ID自增触发器 DISTRIBUTE_ID_AUTOINCREASE
	CREATE OR REPLACE TRIGGER DISTRIBUTE_ID_AUTOINCREASE
	BEFORE INSERT ON DISTRIBUTE FOR EACH ROW
	BEGIN
	SELECT DISTRIBUTE_ID.NEXTVAL INTO:NEW.ID FROM dual;END;
	
	-- 3.创建 STAFF ID自增触发器 STAFF_ID_AUTOINCREASE
	CREATE OR REPLACE TRIGGER STAFF_ID_AUTOINCREASE
	BEFORE INSERT ON STAFF FOR EACH ROW
	BEGIN
	SELECT STAFF_ID.NEXTVAL INTO:NEW.ID FROM dual;END;
	
	-- 4.创建 PIPE ID自增触发器 PIPE_ID_AUTOINCREASE
	CREATE OR REPLACE TRIGGER PIPE_ID_AUTOINCREASE
	BEFORE INSERT ON PIPE FOR EACH ROW
	BEGIN
	SELECT PIPE_ID.NEXTVAL INTO:NEW.ID FROM dual;END;
	
	-- 5.创建 TRANSFORM ID自增触发器 TRANSFORM_ID_AUTOINCREASE
	CREATE OR REPLACE TRIGGER TRANSFORM_ID_AUTOINCREASE
	BEFORE INSERT ON TRANSFORM FOR EACH ROW
	BEGIN
	SELECT TRANSFORM_ID.NEXTVAL INTO:NEW.ID FROM dual;END;
4.插入数据测试语句
-- 四、插入数据测试语句
	-- 1.DEPARTMENT 插入测试数据
	INSERT INTO DEPARTMENT(DEPARTMENT_NAME,NUM_OF_STAFF) values ('name1','3');
	INSERT INTO DEPARTMENT(DEPARTMENT_NAME,NUM_OF_STAFF) values ('name2','13');
	
	-- 2.DISTRIBUTE 插入测试数据
	INSERT INTO DISTRIBUTE(FROM_DEPARTMENT,TO_DEPARTMENT) values ('name1','3');
	INSERT INTO DISTRIBUTE(FROM_DEPARTMENT,TO_DEPARTMENT) values ('name2','13');
	
	-- 3.STAFF 插入测试数据
	INSERT INTO STAFF(NAME,TEL) values ('name1','3');
	INSERT INTO STAFF(NAME,TEL) values ('name2','13');
	
	-- 4.PIPE 插入测试数据
	INSERT INTO PIPE(NAME,MODEL) values ('name1','3');
	INSERT INTO PIPE(NAME,MODEL) values ('name2','13');
	
	-- 5.TRANSFORM 插入测试数据
	INSERT INTO TRANSFORM(OPERATION,OPERATION_TIME) values ('name1','3');
	INSERT INTO TRANSFORM(OPERATION,OPERATION_TIME) values ('name2','13');
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MicroLindb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值