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

所有的创建和删除操作尽量加上判断,以免报错

posted @ 2026-04-17 21:09  小空谜  阅读(7)  评论(0)    收藏  举报