關(guān)于MySQL語句建表的總結(jié)
在寫代碼之前,需要注意的一個(gè)問題是,使用命令行模式寫MySQL語句,如果涉及到中文,最好利用mysql>charsetGBK;命令將客戶端字符集設(shè)置為GBK,這樣能保證正確插入和讀取中文(數(shù)據(jù)庫端字符集可以是gb2312,GBK,utf8等支持中文的字符集).
如果是利用Mysql提供的MySQLQueryBrowser工具來寫腳本,建議先在ultraedit等文本工具(最好別用記事本,因?yàn)榭赡苡凶址幋a問題,推薦ultraedit)將代碼寫好,然后再粘貼到QueryBrowser的ScriptTab中一并執(zhí)行,因?yàn)镼ueryBrowser對(duì)中文的支持有bug,無法正確的輸入中文,因此要先在別處寫好。
寫了幾個(gè)表,里面包括外鍵主鍵的設(shè)置,建表語句如下:USEtest;
CREATETABLEclass(
class_idINTEGERUNSIGNEDAUTO_INCREMENTPRIMARYKEY,class_nameVARCHAR(40));
CREATETABLEstudent(
student_idINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,PRIMARYKEY(student_id),student_namevarchar(40),class_idINTEGERUNSIGNED,
CONSTRAINTFK_student_classFOREIGNKEY(class_id)REFERENCESclass(class_id)ONDELETECASCADEONUPDATECASCADE);
CREATETABLElession(
lession_idINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,PRIMARYKEY(lession_id),lession_namevarchar(40));
CREATETABLEcore(
core_idINTEGERUNSIGNEDAUTO_INCREMENT,lession_idINTEGERUNSIGNEDNOTNULL,student_idINTEGERUNSIGNEDNOTNULL,coreFLOAT,
close_statusINTEGERDEFAULT0,CONSTRAINTPK_corePRIMARYKEY(core_id),
CONSTRAINTFK_core_lessionFOREIGNKEY(lession_id)REFERENCESlession(lession_id),
CONSTRAINTFK_core_studentFOREIGNKEY(student_id)REFERENCESstudent(student_id)
ONDELETECASCADE);
CREATETABLEteacher(
teacher_idINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,PRIMARYKEY(teacher_id),teacher_namevarchar(40));
CREATETABLEteachlession(
teachlession_idINTEGERPRIMARYKEYAUTO_INCREMENT,lession_idINTEGERUNSIGNED,teacher_idINTEGERUNSIGNED,
CONSTRAINTFK_teachlession_lessionFOREIGNKEY(lession_id)REFERENCESlession(lession_id)
ONDELETECASCADE,
CONSTRAINTFK_teachlession_teacherFOREIGNKEY(teacher_id)REFERENCESteacher(teacher_id)
ONDELETECASCADE);
CREATETABLEsySUSEr(
sySUSEr_idINTEGERUNSIGNEDNOTNULLPRIMARYKEYAUTO_INCREMENT,sySUSEr_nameVARCHAR(40),sySUSEr_passwordVARCHAR(40),sySUSEr_roleINTEGER,foreign_idINTEGER);
/*這是指定表和列的字符集方式創(chuàng)建表*/usetestdatabase;
droptableifexistschartable;createtablechartable(
namevarchar(30)charactersetutf8collateutf8_general_ci)charactersetlatin1collatelatin1_danish_ci;
insertintochartablevalues("我們的世界");
一點(diǎn)總結(jié):
1.建表語句的順序必須符合各個(gè)表之間的關(guān)系,比如主表應(yīng)該在與之有外鍵關(guān)系的表之前建立。
2.關(guān)于外鍵的聲明,兩個(gè)字段的類型必須相同。3.注意代碼的編碼格式和數(shù)據(jù)庫字符集項(xiàng)符合。
擴(kuò)展閱讀:關(guān)于MySQL語句建表的總結(jié)
在寫代碼之前,需要注意的一個(gè)問題是,使用命令行模式寫MySQL語句,如果涉及到中文,最好利用mysql>charsetGBK;命令將客戶端字符集設(shè)置為GBK,這樣能保證正確插入和讀取中文(數(shù)據(jù)庫端字符集可以是gb2312,GBK,utf8等支持中文的字符集).
如果是利用Mysql提供的MySQLQueryBrowser工具來寫腳本,建議先在ultraedit等文本工具(最好別用記事本,因?yàn)榭赡苡凶址幋a問題,推薦ultraedit)將代碼寫好,然后再粘貼到QueryBrowser的ScriptTab中一并執(zhí)行,因?yàn)镼ueryBrowser對(duì)中文的支持有bug,無法正確的輸入中文,因此要先在別處寫好。
寫了幾個(gè)表,里面包括外鍵主鍵的設(shè)置,建表語句如下:USEtestdatabase;
CREATETABLEclass(
class_idINTEGERUNSIGNEDAUTO_INCREMENTPRIMARYKEY,class_nameVARCHAR(40));
CREATETABLEstudent(
student_idINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,PRIMARYKEY(student_id),
student_namevarchar(40),
class_idINTEGERUNSIGNED,
CONSTRAINTFK_student_classFOREIGNKEY(class_id)REFERENCESclass(class_id)ONDELETECASCADEONUPDATECASCADE);
CREATETABLElession(
lession_idINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,PRIMARYKEY(lession_id),lession_namevarchar(40));
CREATETABLEcore(
core_idINTEGERUNSIGNEDAUTO_INCREMENT,lession_idINTEGERUNSIGNEDNOTNULL,student_idINTEGERUNSIGNEDNOTNULL,coreFLOAT,
close_statusINTEGERDEFAULT0,CONSTRAINTPK_corePRIMARYKEY(core_id),CONSTRAINTFK_core_lessionFOREIGNFOREIGN
KEY(lession_id)KEY(student_id)
REFERENCESREFERENCES
lession(lession_id),
CONSTRAINTFK_core_studentstudent(student_id)
ONDELETECASCADE);
CREATETABLEteacher(
teacher_idINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,PRIMARYKEY(teacher_id),teacher_namevarchar(40));
CREATETABLEteachlession(
teachlession_idINTEGERPRIMARYKEYAUTO_INCREMENT,lession_idINTEGERUNSIGNED,teacher_idINTEGERUNSIGNED,
CONSTRAINTFK_teachlession_lessionFOREIGNKEY(lession_id)REFERENCESlession(lession_id)
ONDELETECASCADE,
CONSTRAINTFK_teachlession_teacherFOREIGNKEY(teacher_id)REFERENCESteacher(teacher_id)
ONDELETECASCADE);
CREATETABLEsySUSEr(
sySUSEr_idINTEGERUNSIGNEDNOTNULLPRIMARYKEYAUTO_INCREMENT,sySUSEr_nameVARCHAR(40),sySUSEr_passwordVARCHAR(40),sySUSEr_roleINTEGER,foreign_idINTEGER);
/*這是指定表和列的字符集方式創(chuàng)建表*/usetestdatabase;
droptableifexistschartable;createtablechartable(
namevarchar(30)charactersetutf8collateutf8_general_ci)charactersetlatin1collatelatin1_danish_ci;
insertintochartablevalues("我們的世界");
一點(diǎn)總結(jié):
1.建表語句的順序必須符合各個(gè)表之間的關(guān)系,比如主表應(yīng)該在與之有外鍵關(guān)系的表之前建立。
2.關(guān)于外鍵的聲明,兩個(gè)字段的類型必須相同。3.注意代碼的編碼格式和數(shù)據(jù)庫字符集項(xiàng)符合。
友情提示:本文中關(guān)于《關(guān)于MySQL語句建表的總結(jié)》給出的范例僅供您參考拓展思維使用,關(guān)于MySQL語句建表的總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。