创建数据库表

开始

目标:创建一个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 协议》,转载必须注明作者和本文链接
讨论数量: 1

@HuDu
MySQL版本大于等于5.6,InnoDB也支持全文索引
默认字符集:MySQL5.7是latin1,MySQL8.0是utf8mb4

2周前 评论
HuDu (楼主) 2周前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!