【MySQL】表的操作
🏠个人主页:Yui_
🍑操作环境:Centos7
🚀所属专栏:MySQL
文章目录
- 1.创建表
- 1.1 知识补充: )存储引擎
- 2. 查看表
- 2.1 查看当前数据库下的所有表
- 2.2 查看指定表结构
- 2.3 查看表的创建信息
- 3. 修改表
- 3.1 新增属性
- 3.2 修改属性
- 3.3 删除属性
- 3.4 修改表名
- 4. 删除表
- 5. 总结
在数据库中,一起皆是表,可以说表是数据库最重要的组成部分.后续的
sql
语句也大多数就是对表进行操作.
1.创建表
语法:
CREATE TABLE 表名(属性名1 属性类型属性名2 属性类型属性名3 属性类型
)character set 字符集 collate 校验规则 engine;
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 .
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准.
- engine 存储引擎,如果没有指定存储引擎,则以所在数据库的存储引擎为准.
字符集和校验规则已经没什么好讲的了,不了解的可以去看上一篇文章:【MySQL】库的操作-CSDN博客
存储引擎,这个在配置文件时添加的,现在打开配置文件/etc/my.cnf
我们可以怎么查看表的存储引擎呢?
找到/var/lib/mysql/数据库名
进入这个目录,找到刚刚创建的表:
当我们使用innodb
这个存储引擎时,会产生这两个文件.
1.1 知识补充: )存储引擎
在 MySQL 中,存储引擎(Storage Engine) 决定了表的底层实现方式,比如数据的存储、索引的使用、事务支持等特性。
下表由GPT生成:
特性 | InnoDB 🏆(默认) | MyISAM 🗂️ | MEMORY ⚡ | ARCHIVE 📦 |
---|---|---|---|---|
事务支持 | ✅ 是 | ❌ 否 | ❌ 否 | ❌ 否 |
外键支持 | ✅ 是 | ❌ 否 | ❌ 否 | ❌ 否 |
锁粒度 | 行级锁 | 表级锁 | 表级锁 | 表级锁 |
崩溃恢复 | ✅ 支持 | ❌ 较差 | ❌ 易丢失 | ❌ |
存储位置 | 磁盘 | 磁盘 | 内存 | 磁盘 |
适合场景 | 高并发读写、事务场景 | 查询多写少 | 缓存临时表 | 日志压缩存储 |
存储引擎是表的“内核”,不同引擎适用于不同场景 |
2. 查看表
2.1 查看当前数据库下的所有表
show tables;
2.2 查看指定表结构
desc 表名;
2.3 查看表的创建信息
有两种方法来查看建表信息:
show create table 表名;
show create table 表名/G
个人认为,/G
更好点~
我们可以从建表信息中得到什么呢?
我们写得属性名和属性类型都可以看到,除此之外还可以看到存储引擎\字符集,以及(DEFAULT 默认值,可以看出C++中的缺省).
当然可以看到到还不值这些,比如:注释信息(我没写) 主键\外建\非空等等约束,这些应该会在表的约束和大家见面.
悄悄告诉你,其实desc 表名
的内容就是从这个建表信息中提取的.
3. 修改表
修改表有很多操作,就比如:添加属性,修改属性(修改属性名,修改属性类型),删除属性.
语法:
ALTER TABLE 表名 ADD (属性1 属性类型[DEFAULT expr][,属性2 属性类型]...);
ALTER TABLE 表名 MODIFY (属性1 属性类型[DEFAULT expr][,属性2 属性类型]...);
ALTER TABLE 表名 DROP (column);
3.1 新增属性
现在我就新增两个属性,分别为班级和社团
新增的属性默认是最后的,不过新增属性时也支持指定位置,但是只有在新增单个属性时才可以指定位置.
3.2 修改属性
修改属性又可以分为对属性名的修改,对属性类型的修改。
- 修改属性类型
ALTER TABLE tablename MODIFY column datatype [DEFAULT expr], [MODIFY ...];
- 需要确保修改的字段存在,并且要保证修改后的字段类型与表中已经存在的数据类型相匹配。
- 支持修改多个属性,用
,
分离。 - 修改属性后,原字段的所有消息都会被覆盖,包括注释。
2. 修改属性名
ALTER TABLE tablename CHANGE oldcolumn newcolumn datatype [DEFAULT expr];
除了可以修改属性名外,其实也是可以修改属性类型的。
3.3 删除属性
语法:
ALTER TABLE 表名 DROP 属性名;
如果要删除一样东西的话,一定要确定他是对你没有的东西,以后也不会有用了。
3.4 修改表名
语法:
ALTER TABLE 旧表名 rename [to] 新表名
创建一个临时的表,来演示修改表名和删除表~
这是新创建的表,下面开始修改它。
4. 删除表
语法:
DROP [TEMPORARY] TABLE [IF NOT EXISTS] 表名 [,表名2]...
下面看演示:
同样的,在删除表前一定要清楚删除后会用什么后果哦~
5. 总结
本文主要讲述了对表的增(创建)删查改,不过这些都是表的基操作,后续的文章就对表的操作进行进阶
往期文章:
【MySQL】数据库基础-CSDN博客.
【MySQL】库的操作-CSDN博客