日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 创建表中又有表,oracle创建表

發布時間:2024/4/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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创建表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。