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 数据库名;

 

posted @ 2023-03-23 22:19  喵工  阅读(413)  评论(0)    收藏  举报