| MySQL类型 | Java类型 | 备注 |
|---|---|---|
| tinyint | byte | 取值返回 -128~127 |
| smallint | short | |
| int/integer | int | |
| bigint | long | |
| float | float | |
| double | double | |
| decimal(m, n ) | 可以设置有效数字和保留几位小数 | |
| char(n) | string | 固定长度的字符串 , n 代表 字符串的长度 |
| varchar(n) | string | 可变长度的字符串, n 代表 允许的最大长度 |
| text/longtext | string | 存储超大文本,例如 新闻,小说章节等 |
| longblob | byte[] | 存储二进制数据、例如 音频,视频,图片等信息 |
| date | date / LocalDate | 存储日期,格式为 YYYY-MM-DD |
| datetime | date / LocalDateTime | 存储日期和时间,格式为 YYYY-MM-DD HH:mm:ss |
| time | LocalTime | 存储时间,格式为 HH:mm:ss |
| enum(x,y,z,…) | String | x,y, z 代表 允许出现的值 |
约束是基于字段的,可以给一个字段添加多个约束
约束不是 越多越好、约束越多,数据库的开销越多,会让数据库的性能降低
在表中 对主要的、关键性的数据添加约束即可
主键约束 primary key
特点: 值是唯一的、且不允许为空。 一张表最多只能设置一个主键
MySQL的主键一般 还可以设置为 自动增长, 在新增数据的时候,就不需要再设置主键的值,而该值有系统自动产生
再定义主键的时候,使用 auto_increment 关键字即可
唯一约束 unique
特点: 值是唯一的、 可以为空
非空约束 not null
特点: 值不允许为空
默认约束 default
特点: 可以给某一个字段的值 设置默认值
外键约束 foreign key
特点: 维护数据与数据之间的关系 或者 表与表之间的关系
检查约束 check
特点: 可以对值进行检查, MySQL 不支持该约束数据库范式
范式: 数据库建表的规范, 一般 企业中要求 表需要满足 数据库的 三范式 要求
一范式
表中所有的字段 不可再分、数据库 都是满足 一范式 的
二范式
表中 所有字段 都必须 和 主字段 有关系
三范式
表中 所有字段 都必须 和 主字段 有直接关系、且 每一张表 都必须有自己的主键、且字段在多张表中 不能有冗余 新建表
create table [if not exists]修改表结构 alter table 表名( [约束] [注释] , .... ) ; CREATE TABLE `t_book` ( `id` bigint COMMENT '图书编号', `book_name` varchar(50) COMMENT '图书名', `price` decimal(11,1) COMMENT '图书价格', `author` varchar(20) COMMENT '作者', `create_time` datetime COMMENT '录入时间', `update_time` datetime COMMENT '修改时间', `status` enum('0','1') COMMENT '0代表下架' );
添加一个字段 add column
alter tableadd [column] 字段名 字段类型 [约束] [注释] ; alter table t_book add is_borrow boolean comment '是否被借' ;
修改字段名 change
alter tablechange oldName newName 字段类型 [约束] [注释] ; alter table t_book change name book_name varchar(50) comment '图书名';
修改字段类型 modify
alter tablemodify 要修改的类型 [约束] [注释] ; alter table t_book modify status enum('0', '1') comment '0代表下架'‘;
删除一个字段 drop column
alter tabledrop [column] ; alter table t_book drop is_borrow ;
修改表名称 rename
alter table查看表结构rename to ; alter table t_book rename to book ; rename table to ; rename table book to t_book ;
desc 表名 ; describe 表名 ;查看当前库下所有的表
show tables [like 值] ; -- 支持 模糊查询查看建表语句
show create table删除表;
drop table [if exists];



