基本表的定義

2021-09-19 13:28:22 字數 2924 閱讀 7988

create table 《表名》(《列名》《資料型別》 [列級完整性約束條件]

[,《列名》 《資料型別》 [列級完整性約束條件]

[,《表級完整性約束條件》]);

sql中約束分為以下6種

主碼約束(primary key)pk_course

外碼約束(foreign key)fk_c

非空約束 (not null)n_k

唯一約束 (unique)u_k

條件約束 (check)c_k

預設值約束 (default)d_k

主碼約束

例3-1 建立乙個課程表course,由課程號cno、課程名cname、先行課程號ccpno、學分ccredit四個屬性組成。

create table course2

(cno number(4) constraint pk_course primary key,

cname char(20),

cpno number(4),

ccredit number(4));

例3-2 對例3-1的約束改為表級約束。

create table course

(cno number(4),

cname char(20),

cpno number(4),

ccredit number(4),

constraint pk_course primary key(sno));

外碼約束
例3-3 建立表的同時建立表級外碼約束。

create table sc

(sno number(12),

cno varchar2(4),

grade number(3),

constraint pk_sc primary key (sno,cno),

constraint fk_c foreign key (cno) references course(cno)

);約束外碼要格外注意,sc(cno)的定義要與course表中的cno相同

比如(course)cno為varchar(4)那麼建表cno number(4)會報錯。

例3-4 對例3-3的表級外碼約束改為列級。

create table sc

(sno number(12),

cno varchar2(4) constraint fk_c references course(cno),

grade number(3),

constraint pk_sc primary key (sno,cno)

);

乙個外碼自身參照的例子

create table cou

(cno number(4) constraint pk_cou primary key,

cname char(20),

cpno varchar2(4) constraint fk_cp references course (cno),

ccredit number(4)

);

例3-6 將例3-5的列級改為表級約束

create table cou

(cno number(4) constraint pk_cou primary key,

cname char(20),

cpno varchar2(4) constraint fk_cp references course(cno),

ccredit number(4)

);//注意點:ccredit number(4)後面不用加逗號

否則報錯ora-00904: : invalid identifier

條件約束
例3-7 新增乙個check約束來保證每個學生的考試成績在0到100之間。

create table sc

(sno varchar2(12),

cno varchar2(4),

grade number(3) check(grade>=0 and grade<=100),

constraint pk_sc primary key (sno,cno),

constraint fk_sg foreign key (sno) references student(sno),

constraint fk_cg foreign key (cno) references course(cno));

create table test(

id number(5),

name varchar(10) not null,

*** varchar(2) constraint c_k check (*** in ('男','女'))

);drop table test;

非空約束
create table test(

name varchar(2) constraint n_t not null

);drop table test;

unique約束
create table test(

name varchar(2) constraint u_t unique

);drop table test;

default約束
create table studen

(sno number(12),

sname char(20),

s*** char(2) default ('男'),

sage number(3),

sdept char(10));

drop table studen;

SQL 基本表的定義

create database 資料庫名 use 資料庫名 create table 表名 屬性列名1 資料型別 列級約束條件 屬性列名2 資料型別 列級約束條件 表級約束條件 下面是sql語言資料型別介紹 資料型別 含義char n 定義定長度n的字串 不足n個自動補空格 varchar n 定義...

SQL server 定義基本表

use dbcreate table 所有者.表名 列名 資料型別 列完整性約束 列名 資料型別 列完整性約束 表完整性約束 on create table person id char 16 not null primary key,新增主鍵 name char 5 not null nchar ...

鍊錶的定義及其基本運算

include using namespace std typedef struct tagnodenode 該結點可看成是 存放了數值域data和指標域next的遞迴定義的指標 原來的結點宣告報錯。出錯原因為 typedef相當於為struct結構宣告了乙個新的名字,如 typedef int i...