【MySQL】表的操作

目录

创建表

查看表

修改表

删除表


创建表

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype

) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

我们当前在user_db这个数据库中,创建表之前里面只有一个文件
现在,我们在这个数据库中创建一个表

comment是该列的文字说明。最后一行的字符集和校验集可不写,默认继承与数据库

此时会发现这个数据库对应的文件目录里面多了3个文件

再来建一个表

会发现表user1有3个文件,表user2有2个文件,因为存储引擎不同。

建表后面的存储引擎也可不加,配置文件中默认的是InnoDB

查看表

查看当前数据库中有那些表

show tables;

具体查看某一张表的信息

desc 表名

查看指定表的创建语句

show create table 表名;

可在后面加\G,格式化显示,方便查看
此时我们查出来的创建语句与我们创建表时写的语句不太一样,因为mysqld会进行优化

MySQL上会记录用户的所有操作

修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);

ALTER TABLE tablename DROP (column);

修改表的名称

这里的to是可以省略的

向user表中插入一些数据

正常要insert into user (字段名称) values ... 表示给某一个字段插入,可省略括号中的内容,表示给全部字段插入

在users表添加一个字段,用于保存图片路径

after birthday表示在birthday这一列后面加上新的一列

插入新字段后,对原来表中的数据没有影响

修改name列,将其长度改成60

修改之前:

修改之后:

会发现,name这一列原本是有comment的,修改时若没加comment就没了。所以,是将新的属性直接覆盖的。

删除password列

将name列修改为xingming

删除表

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

相关推荐
星霜笔记2 小时前
Docker 部署 MariaDB+phpMyAdmin+Nextcloud 完整教程
运维·数据库·docker·容器·mariadb
阿珊和她的猫3 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
fouryears_234176 小时前
Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
开发语言·flutter·客户端·dart
我好喜欢你~6 小时前
C#---StopWatch类
开发语言·c#
poemyang6 小时前
十年大厂员工终明白:MySQL性能优化的尽头,是对B+树的极致理解
mysql·pagecache·顺序i/o·局部性原理·b tree·b+ tree
lifallen7 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研7 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
快乐的划水a8 小时前
组合模式及优化
c++·设计模式·组合模式
wyiyiyi8 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
天宇_任8 小时前
Mysql数据库迁移到GaussDB注意事项
数据库·mysql·gaussdb