Oracle创建数据表实例。
1、创建数据表
--判断数据表是否存在,存在则删除
DECLARE
IS_EXIST NUMBER;
BEGIN
SELECT COUNT(*) INTO IS_EXIST FROM ALL_TABLES WHERE TABLE_NAME = 'STUDENT_INFO';
IF IS_EXIST = 1 THEN
--删除表以及所有引用这个表的视图、约束或触发器等
EXECUTE IMMEDIATE 'DROP TABLE STUDENT_INFO CASCADE CONSTRAINTS';
END IF;
END;
--创建“学生信息”数据表
CREATE TABLE STUDENT_INFO
(
STU_ID INT,--学号
STU_NAME VARCHAR2(8),--姓名
EMAIL VARCHAR2(20),--邮箱
SEX CHAR(2),--性别
AGE INT,--年龄
CLASS_ID VARCHAR2(20),--班级编号
REGDATE DATE DEFAULT SYSDATE --创建期间
);
2、创建约束
--创建学号的主键约束
ALTER TABLE STUDENT_INFO ADD CONSTRAINT STU_PK PRIMARY KEY(STU_ID);
--创建姓名的非空约束
ALTER TABLE STUDENT_INFO MODIFY STU_NAME NOT NULL;
--创建邮箱的唯一性约束
ALTER TABLE STUDENT_INFO ADD CONSTRAINT EMAIL_UK UNIQUE(EMAIL);
--创建性别的默认约束
ALTER TABLE STUDENT_INFO MODIFY SEX DEFAULT '女';
--创建年龄的检查约束
ALTER TABLE STUDENT_INFO ADD CONSTRAINT AGE_CK CHECK(AGE>0 AND AGE<120);或者在创建表的同时设置约束
--创建“学生信息”数据表
CREATE TABLE STUDENT_INFO
(
STU_ID INT PRIMARY KEY,--学号,并设置主键约束
STU_NAME VARCHAR2(8)NOT NULL,--姓名,并设置非空约束
EMAIL VARCHAR2(20)CONSTRAINT EMAIL_UK UNIQUE,--邮箱,并设置唯一性约束
SEX CHAR(2)DEFAULT '女',--性别,并设置默认约束
AGE INT CONSTRAINT AGE_CK CHECK(AGE>0 AND AGE<120),--年龄,并设置检查约束
CLASS_ID VARCHAR2(20),--班级编号
REGDATE DATE DEFAULT SYSDATE --创建期间
);
3、创建索引
--创建班级编号索引
CREATE INDEX STUDENT_INDEX ON STUDENT_INFO(CLASS_ID);
4、创建序列
--创建序列
CREATE SEQUENCE STU_SEQ
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999999999
创建一个行级触发器,该触发器在STUDENT_INFO(学生信息)表插入数据时被触发,并且在该触发器的主体中实现设置STUDENT_INFO(学生信息)表STU_ID列的值。
CREATE OR REPLACE TRIGGER TRI_INSERT_STU
BEFORE INSERT
ON STUDENT_INFO --关于STUDENT_INFO数据表的STU_ID,在插入STU_ID列之前,引起该触发器的运行
FOR EACH ROW --创建行级触发器
BEGIN
SELECT STU_SEQ.NEXTVAL
INTO :NEW.STU_ID
FROM DUAL; --从序列中生成一个新的数值,赋值给当前插入行的STU_ID列
END;
5、测试
--测试
INSERT INTO STUDENT_INFO(STU_NAME,EMAIL,AGE,CLASS_ID) VALUES('张三','zhangsan@qq.com',18,'1001');
总结
以上是编程之家为你收集整理的Oracle创建数据表实例全部内容,希望文章能够帮你解决Oracle创建数据表实例所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。