oracle数据的完整性约束
2017-05-25 08:08
309 查看
创建一个用户
set sqlprompt "_USER > "
create user jsx identified by 123; //创建用户jsx
grant all privileges to jsx; //给用户授权
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='JSX'; //查看用户权限
SELECT * FROM USER_SYS_PRIVS; //200
SELECT * FROM SESSION_PRIVS; //208
ALTER USER SCOTT ACCOUNT UNLOCK;//IDENTIFIED BY 123;可选解锁scott用户
//创建books表
CREATE TABLE books(
bookid NUMBER(6) PRIMARY KEY,
booknum VARCHAR2(6),
bookname VARCHAR2(60),
author VARCHAR(50),
publish VARCHAR2(50),
bookprice NUMBER(8,2),
category CHAR(10),
booktime DATE DEFAULT SYSDATE
)
STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 20 MAXEXTENTS 15)
TABLESPACE users;
//创建orders表
CREATE TABLE orders(
order_id VARCHAR2(20) CONSTRAINT O_PK PRIMARY KEY,
order_data DATE DEFAULT SYSDATE,
qty INTEGER,
payterms VARCHAR2(12),
book_id NUMBER(6) CONSTRAINT O_FK REFERENCES books(bookid)
);
//创建表空间
CREATE TABLESPACE indx1 DATAFILE 'D:\indx1.dbf' SIZE 20M;
//创建authors表 定义主键约束
CREATE TABLE authors(
author_id VARCHAR2(15) CONSTRAINT A_PK PRIMARY KEY
USING INDEX TABLESPACE indx1,
author_fname varchar2(20) NOT NULL,
author_lname VARCHAR2(40) NOT NULL,
phone CHAR(20) NOT NULL,
addr VARCHAR2(50),
city VARCHAR2(20),
state CHAR(10),
zip CHAR(10)
);
//创建bookauthors表 定义外键约束 均为列级约束 主键约束均为表级约束
CREATE TABLE bookauthors(
author_id VARCHAR2(15) REFERENCES authors(author_id),
book_id NUMBER(6) REFERENCES books(bookid),
author_ord NUMBER,
royalty INTEGER,
CONSTRAINT BA_PK PRIMARY KEY(author_id,book_id)
);
添加和删除约束
CREATE TABLE employees(
emp_id CHAR(10),
lname VARCHAR2(30),
fname VARCHAR2(20),
job_id NUMBER(6),
job_lv INTEGER,
pub_id CHAR(4),
hiredate DATE
);
CREATE TABLE jobs(
jobid NUMBER(6) PRIMARY KEY,
jobname VARCHAR2(20) NOT NULL,
minlvl INTEGER,
maxlvl INTEGER
);
添加主键约束
ALTER TABLE employees ADD CONSTRAINT E_PK PRIMARY KEY(emp_id);
添加外键约束
ALTER TABLE employees ADD CONSTRAINT E_FK FOREIGN KEY(job_id)
REFERENCES jobs(jobid)
ON DELETE CASCADE;
添加非空约束
ALTER TABLE employees MODIFY lname CONSTRAINT E_NK1 NOT NULL;
ALTER TABLE employees MODIFY fname CONSTRAINT E_NK2 NOT NULL;
删除约束
ALTER TABLE employees DROP CONSTRAINT E_NK1;
删除E_PK主键约束
ALTER TABLE employees DROP CONSTRAINT E_PK;
重新添加E_PK主键约束
ALTER TABLE employees ADD CONSTRAINT E_PK PRIMARY KEY(emp_id);
第二种方法删除主键约束
ALTER TABLE employees DROP PRIMARY KEY;
约束的状态和延迟检查 禁用启用约束
alter table employees disable constraint e_nk2;
alter table employees modify constraint e_nk2 enable;
alter table employees disable primary key cascade;
set sqlprompt "_USER > "
create user jsx identified by 123; //创建用户jsx
grant all privileges to jsx; //给用户授权
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='JSX'; //查看用户权限
SELECT * FROM USER_SYS_PRIVS; //200
SELECT * FROM SESSION_PRIVS; //208
ALTER USER SCOTT ACCOUNT UNLOCK;//IDENTIFIED BY 123;可选解锁scott用户
//创建books表
CREATE TABLE books(
bookid NUMBER(6) PRIMARY KEY,
booknum VARCHAR2(6),
bookname VARCHAR2(60),
author VARCHAR(50),
publish VARCHAR2(50),
bookprice NUMBER(8,2),
category CHAR(10),
booktime DATE DEFAULT SYSDATE
)
STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 20 MAXEXTENTS 15)
TABLESPACE users;
//创建orders表
CREATE TABLE orders(
order_id VARCHAR2(20) CONSTRAINT O_PK PRIMARY KEY,
order_data DATE DEFAULT SYSDATE,
qty INTEGER,
payterms VARCHAR2(12),
book_id NUMBER(6) CONSTRAINT O_FK REFERENCES books(bookid)
);
//创建表空间
CREATE TABLESPACE indx1 DATAFILE 'D:\indx1.dbf' SIZE 20M;
//创建authors表 定义主键约束
CREATE TABLE authors(
author_id VARCHAR2(15) CONSTRAINT A_PK PRIMARY KEY
USING INDEX TABLESPACE indx1,
author_fname varchar2(20) NOT NULL,
author_lname VARCHAR2(40) NOT NULL,
phone CHAR(20) NOT NULL,
addr VARCHAR2(50),
city VARCHAR2(20),
state CHAR(10),
zip CHAR(10)
);
//创建bookauthors表 定义外键约束 均为列级约束 主键约束均为表级约束
CREATE TABLE bookauthors(
author_id VARCHAR2(15) REFERENCES authors(author_id),
book_id NUMBER(6) REFERENCES books(bookid),
author_ord NUMBER,
royalty INTEGER,
CONSTRAINT BA_PK PRIMARY KEY(author_id,book_id)
);
添加和删除约束
CREATE TABLE employees(
emp_id CHAR(10),
lname VARCHAR2(30),
fname VARCHAR2(20),
job_id NUMBER(6),
job_lv INTEGER,
pub_id CHAR(4),
hiredate DATE
);
CREATE TABLE jobs(
jobid NUMBER(6) PRIMARY KEY,
jobname VARCHAR2(20) NOT NULL,
minlvl INTEGER,
maxlvl INTEGER
);
添加主键约束
ALTER TABLE employees ADD CONSTRAINT E_PK PRIMARY KEY(emp_id);
添加外键约束
ALTER TABLE employees ADD CONSTRAINT E_FK FOREIGN KEY(job_id)
REFERENCES jobs(jobid)
ON DELETE CASCADE;
添加非空约束
ALTER TABLE employees MODIFY lname CONSTRAINT E_NK1 NOT NULL;
ALTER TABLE employees MODIFY fname CONSTRAINT E_NK2 NOT NULL;
删除约束
ALTER TABLE employees DROP CONSTRAINT E_NK1;
删除E_PK主键约束
ALTER TABLE employees DROP CONSTRAINT E_PK;
重新添加E_PK主键约束
ALTER TABLE employees ADD CONSTRAINT E_PK PRIMARY KEY(emp_id);
第二种方法删除主键约束
ALTER TABLE employees DROP PRIMARY KEY;
约束的状态和延迟检查 禁用启用约束
alter table employees disable constraint e_nk2;
alter table employees modify constraint e_nk2 enable;
alter table employees disable primary key cascade;
相关文章推荐
- Oracle维护数据完整性——约束
- Oracle 数据完整性,约束
- oracle---数据完整性和约束
- oracle 基本操作三:DML语句,数据完整性之约束,约束的维护
- Oracle中数据完整性约束
- Oracle约束——维护数据的完整性
- Oracle数据完整性和约束性
- Oracle中数据完整性约束
- Oracle 维护数据的完整性 一 约束
- Oracle中数据完整性约束
- 插入数据违反完整性约束(oracle)
- Oracle常用数据类型和完整性约束
- 子查询 oracle输入 set语句 MERGE 事务 数据类型 约束 视图 外键
- oracle 如何查看一个数据表的 约束,索引
- oracle 数据类型 truncate 回闪 脚本约束
- oracle完整性约束条件
- Oracle 数据的完整性
- Oracle数据字典中查看约束信息/约束相关笔记
- 利用Oracle的enable validate约束进行数据检查
- 6、数据完整性、约束、范式等数据库知识点概述