在創(chuàng)建外鍵的時(shí)候添加級聯(lián)刪除

創(chuàng)新互聯(lián)公司的客戶來自各行各業(yè),為了共同目標(biāo),我們在工作上密切配合,從創(chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對我們的要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。專業(yè)領(lǐng)域包括做網(wǎng)站、成都網(wǎng)站建設(shè)、電商網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā)。
foreign key (Id) references table1(Id) on delete cascade
這樣delete from table Where Id = 1 就能級聯(lián)刪除子表數(shù)據(jù)
如果不考慮冗余的話。
CREATE TABLE 課程表 (
星期 TINYINT, -- 一周七天 1 to 7
課時(shí) TINYINT, -- 一天 上午/下午/晚上 依次的課數(shù)字
教室編號 varchar(10), -- 101、102、103...
-- 以上是已知的信息
-- 下面是估計(jì) 應(yīng)該有的信息
班級編號 INT, -- 這個(gè)應(yīng)該和一個(gè) 班級表去 關(guān)聯(lián)。
教師編號 INT, -- 這個(gè)應(yīng)該和一個(gè) 教師表去 關(guān)聯(lián)。
課程編號 INT -- 這個(gè)應(yīng)該和一個(gè) 課程表去 關(guān)聯(lián)。
);
這樣
時(shí)間, 地點(diǎn),人物,事件
都包含了。
提個(gè)思路,僅供參考:
一個(gè)學(xué)生表,學(xué)號是主鍵;
一個(gè)課程表,課程號是主鍵;
一個(gè)選課表,(學(xué)號,課程號)是主鍵。
在選課表里,一個(gè)學(xué)號可以對應(yīng)好幾門課程,一門課程也可以有很多個(gè)學(xué)生選。
1、數(shù)據(jù)庫中創(chuàng)建課程信息表 tb_courses,包含課程編號 course_id、課程名稱 course_name、課程學(xué)分 course_grade 和課程備注 course_info,輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。
2、查看表里的數(shù)據(jù)還是空的。
3、在 tb_courses 表中插入一條新記錄,course_id 值為 1,course_name 值為“Network”,course_grade 值為 3,info 值為“Computer Network”。
4、可以看到插入記錄成功。在插入數(shù)據(jù)時(shí),指定了 tb_courses 表的所有字段,因此將為每一個(gè)字段插入新的值。
5、在 tb_courses 表中插入一條新記錄,course_id 值為 2,course_name 值為“Database”,course_grade 值為 3,info值為“MySQL”。輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。
6、最后查看表數(shù)據(jù),就完成了。
提示:在數(shù)據(jù)庫應(yīng)用,我們經(jīng)常要用到唯一編號,以標(biāo)識記錄。在MySQL中可通過數(shù)據(jù)列的AUTO_INCREMENT屬性來自動(dòng)生成。MySQL支持多種數(shù)據(jù)表,每種數(shù)據(jù)表的自增屬性都有差異,這里將介紹各種數(shù)據(jù)表里的數(shù)據(jù)列自增屬性。
在數(shù)據(jù)庫應(yīng)用,我們經(jīng)常要用到唯一編號,以標(biāo)識記錄。在MySQL中可通過數(shù)據(jù)列的AUTO_INCREMENT屬性來自動(dòng)生成。MySQL支持多種數(shù)據(jù)表,每種數(shù)據(jù)表的自增屬性都有差異,這里將介紹各種數(shù)據(jù)表里的數(shù)據(jù)列自增屬性。
ISAM表
如果把一個(gè)NULL插入到一個(gè)AUTO_INCREMENT數(shù)據(jù)列里去,MySQL將自動(dòng)生成下一個(gè)序列編號。編號從1開始,并1為基數(shù)遞增。
把0插入AUTO_INCREMENT數(shù)據(jù)列的效果與插入NULL值一樣。但不建議這樣做,還是以插入NULL值為好。
當(dāng)插入記錄時(shí),沒有為AUTO_INCREMENT明確指定值,則等同插入NULL值。
當(dāng)插入記錄時(shí),如果為AUTO_INCREMENT數(shù)據(jù)列明確指定了一個(gè)數(shù)值,則會出現(xiàn)兩種情況,情況一,如果插入的值與已有的編號重復(fù),則會出現(xiàn)出錯(cuò)信息,因?yàn)锳UTO_INCREMENT數(shù)據(jù)列的值必須是唯一的;情況二,如果插入的值大于已編號的值,則會把該插入到數(shù)據(jù)列中,并使在下一個(gè)編號將從這個(gè)新值開始遞增。也就是說,可以跳過一些編號。
如果自增序列的最大值被刪除了,則在插入新記錄時(shí),該值被重用。
如果用UPDATE命令更新自增列,如果列值與已有的值重復(fù),則會出錯(cuò)。如果大于已有值,則下一個(gè)編號從該值開始遞增。
如果用replace命令基于AUTO_INCREMENT數(shù)據(jù)列里的值來修改數(shù)據(jù)表里的現(xiàn)有記錄,即AUTO_INCREMENT數(shù)據(jù)列出現(xiàn)在了replace命令的where子句里,相應(yīng)的AUTO_INCREMENT值將不會發(fā)生變化。但如果replace命令是通過其它的PRIMARY KEY OR UNIQUE索引來修改現(xiàn)有記錄的(即AUTO_INCREMENT數(shù)據(jù)列沒有出現(xiàn)在replace命令的where子句中),相應(yīng)的AUTO_INCREMENT值--如果設(shè)置其為NULL(如沒有對它賦值)的話--就會發(fā)生變化。
last_insert_id()函數(shù)可獲得自增列自動(dòng)生成的最后一個(gè)編號。但該函數(shù)只與服務(wù)器的本次會話過程中生成的值有關(guān)。如果在與服務(wù)器的本次會話中尚未生成AUTO_INCREMENT值,則該函數(shù)返回0。
其它數(shù)據(jù)表的自動(dòng)編號機(jī)制都以ISAM表中的機(jī)制為基礎(chǔ)。
MyISAM數(shù)據(jù)表
刪除最大編號的記錄后,該編號不可重用。
可在建表時(shí)可用“AUTO_INCREMENT=n”選項(xiàng)來指定一個(gè)自增的初始值。
可用alter table table_name AUTO_INCREMENT=n命令來重設(shè)自增的起始值。
可使用復(fù)合索引在同一個(gè)數(shù)據(jù)表里創(chuàng)建多個(gè)相互獨(dú)立的自增序列,具體做法是這樣的:為數(shù)據(jù)表創(chuàng)建一個(gè)由多個(gè)數(shù)據(jù)列組成的PRIMARY KEY OR UNIQUE索引,并把AUTO_INCREMENT數(shù)據(jù)列包括在這個(gè)索引里作為它的最后一個(gè)數(shù)據(jù)列。這樣,這個(gè)復(fù)合索引里,前面的那些數(shù)據(jù)列每構(gòu)成一種獨(dú)一無二的組合,最末尾的AUTO_INCREMENT數(shù)據(jù)列就會生成一個(gè)與該組合相對應(yīng)的序列編號
分享標(biāo)題:課程在mysql怎么表示 mysql主要學(xué)什么
當(dāng)前URL:http://chinadenli.net/article0/hjigoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、定制開發(fā)、企業(yè)建站、外貿(mào)建站、網(wǎng)站改版、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)