?? 建表語句1.txt
字號:
---1\創(chuàng)建一個數(shù)據(jù)庫。
-- 這一步可以不要,但是有了這一步,你做題時所產(chǎn)生的“垃圾”就不會留在系統(tǒng)自帶的
-- 6個數(shù)據(jù)庫中。當(dāng)我們做完題目后,將自己建立的數(shù)據(jù)庫刪除,就解決了所有的垃圾問題。
create database mydata
---2\打開新創(chuàng)建的數(shù)據(jù)庫。
use mydata
---3\創(chuàng)建3個表,這3個表被放在 mydata 數(shù)據(jù)庫中。
-- 為了應(yīng)對北大的上機(jī)考試,這里創(chuàng)建的三個表包含了各種常見的情況,
-- 所以比較復(fù)雜。請耐心搞懂每個列的定義以及各種約束的定義以及觸發(fā)器的使用。
-- 學(xué)生(學(xué)號,姓名,性別,生日,年齡 )
-- 課程(課程號,課程名,學(xué)分,授課教師姓名 )
-- 選修(學(xué)號,課程號,成績,選修日期 )
create table s -- 學(xué)生表定義。
(
Sno char(4) primary key , -- 主鍵為學(xué)號。,
sname varchar(8) not null , -- 姓名不能為空值。
sex char(1) default 'm' , -- 性別默認(rèn)為男性。
birthday datetime ,
age as year(getdate()) - year(birthday) , -- 年齡為自動計算列。
check(Sno like 's%') , -- 學(xué)號必須以s開頭。
check((sex = 'm') or (sex = 'f')) -- 性別必須為男性或女性。^-^
)
create table c -- 課程表定義。
(
cno char(3) primary key , -- 主鍵為課程號。,
cname varchar(20) not null , -- 課程名不能為空值。
credit tinyint not null , -- 學(xué)分不能為空值。
teacher varchar(8) ,
unique(cname , credit) ,
-- 課程名和學(xué)分是唯一的,即:(課程名 ,學(xué)分 )也可以唯一確定一個元組。
check(credit between 1 and 15) -- 學(xué)分必須在1到15之間。
)
create table sc -- 選修表定義。
(
Sno char(4) ,
cno char(3) ,
grade tinyint ,
seleday datetime default getdate() ,
-- getdate()是取得當(dāng)前系統(tǒng)的時間的函數(shù)。
-- 選課日期采用默認(rèn)值,系統(tǒng)自動設(shè)置,即:什么時候往表中插入選課記錄,這個時間就
-- 自動被系統(tǒng)記下來。例如我們網(wǎng)上報考時,網(wǎng)上報名系統(tǒng)會自動記下你的報名時間。
primary key(Sno , cno) ,
-- 主鍵為學(xué)號、課程號的組合。
foreign key(Sno) references s(Sno)
-- 學(xué)號引用表 S 。
on delete no action
-- 只有在 SC 表中沒有某學(xué)生的選修元組時,才可以在 S 表中刪除該學(xué)生信息。
on update cascade ,
-- 在 S 表中修改某學(xué)生學(xué)號時,系統(tǒng)會自動更新SC表中的學(xué)號,使SC與S表保持一致。
foreign key(cno) references c(cno)
on delete no action -- 參見上面有關(guān)外鍵的注釋。
on update cascade , -- 參見上面有關(guān)外鍵的注釋。
check(grade is null or grade between 0 and 100)
-- 成績在0到100之間,或者為空,表示該學(xué)生缺考。
)
go
---4\向 s、c、sc 表中插入數(shù)據(jù)。
insert into s values('s001' , 'jim', 'm' , '1985-03-29')
insert into s values('s002' , 'kate', 'f' , '1987-05-13 12:34:40')
insert into s values('s003' , 'tom', 'm' , '1983-08-16 9:36:54.123')
insert into s values('s004' , 'jacky','f' , '1984-11-25')
insert into s values('s005' , 'toky', 'f' , '9-26-1986')
insert into s values('s006' , 'wuli', 'f' , '6-3-1984')
insert into s values('s007' , 'john','m' , '1985-09-22')
-- 無論采用“月日年”還是“年月日”,系統(tǒng)都可正確識別出來。
insert into c values ('c01' , '英語' , 15 , '王喜')
insert into c values ('c02' , '語文' , 5 , '趙小明')
insert into c values ('c03' , '數(shù)學(xué)' , 12 , '張樹')
insert into c values ('c04' , '數(shù)據(jù)庫原理' , 6 , '孟君')
insert into c values ('c05' , '數(shù)據(jù)結(jié)構(gòu)' , 8 , '孟君')
insert into c values ('c06' , '軟件工程' , 10 , '王喜')
insert into sc(Sno,cno,grade) values('s001' , 'c02' , 78)
insert into sc(Sno,cno,grade) values('s001' , 'c03' , 70)
insert into sc(Sno,cno,grade) values('s002' , 'c01' , 85)
insert into sc(Sno,cno,grade) values('s002' , 'c03' , 83)
insert into sc(Sno,cno,grade) values('s002' , 'c04' , 63)
insert into sc(Sno,cno,grade) values('s003' , 'c01' , 85)
insert into sc(Sno,cno,grade) values('s003' , 'c02' , 73)
insert into sc(Sno,cno,grade) values('s003' , 'c04' , 56)
insert into sc(Sno,cno,grade) values('s004' , 'c01' , 67)
insert into sc(Sno,cno,grade) values('s004' , 'c02' , 96)
insert into sc(Sno,cno,grade) values('s004' , 'c03' , 87)
insert into sc(Sno,cno,grade) values('s004' , 'c04' , 65)
insert into sc(Sno,cno,grade) values('s004' , 'c05' , 74)
insert into sc(Sno,cno,grade) values('s006' , 'c01' , 75)
insert into sc(Sno,cno,grade) values('s006' , 'c02' , 79)
insert into sc(Sno,cno,grade) values('s006' , 'c04' , 98)
insert into sc(Sno,cno,grade) values('s007' , 'c01' , 66)
insert into sc(Sno,cno,grade) values('s007' , 'c02' , 70)
insert into sc(Sno,cno,grade) values('s007' , 'c03' , 61)
insert into sc(Sno,cno,grade) values('s007' , 'c04' , 58)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -