公文素材库 首页

关于MySQL语句建表的总结

时间:2019-05-29 23:10:42 网站:公文素材库

关于MySQL语句建表的总结

在写代码之前,需要注意的一个问题是,使用命令行模式写MySQL语句,如果涉及到中文,最好利用mysql>charsetGBK;命令将客户端字符集设置为GBK,这样能保证正确插入和读取中文(数据库端字符集可以是gb2312,GBK,utf8等支持中文的字符集).

如果是利用Mysql提供的MySQLQueryBrowser工具来写脚本,建议先在ultraedit等文本工具(最好别用记事本,因为可能有字符编码问题,推荐ultraedit)将代码写好,然后再粘贴到QueryBrowser的ScriptTab中一并执行,因为QueryBrowser对中文的支持有bug,无法正确的输入中文,因此要先在别处写好。

写了几个表,里面包括外键主键的设置,建表语句如下: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);

/*这是指定表和列的字符集方式创建表*/usetestdatabase;

droptableifexistschartable;createtablechartable(

namevarchar(30)charactersetutf8collateutf8_general_ci)charactersetlatin1collatelatin1_danish_ci;

insertintochartablevalues("我们的世界");

一点总结:

1.建表语句的顺序必须符合各个表之间的关系,比如主表应该在与之有外键关系的表之前建立。

2.关于外键的声明,两个字段的类型必须相同。3.注意代码的编码格式和数据库字符集项符合。

扩展阅读:关于MySQL语句建表的总结

在写代码之前,需要注意的一个问题是,使用命令行模式写MySQL语句,如果涉及到中文,最好利用mysql>charsetGBK;命令将客户端字符集设置为GBK,这样能保证正确插入和读取中文(数据库端字符集可以是gb2312,GBK,utf8等支持中文的字符集).

如果是利用Mysql提供的MySQLQueryBrowser工具来写脚本,建议先在ultraedit等文本工具(最好别用记事本,因为可能有字符编码问题,推荐ultraedit)将代码写好,然后再粘贴到QueryBrowser的ScriptTab中一并执行,因为QueryBrowser对中文的支持有bug,无法正确的输入中文,因此要先在别处写好。

写了几个表,里面包括外键主键的设置,建表语句如下: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);

/*这是指定表和列的字符集方式创建表*/usetestdatabase;

droptableifexistschartable;createtablechartable(

namevarchar(30)charactersetutf8collateutf8_general_ci)charactersetlatin1collatelatin1_danish_ci;

insertintochartablevalues("我们的世界");

一点总结:

1.建表语句的顺序必须符合各个表之间的关系,比如主表应该在与之有外键关系的表之前建立。

2.关于外键的声明,两个字段的类型必须相同。3.注意代码的编码格式和数据库字符集项符合。

友情提示:本文中关于《关于MySQL语句建表的总结》给出的范例仅供您参考拓展思维使用,关于MySQL语句建表的总结:该篇文章建议您自主创作。

  来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


关于MySQL语句建表的总结
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/750796.html
相关阅读
最近更新
推荐专题