MySQL 建表

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

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

写了几个表,里面包括外键主键的设置,建表语句如下:

USE testdatabase;

CREATE TABLE class (

    class_id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    class_name VARCHAR(40)

);

CREATE TABLE student (

    student_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

    PRIMARY KEY(student_id),

    student_name varchar(40),

    class_id INTEGER UNSIGNED,

    CONSTRAINT FK_student_class FOREIGN KEY(class_id) REFERENCES class(class_id) ON DELETE CASCADE ON UPDATE CASCADE

);

 

CREATE TABLE lession(

    lession_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

    PRIMARY KEY (lession_id),

    lession_name varchar(40)

);

CREATE TABLE core(

    core_id INTEGER UNSIGNED AUTO_INCREMENT,

    lession_id INTEGER UNSIGNED NOT NULL,

    student_id INTEGER UNSIGNED NOT NULL,

    core    FLOAT,

    close_status INTEGER DEFAULT 0,

    CONSTRAINT PK_core PRIMARY KEY(

        core_id

    ),

    CONSTRAINT FK_core_lession FOREIGN KEY(lession_id) REFERENCES lession(lession_id),

    CONSTRAINT FK_core_student FOREIGN KEY(student_id) REFERENCES student(student_id)

    ON DELETE CASCADE

);

 

CREATE TABLE teacher(

    teacher_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

    PRIMARY KEY(teacher_id),

    teacher_name varchar(40)

);

CREATE TABLE teachlession(

    teachlession_id INTEGER PRIMARY KEY AUTO_INCREMENT,

    lession_id INTEGER UNSIGNED,

    teacher_id INTEGER UNSIGNED,

    CONSTRAINT FK_teachlession_lession FOREIGN KEY(lession_id) REFERENCES lession(lession_id)

    ON DELETE CASCADE,

    CONSTRAINT FK_teachlession_teacher FOREIGN KEY(teacher_id) REFERENCES teacher(teacher_id)

    ON DELETE CASCADE

);

CREATE TABLE sySUSEr(

    sySUSEr_id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

    sySUSEr_name VARCHAR(40),

    sySUSEr_password VARCHAR(40),

    sySUSEr_role INTEGER,

    foreign_id INTEGER

);

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

use testdatabase;

drop table if exists chartable;

create table chartable(

name varchar(30) character set utf8 collate utf8_general_ci

)character set latin1 collate latin1_danish_ci;

insert into chartable values('我们的世界');

一点总结:

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

    2.关于外键的声明,两个字段的类型必须相同。

    3.注意代码的编码格式和数据库字符集项符合。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下 4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值