当前位置: 首页 > news >正文

[MySQL初阶]MySQL表的操作

MySQL表的操作

  • 1. 创建表
  • 2. 查看表结构
  • 3. 修改表(修改表的属性而非表的数据)
  • 4. 删除表


1. 创建表

语法:

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

注意:
character set 字符集 collate 校验规则 engine 存储引擎; 这块有很多种写法。

varchar类型:变长字符串
comment:类似于注释

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

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

说明:

不同的存储引擎,创建表的文件不一样。
此处例子中,users 表存储引擎是MyISAM ,在数据目中有三个不同的文件,分别是:
users.frm:表结构
users.MYD:表数据
users.MYI:表索引

在这里插入图片描述
使用MyISAM存储引擎的时候,可以发现在mysql目录下,会有三个文件。
MyISam:默认在指定的database中形成的数据库文件是3个。


2. 查看表结构

mysql > desc 表名;
显示表结构的最核心内容

在这里插入图片描述

mysql > show create table 表名;
显示表结构的整体和整体结构以及创建表的过程

在这里插入图片描述
允许为空的含义是:birthday这个可以插入的时候为空
Default:不插入该值的时候默认设置一个值


3. 修改表(修改表的属性而非表的数据)

修改表的属性而非表的数据:比如表中属性增加一个,增加一个name或birthday等。表结构轻易不要修改——不然很可能会出问题(表的一整列删除掉,原本的这些信息全都没有了或是添加一整列 然后再添加该项数据很麻烦)。

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

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);

在这里插入图片描述
修改表结构后为:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

mysql> alter table users modify name varchar(60);

删除password列:

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

mysql > alter table users drop password;
mysql > desc users;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

修改表名为employee

mysql > alter table users rename to employee;

mysql > select * from employee;
+------+------+------------+-------+
| id | name | birthday | assets |
+------+------+------------+-------+
| 1 | a | 1982-01-04 | NULL |
| 2 | b | 1984-01-04 | NULL |
+------+------+------------+-------+

注意: to可以省掉。

将name列修改为xingming

mysql> alter table employee change name xingming varchar(60);
--新字段需要完整定义

mysql> desc employee;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| xingming | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

修改表的DDL:

alter table 表名 add/modify/drop+列属性
alter table 表名 rename 新的名字
alter table 表明 change 旧列的名字 新列的名字 新列+新列的属性

4. 删除表

语法格式:

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

示例:

drop table test;

尽量不要删表,删表之前要做备份。

http://www.dtcms.com/a/109339.html

相关文章:

  • 【服务日志链路追踪】
  • C语言--回文字符串
  • Spark中排序--前缀排序prefixSort
  • 【人工智能之大模型】在Transformer中,同一个词可以有不同的注意力权重嘛?为什么
  • 鸿蒙NEXT开发缓存工具类(ArkTs)
  • 华为云 云化数据中心 CloudDC | 架构分析与应用场景
  • Java学习总结-Flie-IO流
  • 解决Ubuntu文件夹锁标记
  • 【youcans论文精读】弱监督深度检测网络(Weakly Supervised Deep Detection Networks)
  • Spring Boot 3.4.3 整合 Quartz 定时任务
  • Onloyoffice公式 从指定的数据范围中筛选出符合条件的数据行 放到别的sheet里面
  • Ubuntu 安装eBPF编译环境。
  • 【C++基础知识】odygrd/quill 中编译时计算可变参数个数的原理解析
  • WGAN原理及实现(pytorch版)
  • 简单聊聊机器视觉中常提的2D、2.5D和3D技术
  • Java面试33-fail-safe机制与fail-fast机制分别有什么作用
  • 从代码学习深度学习 - RNN PyTorch版
  • 浙江大学郑小林教授解读智能金融与AI的未来|附PPT下载方法
  • 电子电气架构 --- 面向服务的体系架构
  • Python垃圾回收:循环引用检测算法实现
  • 【面试题】如何用两个线程轮流输出0-200的值
  • 大模型应用初学指南
  • Linux 查找文本中控制字符所在的行
  • 线性欧拉筛
  • AF3 OpenFoldDataset类解读
  • 【面试篇】Kafka
  • 记录学习的第二十天
  • 【LeetCode 题解】数据库:626.换座位
  • Java基础:Logback日志框架
  • C# 与 相机连接