oracle经典建表语句

时间:2021-07-15 23:16:23
 
create table EMP
(
EMPNO
NUMBER(4) PRIMARY KEY,
ENAME
VARCHAR2(10),
JOB
VARCHAR2(9),
MGR
NUMBER(4),
HIREDATE DATE,
SAL
NUMBER(7,2),
COMM
NUMBER(7,2),
DEPNO
NUMBER(4)
);
CREATE TABLE Dept(
DEPTNO
NUMBER(4),
DNAME
VARCHAR2(14),
LOC
VARCHAR2(13)
);
CREATE TABLE Salgrade
(
GRADE
NUMBER,
LOSAL
NUMBER,
HISAL
NUMBER
);
CREATE TABLE Bonus
(
ENAME
VARCHAR(10),
JOB
VARCHAR2(9),
SAL
NUMBER,
COMM
NUMBER
);
INSERT INTO Dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO Dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO Dept VALUES (30,'SALES','CHICAGO');
INSERT INTO Dept VALUES (40,'OPERATIONS','BOSTON');
SELECT * FROM DEPT;
INSERT INTO EMP VALUES
(
7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,null,20);
INSERT INTO EMP VALUES
(
7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES
(
7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES
(
7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES
(
7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES
(
7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES
(
7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES
(
7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES
(
7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES
(
7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES
(
7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(
7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
select * from emp;
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
select * from salgrade;
commit;


--外键约束
CREATE TABLE QQ(
GARDE
NUMBER(3) PRIMARY KEY,
GNAME
VARCHAR2(20)
);
CREATE TABLE FIREND(
FID
NUMBER(3),
NAME
VARCHAR2(20),
GRADE
NUMBER(3),
FOREIGN KEY(GRADE) REFERENCES QQ(GARDE) ON DELETE CASCADE
);













创表时创建外键:
FOREIGN KEY(列名) REFERENCES 引用外键表名(列名) ON DELETE CASCADE

创表后添加外键:
alter TABLE 表名 ADD constraint 外键约束名 FOREIGN KEY(列名) REFERENCES 引用外键表(列名)
ON UPDATE RESTRICT //同步更新
ON DELETE RESTRICT // 同步删除;
.....................................................................................................
oracle实现主键id自增



-- 创建表
CREATE TABLE t_module (
module_id
INT NOT NULL ,
module_code
varchar(32) NOT NULL,
module_name
varchar(32) NOT NULL,
isnew
INT DEFAULT 0 ,
PRIMARY KEY (module_id)
)
-- 为 表 创建 序列
--
从1 开始, 每次 加1
CREATE SEQUENCE SEQ_MODULE START WITH 1 INCREMENT BY 1;
--查询 下一个 id
select seq_module.nextval from dual