MySQL-创建数据表
创建数据表:
格式如下:
1 create table [if not exists] `表名`( 2 '字段名1' 列类型 [属性][索引][注释], 3 '字段名2' 列类型 [属性][索引][注释], 4 #... 5 '字段名n' 列类型 [属性][索引][注释] 6 )[表类型][表字符集][注释];
创建表实例:
1 -- 目标:创建一个school数据库 2 -- 创建学生表(列,字段) 使用 SQL 创建 3 -- 学号int,登陆密码varchar(20),姓名,性别 varchar(2),出生日期(datatime),家庭住址,email 4 5 -- 注意点,使用英文(),表的名称,字段尽量用` `括起来。 6 -- 字符串使用单引号括起来 7 -- 所有的语句后面加,(英文的),最后一个不用加 8 -- PRIMARY KEY 主键(一般唯一) 9 CREATE TABLE IF NOT EXISTS `Student2`( 10 `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', 11 `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT'姓名', 12 `pwd` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码' , 13 `sex` VARCHAR(2) NOT NULL DEFAULT '男'COMMENT'性别', 14 `birthday` DATETIME DEFAULT NULL COMMENT '出生日期', 15 `address`VARCHAR (100)DEFAULT NULL COMMENT '家庭住址', 16 `email`VARCHAR(50)DEFAULT NULL COMMENT '邮箱', 17 -- 添加主键操作 18 PRIMARY KEY (`id`) 19 )ENGINE=INNODB DEFAULT CHARSET = utf8; 20 21 # 查看数据库的定义 22 SHOW CREATE DATABASE school; 23 # 查看数据表的定义 24 SHOW CREATE TABLE student; 25 # 显示表结构 26 DESC student; 27 # 设置严格检查模式(不能容错了) 28 SET sql_mode='STRICT_TRANS_TABLES';
建表要求:
1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是,0 表示否)。
说明:任何字段如果为非负数,必须是 unsigned。 注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在设置从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的命名方式是为了明确其取 值含义与取值范围。
正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。
2. 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间 只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重 考虑。
说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表 名、字段名,都不允许出现任何大写字母,避免节外生枝。
正例:aliyun_admin,rdc_config,level3_name 反例:AliyunAdmin,rdcConfig,level_3_name
3. 【强制】表名不使用复数名词。 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数形式,符合 表达习惯。
4. 【强制】禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。
5. 【强制】主键索引名为 pk_字段名;唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。 说明:pk_ 即 primary key;uk_ 即 unique key;idx_ 即 index 的简称。
6. 【强制】小数类型为 decimal,禁止使用 float 和 double。
说明:在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的 结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数并分开存储。
7. 【强制】如果存储的字符串长度几乎相等,使用 char 定长字符串类型。
8. 【强制】varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长 度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。
9. 【强制】表必备三字段:id, create_time, update_time。
说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time, update_time 的类型均为 datetime 类型。
1 -- 查看创建表的sql语句 2 #SHOW CREATE TABLE 表名; 3 4 -- 查看创建数据库的sql语句 5 #SHOW CREATE DATABASE 数据库名;

浙公网安备 33010602011771号