mysql:建表及书写规范,历史
目标:创建一个数据库,school(create database 数据库名; )
使用某个数据库 ,(use database 数据库名)
创建学生表(列,字段),使用sql语句创建
学号 int 登陆密码varchar(20) 姓名varchar(30) 性别varchar(2)
出生日期(datatime) 家庭住址email
注意点:使用英文(),表的名称 和 字段 尽量使用` `括起来
AUTO_INCREMENT 自增
字符串使用 单引号括起来
所有语句后面加逗号(英文的),最后一个不用加
primary key 主键,一般一个表只有一个唯一的主键
DROP TABLE IF EXISTS `student`; CREATE TABLE `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 '性别', `brithday` 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]`表名`( ·字段名· 列类型 [属性] [索引] [注释], ·字段名· 列类型 [属性] [索引] [注释], ...... ·字段名· 列类型 [属性] [索引] [注释] )[表的类型][字符集设置][注释] --方括号中的内容可写可不写
科普
SHOW CREATE DATABASE school -- 查看创建数据库的语句 SHOW CREATE TABLE student -- 查看student数据表的定义语句 DESC student -- 显示表的结构 -- 关于数据库引擎,了解就可 /* INNODB 默认使用 MYISAM 早些年使用的
MYSIAM | INNODB | |
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为2被 |
常规使用操作
MYISAM 节约空间,速度较快
INNODB 安全性高,支持事务的处理和多表多用户操作
在物理空间位置
所有的数据文件都在data目录下
本质还是文件的存储
MYSQL引擎在屋里文件上的区别
innoDB在数据表中只有一个*.frm文件,以及上级目录下的ibdata1文件
MYISAM 对应我文件
*.frm 表结构定义的文件
*.MYD 数据文件(data)
*.MYI 索引文件(index)
CHARSET=utf8
不设置,使用的是mysql默认的字符集编码(不支持中文)
MySOL的默认编码是Laint1,不支持中文
在my.ini中配置默认的编码
eg:character-set-server=utf8
数据库的本质:各种特定文件的集合