MySQL数据库 - 表的操作


目录

一、创建表

二、创建表案例

1、显示当前使用的数据库名

2、创建表 

2.1 MyISAM存储引擎表

2.2 InnoDB存储引擎表

三、查看表结构

 四、修改表

1、新增列 

 2、修改列类型

3、修改列名

4、修改表名 

5、删除列 

 五、删除表


表的操作至少会涉及如下两类SQL语句:

• DDL(Data Definition Language 数据定义语言):建表,删表,修改列名,新增列,删除列等。

• DML (Data Manipulation Language 数据操作语言):插入记录,删除记录,修改记录等。

其中,本次对表的操作是 DDL,操作表结构的SQL语句。


一、创建表

语法:

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

说明:

• field 表示列名。

• datatype 表示列的类型。

• character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准。

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

使用 show engines 这个SQL语句可以查看当前 MySQL 数据库支持的存储引擎:

 其中 MySQL 默认采用的是 InnoDB存储引擎(在没有显示指明用哪个存储引擎时)。


二、创建表案例

1、显示当前使用的数据库名

2、创建表 

创建两个表结构,分别以 InnoDB 和 MyISAM 不同的存储引擎,进行对比:

2.1 MyISAM存储引擎表

 在 /var/lib/mysql 这个路径下面,可以查看 user 表的结构:

 采用 MyISAM 存储引擎建表

• user.frm (表结构)

• user.MYD (表数据)

• user.MYI (表索引)


2.2 InnoDB存储引擎表

  在 /var/lib/mysql 这个路径下面,可以查看 users 表的结构:

采用 InnoDB 存储引擎建表

• users.frm (表结构)

• users.ibd (表数据 + 表索引)


三、查看表结构

使用 desc 表名 可以查看表的结构,示例:

 其中:

• Field 表示该字段的名字

• Type 表示该字段的类型

• NUll 表示该字段是否允许为空

• Key 表示索引类型,比如:主键索引 primary key,外键索引 foreign key

• Default 表示该字段的默认值

• Extra 表示该字段额外的信息说明

查看创建表的相关细节,可以使用 show create table 表名 \G  SQL语句


 四、修改表

先在之前创建的 user 表中插入两条数据:

1、新增列 

在 user 表中添加一个字段 path,用于保存图片路径:

此时查看表结构:


 2、修改列类型

将 user 表中的 name 字段类型修改为 varchar(60):

 此时查看表创建时的详细结构:

要与之前保持一致的话,也需要加上 comment '用户密码' 这个可选项。


3、修改列名

将 user 表中的 name 列名修改为 xingming 这个列名:


4、修改表名 

将 user 表修改为 employee 这个表名:


5、删除列 

将 employee 表中的 path 字段进行删除:

注意:删除列后,该列所对应存储的数据页将删除。


 五、删除表


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15290.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--调试器:gdb

gcc与g默认动态链接形成的可执行程序(比如a.out)是release 版本,不可调试!!! 如何搞成debug可调试版本? gcc 程序名 -o 可执行程序名 -g //添加了-g就表明该程序是debug方式发布的 查看可执行…

【Python】面向对象 - 封装 ② ( 访问私有成员 | 对象无法访问私有变量 / 方法 | 类内部访问私有成员 )

文章目录 一、访问私有成员1、对象无法访问私有变量2、对象无法访问私有方法3、类内部访问私有成员 一、访问私有成员 1、对象无法访问私有变量 在下面的 Python 类 Student 中 , 定义了私有的成员变量 , # 定义私有成员__address None该私有成员变量 , 只能在类内部进行访问 …

depot_tools问题记录 - 执行fetch/gclient命令无响应

文章目录 前言开发环境问题描述问题分析解决方案最后 前言 在研究将Dart dill文件序列化为可读文本时遇到的问题。 开发环境 macOS: 13.4 问题描述 之前使用depot_tools中的fetch/gclient命令还是正常的,今天想实测--no-history参数时突然遇到命令无响应的情况…

在 FPGA 上通过 2D CNN 进行高效视频理解的 TSM 网络

在这个项目中,将在线和离线 TSM 网络部署到 FPGA,通过 2D CNN 执行视频理解任务。 介绍 在这个项目中,展示了 Temporal-Shift-Module ( https://hanlab.mit.edu/projects/tsm/)在 FPGA 上解决视频理解问题的实用性和性能。 TSM 是一种网络结构…

Docker快速部署Hadoop环境

Docker安装部署Hadoop环境,通过三个容器来模拟三个节点,最后只保留Master节点实现搭建。 安装环境 Ubuntu 22.04.1 LTS 和Docker 23.0.1 安装过程 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base在Docker中创建网…

十三、Docker Compose使用和主要功能

学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 一、核心概念二、主要功能二、docker compose常用命令三、docker compose 案例3.1 自己写一个微服务模块3.2 用Dockerfile将上面的模块编排(不使用compose)3.3 使用compose编…

Go语言-数组和切片有什么异同?

slice 的底层数据是数组,slice 是对数组的封装,它描述一个数组的片段。两者都可以通过下标来访问单个元素。 数组是定长的,长度定义好之后,不能再更改。在 Go 中,数组是不常见的,因为其长度是类型的一部分…

【开源软件治理】MITRE : 开源软件

定义: 开源软件(OSS)是一种商业软件,只需同意遵守附带的 OSS 许可证即可获得全部所有权,无需立即进行第三方验证。同意 OSS 许可证允许个人、公司或政府实体根据需要尽可能频繁和广泛地复制、分发和运行 OSS 应用程序&…

现代C++新特性 扩展的聚合类型(C++17 C++20)(PC浏览效果更佳)

文字版PDF文档链接:现代C新特性(文字版)-C文档类资源-CSDN下载 1.聚合类型的新定义 C17标准对聚合类型的定义做出了大幅修改,即从基类公开且非虚继承的类也可能是一个聚合。同时聚合类型还需要满足常规条件。 1.没有用户提供的构造函数。…

Django_模型类详解(七)

目录 一、定义属性 字段类型 选项 二、查询集 两大特性 查询集的缓存 限制查询集 三、条件查询 条件运算符 1) 查询相等 2) 模糊查询 3) 空查询 4) 范围查询 5) 比较查询 6) 日期查询 F对象 Q对象 聚合函数 四、关联查询 通过对象执行关联查询 通过模型类执…

Squid 缓存代理(一)---原理及搭建(传统代理、透明代理)

前言 Squid 是 Linux 系 统 中 最 常 用 的 一 款 开 源 代 理 服 务 软 件 ( 官 方 网 站 为 http://www.squid-cache.org),可以很好地实现 HTTP 和 FTP,以及 DNS 查询、SSL 等应用的缓存代理。缓存代理作为应用层的代理服务软件…

Python学习笔记-基于socket基础的http服务端程序

通过HTTP协议可以进行通信可以规范化的进行网络间通信。下面技术第一个http服务器小程序。简单的记录第一个试手程序。 1.http通信的基本流程 整个流程对应四层网络架构:应用层、传输层、网络层、链路层。有的部分已经封装,不需要我们再行处理。 2.服务…