-- 目标:创建一个school数据库
-- 创建学生表(列,字段) 使用SQL创建
--学号(int) 登陆密码varachar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址--emil
--注意点使用 英文括号(),表的名称和字段尽量使用``括起来
--AUTO_INCREMENT自增
--字符串使用单引号括起来
--所有的语句后面加,(英文的),最后一个不用加
--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] `表名`(
'字段名' 列类型 [属性] [索引] [注释],
'字段名' 列类型 [属性] [索引] [注释],
.........
'字段名' 列类型 [属性] [索引] [注释],
)[表类型][字符集设置][注释]
2.数据表的类型
-- 关于数据库引擎
/*
INNODB 默认使用~
MYISAM 早些年使用
*/
MYISAM | INNODN | |
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持表锁 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为2倍 |
常规的使用操作:
MYISAM 节约空间,速度较快
INNODB 安全性高,事务的处理,夺表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下,一个文件夹对应一个数据库
其本质还是文件的存储
MySQL 引擎在屋里文件上的区别
1.InnoDB 在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
2.MYISAM 对应的文件
。*.frm --表结构的定义文件
。*.MYD-- 数据文件(data)
。*.MYI--索引文件(index)
设置数据库表的字符集编码
DEFAULT CHARSET=utf8
不设置的话, 会是MySQL默认的字符集编码~(不支持中文)
MySQL的默认编码是Latin1,不支持中文
在my.ini中配置默认的编码
CHARSET-set-server=utf8