SQL-CREATE TABLE
本文講講關于建立資料庫表結構的CREATE陳述句,我用的postgreSQL來實作,其他的應該大同小異,主要是了解SQL陳述句
語法
CREATE TABLE 的語法格式如下:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
...
);
CREATE TABLE 是一個關鍵詞,table_name為表名,表明必須在同一模式的其他表、序列、索引、視圖或外部表表名中唯一,
實體&講解
這里我直接拿當時資料庫的作業來詳細講解一下關于建立表結構的一些內容
現在需求如下:


這里我的實作的代碼如下:
CREATE TABLE student(
sno varchar(8) primary key not null,
sname varchar(8) not null,
ssex varchar(2) check((ssex = 'M') or (ssex='F')),
sbirthday date,
classno varchar(6) references class(classno),
Totalcredit smallint default 0
);
CREATE TABLE class(
classno varchar(6) primary key,
classname varchar(20) not null,
classmajor varchar(20),
classdept varchar(20),
studentnumber smallint check((studentnumber >=20) and (studentnumber <=40))
);
CREATE TABLE course(
cno varchar(6) primary key,
cname varchar(30) not null,
ccredit smallint check((ccredit>=0) and (ccredit<=100))
);
CREATE TABLE sc(
sno varchar(8) references student(sno),
cno varchar(6) references course(cno),
grade integer check((grade>=0) and (grade <= 100))
);
CREATE TABLE teacher(
tno numeric(6) primary key,
tname varchar(8) not null,
tsex varchar(2) check ((tsex = 'M') or (tsex='F')),
tbirthday date,
ttitle varchar(20)
);
CREATE TABLE teaching(
tno numeric(6) references teacher(tno),
cno varchar(6) references course(cno),
language varchar(10) check((language = 'Chinese') or (language = 'Bilingual') or (language = 'English'))
);
這里使用 \d 可以查看表格是否創建成功:

選取其中的CREATE TABLE student進行講解:
第一行CREATE TABLE student 是創建了表名為’student’的一張表,變數分別為:
- sno (varchar型別,長度為8位,作為主鍵)
- sname(varchar型別,長度為8位,不為空)
- ssex(varchar型別,長度為2位,只能為’M’或’F’)
- sbirthday(date型別)
- classno(varchar型別,長度為6位,此鍵為外鍵,參考class表的classno的值)
- TotalCredit(smallint型別,默認值為0)
可以使用 \d tablename 來查看表格的資訊

這里我解釋一下第一行的index是怎么回事,這里的index是自動建立的,postgreSQL建立的默認索引是btree索引,根據sno,也就是我的表格的主鍵來建立的,至于索引是什么,我也曾經寫過一篇博客,有興趣的朋友可以去看看↓
BPTree索引
后面幾行一目了然,我覺得沒必要進行解釋了,歡迎大家進行討論,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195366.html
標籤:其他
上一篇:架構演進
下一篇:大型資料庫-第一章測驗
