Day04-MySQL
操作数据库
创建数据库表
常用命令
SHOW CREATE DATABASE school -- 查看创建数据库的语句
SHOW CREATE TABLE student -- 查看创建数据表的语句
DESC student -- 显示表的结构
数据表的类型
-- 关于数据库引擎
/*
INNODB 默认使用
MYISAM 早些年使用的
*/
| MYISAM | INNODB | |
|---|---|---|
| 事务支持 | 不支持 | 支持 |
| 外键约束 | 不支持 | 支持 |
| 数据行锁定 | 不支持(支持表锁定) | 支持 |
| 表空间大小 | 较小 | 较大 |
| 优势 | 节约空间,速度较快 | 安全性高,事务的处理,多表多用户操作 |
在物理空间存在的位置
所有的数据库文件都存在 data目录下,一个文件夹对应一个数据库
本质还是文件的存储
MySQL引擎在物理文件上的区别
- InnoDB在数据库表中只有一个.frm文件(8.0之前),以及上级目录下的ibdata1文件。MySQL8.0之后不再单独提供.frm文件,而是合并在*.ibd文件中
- MYISM对应文件
- *.frm - 表结构的定义文件
- *.MYD - 数据文件
- *.MYI - 索引文件
设置数据库表的字符集编码
CHARSET=utf8mb4
不设置的话,会是mysql默认的字符集编码
MySQL的默认编码是Latin1(8.0之前,8.0之后是utf8mb4),不支持中文
在my.ini中配置默认的编码
character-set-server=utf8mb4
修改删除表
修改
-- 修改表名 ALTER TABLE oldname RENAME AS newname
ALTER TABLE student_grade RENAME AS studentgrade
-- 增加表的字段 ALTER TABLE NAME ADD `FIELD NAME` COLUMN PROPERTIES
ALTER TABLE studentgrade ADD `pass` VARCHAR(1)
-- 修改表的字段(重命名CHANGE,修改约束MODIFY)
-- 想只改类型/约束,不改列名:用MODIFY,语法简单安全。
-- ALTER TABLE NAME MODIFY `FIELD NAME` COLUMN PROPERTIES
ALTER TABLE studentgrade MODIFY `pass` VARCHAR(3)
-- 想改列名:只能用CHANGE(8.0+也可以用RENAMECOLUMN)同时可以顺带改类型
-- ALTER TABLE NAME CHANGE `OLD FIELD NAME` `NEW FIELD NAME` COLUMN PROPERTIES
ALTER TABLE studentgrade CHANGE `pass` `pass or not` VARCHAR(1)
-- 删除表的字段 ALTER TABLE NAME DROP `FIELD NAME`
ALTER TABLE studentgrade DROP `pass or not`
删除
-- 删除表(如果存在再删除)
DROP TABLE [IF EXISTS] studentgrade
所有的创建和删除操作尽量加上判断,以免报错
浙公网安备 33010602011771号