关于MySQL语句建表的总结

php中文网
发布: 2016-06-07 16:56:35
原创
1311人浏览过

在写代码之前,需要注意的一个问题是,使用命令行模式写MySQL语句,如果涉及到中文,最好利用 mysqlgt;charset GBK;命令将客户端

在写代码之前,需要注意的一个问题是,使用命令行模式写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
);

 

Python开发网站指南 WORD版
Python开发网站指南 WORD版

本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

Python开发网站指南 WORD版 2
查看详情 Python开发网站指南 WORD版

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.注意代码的编码格式和数据库字符集项符合。

linux

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号