如下优化了一些细节:
字段名称按规范都改为单词的单数形式
给每个自动设置非空的限制条件&按照字段类型给定默认值(先前默认为NULL)
/*
SQLyogUltimatev11.27(32bit)
MySQL-5.5.53:Database-school
*********************************************************************
*/
/*!40101SETNAMESutf8*/;
/*!40101SETSQL_MODE=''*/;
/*!40014SET@OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0*/;
/*!40014SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0*/;
/*!40101SET@OLD_SQL_MODE=@@SQL_MODE,SQL_MODE='NO_AUTO_VALUE_ON_ZERO'*/;
/*!40111SET@OLD_SQL_NOTES=@@SQL_NOTES,SQL_NOTES=0*/;
CREATEDATABASE/*!32312IFNOTEXISTS*/`school`/*!40100DEFAULTCHARACTERSETutf8*/;
USE`school`;
/*Tablestructurefortable`class`*/
DROPTABLEIFEXISTS`class`;
CREATETABLE`class`(
`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键id,班级表',
`class_id`int(4)NOTNULLDEFAULT'0'COMMENT'班级id',
`class_name`varchar(50)NOTNULLDEFAULT''COMMENT'班级名称',
PRIMARYKEY(`id`),
KEY`id`(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='班级表';
/*Tablestructurefortable`student`*/
DROPTABLEIFEXISTS`student`;
CREATETABLE`student`(
`id`int(11)unsignedNOTNULLAUTO_INCREMENTCOMMENT'学生表,主键id',
`stu_id`int(11)unsignedNOTNULLDEFAULT'0'COMMENT'学号',
`stu_name`varchar(20)NOTNULLDEFAULT''COMMENT'姓名',
`stu_sex`int(1)unsignedNOTNULLDEFAULT'0'COMMENT'性别0女1男',
`stu_phone`int(11)unsignedDEFAULT'0'COMMENT'电话',
`stu_contact`varchar(20)DEFAULT''COMMENT'联系人',
`stu_contact_phone`int(11)unsignedDEFAULT'0'COMMENT'联系人电话',
`stu_address`varchar(255)DEFAULT''COMMENT'家庭地址',
`stu_class_id`int(4)NOTNULLDEFAULT'0'COMMENT'所属班级id',
`status`tinyint(1)unsignedNOTNULLDEFAULT'0'COMMENT'学生状态,默认0正常,1删除',
`create_at`int(11)unsignedNOTNULLDEFAULT'0'COMMENT'创建时间',
`update_at`int(11)unsignedNOTNULLDEFAULT'0'COMMENT'修改时间',
PRIMARYKEY(`id`),
KEY`stu_class_id`(`stu_class_id`),
CONSTRAINT`student_ibfk_1`FOREIGNKEY(`stu_class_id`)REFERENCES`class`(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='学生表';
/*!40101SETSQL_MODE=@OLD_SQL_MODE*/;
/*!40014SETFOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS*/;
/*!40014SETUNIQUE_CHECKS=@OLD_UNIQUE_CHECKS*/;
/*!40111SETSQL_NOTES=@OLD_SQL_NOTES*/;
客户端直接导出的,可以直接复制粘贴测试~
谢谢~!
㈡ SQL中NOT NULL DEFAULT(getdate())是什么意思
SQL 中 Not null :不允许为空
DEFAULT 是默认值
getdate() 是获取系统当前日期
4.SQL 如下:
5.create table A(id int not null,
name varchar(10) default 'test)
㈢ 创建表的sql语句
其实这个是很简单的问题,相信书中绝对能找到答案!
举例:
create table [学生]
(
学号 char(8) not null primarykey,
姓名 varchar(8) not null
)
上面写了两列,其余差不多,至于不允许有重复姓名,加上“约束”就行了。
祝你进步!