oracle 创建表中又有表,oracle创建表
一.創建表
商品種類表
drop table category
create table category(
cid number(4) primary key,
cname varchar2(100),
cdesc varchar2(400)
)
二.常見的字段類型5種
1. varchar2(20) 可變長度字符串 最長為20個字節 如果不夠20個字節
例如插入 ‘aaa‘ 只占3個字節 解決空間 查詢的時候效率低
最長 4k
2. char(20) 定長字符串
如果該字段插入的值 不到20個字節 也會占用20個字節的空間 浪費空間 查詢效率高
最長 2k
3. long 變長字符串
2gb
4. number(8,3) 數值類型
5. date 日期類型
create table 表名(
字段 字段類型 約束
)
6種約束
一. 主鍵約束
primary key
create table category(
cid number(4) primary key, --字段級約束
cname varchar2(100),
cdesc varchar2(400)
)
特點: 非空且唯一, 使用主鍵來標示唯一的一條記錄
每張表都要有一個主鍵
使用主鍵是為了保證 實體完整性... 數據應該是完整的
*如何創建組合主鍵
create table category(
cid number(4),
cname varchar2(100),
cdesc varchar2(400),
constraint pk_cname_cdesc primary key(cname,cdesc) --表級約束
)
2. 非空約束
not null
create table category(
cid number(4) primary key,
cname varchar2(100),
cdesc varchar2(400) not null
)
3. 唯一約束
unique
create table category(
cid number(4) primary key,
cname varchar2(100) unique,
cdesc varchar2(400)
)
4. 檢查性約束
check
create table student(
sno varchar2(10) primary key,
name varchar2(20),
age number(3),
constraint check_age check(age>=0 and age<=120)
)
5. 默認約束
默認值 某個字段設置了默認約束以后 不插入任何值 取的是默認值
default
create table student(
sno varchar2(10) primary key,
name varchar2(20),
age number(3),
grade number(1) default 1,
constraint check_age check(age>=0 and age<=120)
)
--grade字段不插入值 默認是1
insert into student(sno,name,age) values(‘2‘,‘趙英龍‘,22)
insert into student(sno,name,age) values(‘2‘,‘趙英龍‘,22,null);--插入null就是null
6. 外鍵約束
主鍵約束是為了保證數據的 實體完整性
外鍵約束是為了保證數據的 參照完整性
create table product(
pid number(10) primary key,
pname varchar2(50),
pdesc varchar2(500),
cid number(4),
constraint fk_product_cid_category_cid foreign key(cid) references category(cid)
)
(1) 向從表中插入數據的時候 需要先從主表中檢查一下 有沒有與之對應的記錄
如果有 可以插入,如果主表中沒有與之對應的記錄 無法插入
違反完整性約束條件 未找到父項關鍵字
(2) 從主表中刪除記錄的時候,需要先從 從表中查找有沒有與之對應的記錄 如果有則不能刪除。
delete from category where cid=1
違反完整性約束條件 已找到子記錄
如果想刪除cid為1的商品種類 需要先把從表中(product表) cid為1的記錄都刪除 才可以刪主表的記錄
**************************************級聯刪除***********************************************
--級聯刪除
create table product(
pid number(10) primary key,
pname varchar2(50),
pdesc varchar2(500),
cid number(4),
constraint fk_product_cid_category_cid foreign key(cid) references category(cid) on delete cascade
)
刪除cid=1的商品種類時 會級聯把 cid為1的product記錄也刪除
總結
以上是生活随笔為你收集整理的oracle 创建表中又有表,oracle创建表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适合oracle运行的软件环境,创建最适
- 下一篇: oracle 10g 更换ocr,Ora