MySQL表的操作

目录

创建表

创建表案例

查看表结构

修改表

修改表名

修改列

删除表

创建表

语法:

说明:
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准

collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

创建表案例

两个不同的存储引擎

CREATE TABLE test (

-> id INT,

-> name VARCHAR(20) COMMENT '用户名',

-> password CHAR(32) COMMENT '密码是32位的md5值',

-> birthday DATE COMMENT '生日'

-> ) CHARACTER SET utf8 ENGINE MyISAM;

CREATE TABLE test2 (

id INT,

name VARCHAR(20) COMMENT '用户名',

password CHAR(32) COMMENT '密码是32位的md5值',

birthday DATE COMMENT '生日'

) CHARACTER SET utf8 ENGINE InnoDB;

comment是描述信息的,大小写都行
说明:不同的存储引擎,创建表的文件不一样。

test表存储引擎是MyISAM ,在数据目中有三个不同的文件,分别是:test.frm test.MYD test.MYI

表结构 表数据 表索引

而test2表存储引擎是 InnoDB,他的数据和索引在一个文件里,所以有两个文件

查看表结构

desc 表名; 查看一个表的详细信息



show create table test;显示建表时的详细信息

建议使用 show create table test \G

\G是将不需要的信息过滤掉

修改表

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

修改表名

alter table x rename to xx;//注意to可以省略

修改列

alter table意思是要改表了

插入信息:

insert into test1 values(1,'张三','12345','1982-01-04');

insert into test1 values(2,'李四','54321','1983-01-04');
插入新字段列:

alter table test1 add image_path varchar(128) comment '这个是用户的头像路径' after birthday;

新建一列并且在birthday后面

插入新字段后对原来的数据没影响

修改字段列数据类型大小:

alter table test1 modify name varchar(60);


但是查看后发现:原本的comment描述信息不见了。说明是覆盖的改动
删除列:

alter table test1 drop password;删除password列


删除字段一定要小心,删除字段及其对应的列数据都没了
改列名称:

alter table test1 change name xingming varchar(60) DEFAULT NULL;

alter table test1 change xingming name varchar(60) ;

不只是改名字同时相应的信息也要改

单纯改名字不对,要带上字段类型。

DEFAULT NULL是由show create table test1 \G;得来的是数据库优化来得,带不带都行。

删除表

drop table test1;

总之不要轻易修改和删除因为关联很多东西 ,轻易修改会导致改动很多东西。

相关推荐
10岁的博客1 小时前
DevEco Code 的 Plan+Build 模式:审方案再执行的技术深度解析
大数据·数据库·人工智能
wuqingshun3141591 小时前
MySQL 如何解决深度分页问题?
java·mysql·面试
buhuizhiyuci1 小时前
【算法篇】位运算 —— 基础篇
java·数据库·算法
川石课堂软件测试1 小时前
安全测试|服务器安全加固方法
服务器·功能测试·测试工具·jmeter·mysql·web安全·单元测试
youtootech2 小时前
HarmonyOS《柚兔学伴》项目实战08-关系型数据库入门——待办事项持久化
jvm·数据库·华为·harmonyos
2401_858286112 小时前
OS79.【Linux】POSIX信号量
linux·运维·服务器
微三云 - 廖会灵 (私域系统开发)2 小时前
电商系统国际化架构设计:多语言、多币种、多时区、多税制的全链路实现
java·前端·数据库
周杰伦的稻香2 小时前
PostgreSQL中的METHOD(认证方法)
数据库·postgresql
万岳科技系统开发2 小时前
智慧医院小程序开发满足医疗机构多场景服务需求
数据库·学习·小程序
CodingPioneer2 小时前
03零刻Pro-LS2K3000-Loongnix 20.7.rc1硬盘分区、格式化、挂载与卸载
linux·运维·服务器·硬盘挂载