创建数据库表
开始#
目标:创建一个 school 数据库
创建学生表(列,字段)
学号 int,登陆密码 varchar (20),姓名,性别 varchar (2),出生日期 (datatime),家庭住址,email
- 格式
create table [if not exists] `表名`(
`字段名` 列类型 [属性] [索引] [注释],
......
`字段名` 列类型 [属性] [索引] [注释]
)[表类型][表字符集设置][注释]
create table if not exists `student`(
`id` int(4) not null auto_increment comment '学号',
`name` varchar(30) not null default '匿名' comment '姓名',
`pwd` varchar(20) not null default '123456' comment '密码',
`sex` varchar(2) not null default '女' comment '性别',
`birthday` datetime default null comment '出生日期',
`address` varchar(100) default null comment '家庭住址',
`email` varchar(50) default null comment '邮箱',
primary key (`id`)
)engine=innodb default charset=utf8;
show create database school --查看创建数据库的语句
show create table student --查看student数据表的定义语句
desc student --显示表结构
关于数据库引擎#
- INNODB 默认使用
- MYISAM 早些年使用
MYISAM | INNODB | |
---|---|---|
事务支持 | 新版本支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | mysql 5.6 以后支持 |
表空间大小 | 较小 | 较大,约 2 倍 |
常规使用:
- MYISAM 节约空间,速度快
- INNODB 安全性高,事务处理,多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在 data 目录下,一个文件夹就对应一个数据库。
本质还是文件的存储!
MySQL 引擎在物理文件上的区别
- InnoDB 在数据库中只有一个 *.frm 文件,以及上级目录下的 ibdata1 文件
- MYISAM 对应的文件
- *.sdi 表结构的定义文件
- *.MYD 数据文件 (data)
- *.MYI 索引文件 (index)
设置数据库表的字符集编码
charset=utf8
不设置的话,会是 mysql 默认的字符集编码,MySQL5.7 是 latin1,不支持中文,MySQL8.0 开始是 utf8mb4。
在 my.cof
中配置默认的编码
character-set-server=utf8
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: