Mysql学习笔记 Day3 0302
- Day3
- 1、创建数据库表(重点)
- 2、MyISAM和InnoDB区别(数据库引擎)
Day3
Mysql学习以及回顾。
1、创建数据库表(重点)
--- 目标:创建一个school数据库
--- 创建学生表(列,字段) 使用SQL创建
--- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datetime),家庭住址,email
-- 注意点,使用英文(),表的名称和字段尽量使用``括起来
-- AUTO INCREMENT 自增
-- DEFAULT 默认
-- COMMENT 注释
-- 字符串使用 单引号 括起来
-- 所有的语句后面加,(英文的),最后一个不用加
-- PRIMARY KEY 主键,一般一个表只有唯一的主键
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
格式(※)
CREATE TABLE[IF NOT EXISTS] `表名`(
'字段名' 列类型 [属性][索引][注释],
'字段名' 列类型 [属性][索引][注释],
'字段名' 列类型 [属性][索引][注释],
...
'字段名' 列类型 [属性][索引][注释] --最后一行就没有逗号
)[表类型][字符集设置][注释]
如果不会写,可以sqlyog上创建database和table,然后show出语句
常用命令
SHOW CREATE DATABASE school; --查看创建数据库的语句
SHOW CREATE TABLE student; --查看student数据表的定义语句
DESC student; --显示表的结构
2、MyISAM和InnoDB区别(数据库引擎)
数据表的类型
INNODB 默认使用
MYISAM 早些年使用
区别 | MYISAM | INNODB |
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为2倍 |
常规使用操作:
- MYISAM 节约空间,速度较快
- INNODB 安全性高,事务的处理,多表多用户操作
在物理空间存在的位置
所有的数据库文件都在data目录下,一个文件夹就对应一个数据库
本质上还是文件的存储!
MySQL引擎在物理文件上的区别
- InnoDB在数据表中只有一个*.frm文件,以及上级目录下的ibdata1文件
- MYISAM对应文件
*.frm 表结构的定义文件
*.MYD 数据文件(data)
*.MYI 索引文件(index)
设置数据库表的字符集编码
CHARSET=utf8
不设置的话,就会是mysql默认的字符集编码~(不支持中文!)
MySQL的默认编码是Latin1,不支持中文
在my.ini 中配置默认的编码
character-set-server=utf8
直接在表里创建,避免他人没做设置