表的基本操作
数据库常见的数据类型
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] <tableName> (
<columnName> <columnType> [约束] [注释] ,
....
) ;
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代表下架'
);
修改表结构 alter table 表名
- 添加一个字段 add column
alter table <tableName> add [column] 字段名 字段类型 [约束] [注释] ;
alter table t_book add is_borrow boolean comment '是否被借' ;
- 修改字段名 change
alter table <tableName> change oldName newName 字段类型 [约束] [注释] ;
alter table t_book change name book_name varchar(50) comment '图书名';
- 修改字段类型 modify
alter table <tableName> modify <columnName> 要修改的类型 [约束] [注释] ;
alter table t_book modify status enum('0', '1') comment '0代表下架'‘;
- 删除一个字段 drop column
alter table <tableName> drop [column] <columnName> ;
alter table t_book drop is_borrow ;
- 修改表名称 rename
alter table <tableName> rename to <newTableName> ;
alter table t_book rename to book ;
rename table <tableName> to <newTableName> ;
rename table book to t_book ;
查看表结构
desc 表名 ;
describe 表名 ;
查看当前库下所有的表
show tables [like 值] ; -- 支持 模糊查询
查看建表语句
show create table <tableName> ;
删除表
drop table [if exists] <tableName> ;