2.5、数据表的类型
-- 关于数据库的引擎
/*
INNODB 默认使用
MYISAM 早些年使用的
*/
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持(表锁) | 支持(行锁) |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约两倍 |
常规使用操作:
- MYISAM:节约空间 速度较快
- INNODB:安全性高 事务的处理 多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库
本质还是文件的存储!
- INNODB:在数据库表中只有一个*.frm文件以及上级目录下的ibdata1文件
- INNODB的对应文件:
- *.frm -表结构的定义文件
- *.MYD -数据文件(data)
- *.MYI -索引文件(index)
设置数据库表的字符集编码
CHARSET utf8 --在创建表的时候加上,设置成支持中文的字符集编码
不设置的话会是mysql默认的字符集编码 (不支持中文!)
Mysql的默认的字符集编码是Latin1,不支持中文
注意:可以在my.ini中配置默认的编码
character-set-server=utf8 (不建议,只设置了本地的字符集编码)
2.6、修改删除表
修改表
-- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 字段的列属性
ALTER TABLE teacher1 ADD id INT(11)
-- 修改表的字段 (重命名,修改约束)
-- 修改约束 ALTER TABLE 表名 MODIFY 字段名 列属性
ALTER TABLE teacher1 MODIFY age VARCHAR(11) -- 修改约束
-- 字段重命名 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性
ALTER TABLE teacher1 CHANGE age age1 INT(11) -- 字段重命名
删除表
-- 删除表(如果存在再删除)
-- DROP TABLE (IF EXISTS) 表名
DROP TABLE IF EXISTS teacher1
所有的删除和创建尽量加上判断,一脉你报错
注意点:
- 所有的字段名和表名尽量用``包裹
- 注释 -- 或 /* */
- sql关键字大小写不敏感,建议都用小写
- 所有用到的符号