MySQL表的操作

创建表

语法:

sql 复制代码
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field表示列名
  • datatype表示列的类型
  • character set字符集,如果不指定字符集,默认为当前数据库的字符集
  • collate校验规则
  • engine搜索引擎,如果不指定,则选用配置文件的引擎

创建表示例

sql 复制代码
create  table  users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;

此时在MySQL的默认存储路径/var/lib/mysql/,对应我们当前数据库user_db的路径/var/lib/mysql/user_db下就会新增三个文件:

  • .sdi是数据库镜像文件
  • .MYD是表数据
  • .MYI是表索引
  • 8.0以前的MySQL没有.sdi文件而是 .frm表结构

我们可以以默认形式创建一个表:

sql 复制代码
create  table  users2 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
);

此时我们的搜索引擎就是InnoDB。

可以看到InnoDB引擎形式创建的表只会生成一个.ibd文件。

  • .ibd 文件是 MySQL InnoDB 存储引擎的独立表空间文件

查看表的结构

语法:

sql 复制代码
desc 表名;
  • Fileld 字段名字
  • Type 字段类型
  • Null 是否允许为空
  • Key 索引类型
  • Default 默认值
  • Extra 扩充

此外,我们还能用:

sql 复制代码
show create table 表名;

来显示创建语句:

有很多-妨碍我们,我们可以在show create table 表名后加上\G去掉这些字符:

此时\G后面就不用跟;了。

注意到我们的user2就是默认字符集,默认引擎。

修改表

我们可以修改表的名字,字段名字,字段大小之类的。

语法:

sql 复制代码
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);

如我们先在users中插入两条数据:

sql 复制代码
insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');
  1. 此时我们可以添加一个字段来存储图片保存路径:
sql 复制代码
alter table users add img_path varchar(100) comment '图片路径' after birthday;

这里的after就是指img_path这一列在birthday之后.

  1. 修改name的类型长度:
sql 复制代码
alter table users modify name varchar(60);

注意我们再查看创建语句:

细心的读者已经发现了,我们的comment描述被覆盖了。所以modify是覆盖式的修改,因此我们修改的时候要把类型打全哦,包括之前的comment。

  1. 删除password列:
sql 复制代码
alter table users drop password;

此时password的数据都丢失了,所以不要随意删除列。

4.修改表名

sql 复制代码
alter table users rename (to) employee;

此时我们的文件名也会跟着一起修改:

5.将name列修改为xingming:

sql 复制代码
alter table employee change name xingming varchar(60);

注意把类型带上哦。

删除表

语法:

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

如:

以上我们对表操作,除了插入数据都是DDL【data definition language】数据定义语言。

相关推荐
AC赳赳老秦2 分钟前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw
郑州光合科技余经理2 分钟前
家政O2O平台解析:从0搭建上门预约小程序解决方案
android·java·开发语言·前端·小程序·架构·php
后端优选官1 小时前
上海Agent开发公司:企业级智能体软件的技术架构与落地评估
数据库·人工智能·架构·软件开发·开发经验·上海
JustNow_Man1 小时前
`openspec/config.yaml` 解析与生效机制
数据库
Databend1 小时前
用 QUALIFY 写出更清晰的窗口函数 SQL
数据库·sql·数据分析
数智化管理手记1 小时前
应收应付资金占用过高怎么办?应收应付搭配账龄分析怎么做
大数据·网络·数据库·人工智能·数据挖掘
用户71333585156241 小时前
MySQL - EXPLAIN 执行计划
数据库
这就是佬们吗1 小时前
Python入门③-运算符、条件与循环
开发语言·数据库·vscode·python·pycharm·编辑器
wending-Y1 小时前
Flink 滑动窗口作业 TaskManager RocksDB 状态膨胀 Bug 分析
java·前端·数据库
小大宇1 小时前
mongoDB dump技巧
数据库·mongodb