MySQL表的操作

文章目录

MySQL表的操作

1、创建表

语法:\[\]内容可省略

mysql 复制代码
create table 表名(
	列名1 列类型1 [not null] [default 默认值] [primary key],	
	列名2 列类型2,	
	...
) [字符集] [校验规则] [存储引擎];

说明:

  • not null :该列不能为空

  • default 默认值:该列设置了默认值(没写就自动填默认值)

  • primary key:该列设置为主键

  • 字符集名和校验规则名,在前面的博客MySQL库的操作有讲过,不再赘述。

  • 字符集:character set 字符集名

  • 校验规则:collate 校验规则名

  • 存储引擎:engine 存储引擎名


2、创建表案例

创建表之前,得先进入到当前数据库中,使用use 数据库名;进入到该数据库,然后在该数据库中建表:

mysql 复制代码
use test1; -- 进入该数据库
create table users(
   id int,
   name varchar(20),
   password varchar(18)
   ) character set utf8 engine MyISAM;

说明:

  • 不同的存储引擎创建表的文件不一样。

  • 这里users的表结构如下:

  • 再创建一个默认的存储引擎为InnoDB的表test,该test的表结构如下:
  • 可以看到不同的存储引擎创建表的文件不一样,且文件大小相差很大。

3、查看表结构

mysql 复制代码
desc 表名;

第一行从左往右分别是字段名(列名)、字段类型、是否可以为空、是否是主键、默认值、扩充。


4、修改表

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

4.1、修改表结构

mysql 复制代码
alter table 表名 modify (字段名 字段类型 [not null] [default 默认值] [primary key], 字段名...);

案例:

  • 先在users表中插入两条数据(后面博客会详细讲解插入语法):
mysql 复制代码
insert into users values(1,'张三','1234'),(2,'李四','3456');
  • 查看插入后的表内容(后面博客会详细讲解select语法):
mysql 复制代码
select * from users;
  • 修改password,让其长度改为100:
mysql 复制代码
alter table users modify password varchar(100);

4.2、表中添加字段

添加字段:

mysql 复制代码
alter table 表名 add (字段名 字段类型 [not null] [default 默认值] [primary key], 字段名...);

在users表中增加一个字段path,用来保存图片路径:

mysql 复制代码
alter table users add path varchar(50) after password;

这里我们使用了关键字after 字段名,用来插入到该字段名后面。并且新增字段对原来数据没有影响。

新增字段后,表结构也新增了一行。

(这里password长度重新设置成了18)。


4.3、表中删除字段

删除字段:

mysql 复制代码
alter table 表名 drop (字段名);

删除password字段:

mysql 复制代码
alter table users drop password;

注意:删除该字段,该字段的数据将被全部删除,涉及到删除的动作,需要特别注意!


4.4、修改表名

修改表名:

mysql 复制代码
alter table users rename [to] 新表名;

users修改表名为student:

mysql 复制代码
alter table users rename student;

4.5、修改字段名

修改字段名:

mysql 复制代码
alter table 表名 change 字段名 新字段名 字段类型 [not null] [default 默认值] [primary key]; --新字段需要完整定义

我们可以观察到:修改表结构、添加字段和修改字段名,操作和创建表的操作是基本一样的!

修改name字段为xingming:

mysql 复制代码
alter table student change name xingming varchar(22);

5、删除表

语法:

mysql 复制代码
drop [tempoary] table [if exists] 表1,表2...;

OKOK,MySQL表的操作就到这里,如果你对Linux和C++也感兴趣的话,可以看看我的主页哦。下面是我的github主页,里面记录了我的学习代码和leetcode的一些题的题解,有兴趣的可以看看。

Xpccccc的github主页

相关推荐
大师兄666813 分钟前
HarmonyOS7 数据持久化 relationalStore:数据库实战
数据库·arkui·实战案例·harmonyos7
冰茶丿25 分钟前
状态机在嵌入式系统中的应用:不只是switch-case这么简单
数据库·嵌入式硬件·mongodb
AIHR数智引擎26 分钟前
15%对撞40%:WEF白皮书里的AI组织隐忧
数据库·人工智能·经验分享·职场和发展·aihr
卓怡学长33 分钟前
w261springboot基于web学校课程管理系统
java·数据库·spring boot·spring·intellij-idea
嘉泰姆半导体官方35 分钟前
CXAR41337C 双通道数字音频功放 | 2×20W | EQ+DRC | I²S | MCLK-Less - 嘉泰姆电子
前端·javascript·数据库
不坑老师1 小时前
怎么在Word中制作汉字书写笔顺——不坑盒子汉字笔顺步骤在小学低段识字教学中的应用
前端·数据库·人工智能·word·excel·office
苍狼唤1 小时前
SQL+C# 增删改查(练习)
数据库·sql·c#
2301_800256111 小时前
第七章 空间存储与索引 知识点梳理-2
数据库·sql·oracle
草莓熊Lotso2 小时前
【Redis 初阶】 从分布式演进背景到环境搭建全解析
数据库·人工智能·redis·分布式·缓存
倔强的石头_2 小时前
优化器为什么敢把你写的 LEFT JOIN 悄悄改掉?-国产化金仓 KES 优化器设计思路拆解
数据库