首页 > 数据库 >MySQL——基础操作(2)

MySQL——基础操作(2)

时间:2024-09-03 21:26:21浏览次数:6  
标签:语句 字符集 MySQL 基础 修改 名字 table 操作 TABLE

一、创建表

1.1 SQL语法

首先我们先来学习一下表的操作。后续都是对表的增删查改!

创建表的语法:

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

【注意】我们在上篇文章中讲解到了库的字符集与校验规则的设置。表也是可以设置自己对应的字符集和校验规则的。其次,上述字符集设置中,character set 等同于 charset。

语法说明:

  • field 表示列名;
  • datatype 表示列的类型;
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准;
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;
  • engine是用来指定表所采用的存储引擎。

1.2 实例演示

下面我们结合实例来理解一下。具体如下图:

首先说明一下,上述语句中 comment 是用来添加注释信息的。那么我们来查看一下所创建的表。查看表结构的详细信息用到的语句是:desc 表名字。如下图:

我们所添加的注释信息在哪看呢?这时候我们就需要用查看创建表时的语句的详细信息了,具体如下图:

当我们不指定存储引擎时,数据库会使用默认的存储引擎:innodb。我们通过Linux下对应的文件可以看出,不同的存储引擎所创建出来的表也是有所不同的。

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

  • t1.frm:表结构;
  • t1.MYD:表数据;
  • t1.MYI:表索引。

t2 表存储引擎是 innodb,在数据目中有两个不同的文件,分别是:

  • t2.frm:表结构;
  • t2.ibd:表数据和表索引;

二、查询表

查询某个库中都有哪几个表,可以用语句:show tables。具体如下图:

我们在上述创建中也提到了查询表结构的详细信息,所用到的语句是:desc 表名字。具体如下图:

说明一下,desc表中的每一行都表示一个字段,并包含以下属性:

  1. Field:字段名称。
  2. Type:数据类型。例如,VARCHAR(64)、INT、FLOAT 等。
  3. Null:是否允许NULL值。如果是'YES',则可以是NULL;如果是'NO',则必须有值。
  4. Key:主键、唯一键或普通索引的类型。'PRI'是主键,'UNI'是唯一键,'MUL'是多列键,'ALL'是全索引。
  5. Default:字端的默认值。如果没有默认值,则为空。
  6. Extra:字段的一些额外信息。例如,'auto_increment' 表示该字段是自动递增的,'on update CURRENT_TIMESTAMP' 表示该字段在更新时会自动设置当前时间戳。

我们也可以通过show create table 表名字来查看创建表时的具体细节。如下图:

我们怎么查看表中所存储的信息呢?可直接使用select语句进行查看。具体如下图:

我们是插入了两条数据在进行查询。这里也就不再对查询做过多解释。我们所说的插入一个字段,对应到表中也就是插入了一列。

三、修改表

修改表主要用到的语句是:alter table 表名字 要修改的内容

3.1 修改表名字

一般情况下是不支持对数据库的名字进行修改的,但是可以修改表的名字。语句:alter table 表名字 rename to 新表名字。 该语句中的 to 是可以省去的。

3.2 新增列(字段)

在不断开发中,可能会项表中新增一列。所用语句:

alter table 表名字 add 新增列明 新增列属性;

我们看到新增的一列默认是在表中最后的位置。也可以使用语句:alter table 表名字 add 新增列名 新增列属性 after 列名。

3.3 修改列类型

有时候我们定义的列类型时,后续因为数据原因,需要变动。比如修改某个字段类型的最大长度等等。语句:alter table 表名字 modify 列名字 修改后列名字。

上图中,我们就是把名字的最大长度进行了修改。【注意】如果还需要注释信息时,我们在修改时也应该写上。在这里我们也可以看出,修改并不是指定式的修改内容,而是覆盖式的去修改内容。

3.4 修改列名

列的名字也是可以被修改的。所用语句:

alter table 表名字 change 列名字 新列名字 新列属性。 

这里的修改也是覆盖式的进行修改,原来的建表时的注释信息也被覆盖掉。

3.5 删除表

删除表也就意味着删除表中的所有数据。所以在删除表的时候,需要确认表中的信息是没有用的了,否则不要轻易删除。具体语句:drop table 表名字;

四、总结

本文章主要对表的操作进行的详细讲解,下面对本文章所用到的语句进行一个简单的总结。具体如下:

CREATE TABLE [IF NOT EXISTS] table_name(
	field1 datatype1 [COMMENT '注释信息'],
	field2 datatype2 [COMMENT '注释信息'],
	field3 datatype3  [COMMENT '注释信息']
)[CHARSET=字符集] [COLLATE=校验规则] [ENGINE=存储引擎];
 
DESC 表名字;
 
SHOW TABLES;
 
ALTER TABLE table_name RENAME [TO] 新表名字;
ALTER TABLE table_name ADD 新增列名字 新增列类型;
ALTER TABLE table_name MODIFY 列名字 修改后列类型;
ALTER TABLE table_name DROP 列名字;
ALTER TABLE table_name CHANGE 列名字 新列名 新列类型;

DROP TABLE;

标签:语句,字符集,MySQL,基础,修改,名字,table,操作,TABLE
From: https://blog.csdn.net/m0_73243771/article/details/141812659

相关文章

  • 利用LangChain构建MySQL数据库问答代理
    引言随着自然语言处理技术的飞速发展,尤其是大型语言模型(LLM)的应用日益广泛,人们对于如何更高效地与这些模型交互产生了浓厚的兴趣。LangChain是一个旨在简化与语言模型集成的开源框架,它使得开发者能够轻松地构建出强大的应用程序。本文将介绍如何使用LangChain结合MySQL数据......
  • 【读书笔记-《30天自制操作系统》-14】Day15
    本篇内容开始讲解多任务。本篇内容结构很简单,先讲解任务切换的原理,再讲解任务切换的代码实践。但是涉及到的知识不少,理解上也有些难度。1.任务切换与多任务原理1.1多任务与任务切换所谓多任务,指的是操作系统同时运行多个任务。但是这种说法实际上是不准确的。如果只有......
  • 干货含源码!如何用Java后端操作Docker(命令行篇)
    目录干货含源码!如何用Java后端操作Docker(命令行篇)一、为什么要用后端程序操作Docker二、安装Docker1、安装Docker2、启动Docker三、使用Java后端操作docker1、构建docker镜像并生成容器2、执行完毕后删除容器和镜像3、在此基础上开发其他功能四、总结作者:watermel......
  • 基础知识内容
    基础知识预览if语句注意结合and和or句式1ifcon1thenpasselseifcon2thenpasselseifcon3thenpasselsespassendif句式2ifconthenpasselsepassendif句式3+句式4ifcon1thenresult1ifcon1thenresult_Yelse......
  • ‍️ SpringBoot中MongoDB的骚操作用法
    不知道大家在工作项目中有没有使用MongoDB,在哪些场景中使用。MongoDB作为NoSQL数据库,不像SQL数据库那样,可以使用Mybatis框架。如果需要在SpringBoot中使用MongoDB的话,我目前知道有三种方式,第一种是直接使用MongoDB官方的SDK,第二种是使用SpringJpa的方式,第三种是使用MongoTemplate......
  • MATLAB 中的矩阵切片操作
    在MATLAB中,矩阵切片(MatrixSlicing)是一种非常常用的操作,用于从矩阵或数组中提取子集。这种操作非常灵活,可以通过指定行和列的索引来获取子矩阵。矩阵切片在数据处理、算法设计、图像处理等许多领域都非常有用。本文将详细介绍MATLAB中矩阵切片的基本用法和高级技巧。1.基......
  • C++入门基础知识48——【关于C++函数】之Lambda 函数与表达式
    成长路上不孤单......
  • 字典操作示例
    字典用{}标识,它是一个无序的“键(key):值(value)”对集合。在同一个字典中,键必须是唯一的,但值不必唯一,值可以是任何数据类型,但键必须是不可变的,如字符串,数字,元组首先需要先定义一个字典dict1={'Alice':'123','Beth':'456','Cecil':'abc'}输出123print(dict1['Alice'])增......
  • 第一章 Django基础与虚拟环境
    1.Web框架和Django框架1.1网络通信注意:局域网个人一般写程序,想要让别人访问:阿里云、腾讯云。去云平台租服务器(含公网IP)程序放在云服务器让网络中可以互相通信的双发收发数据。服务端【我的电脑】importsocket#1.监听本机的IP和端口sock=socket.socket(socke......
  • Java基础语法之数据类型
    概念位(bit):计算机内部存储的最小单位,11001100是一个八位二进制数字节(byte):计算机中数据处理的基本单位,习惯上用大写B来表示1B(byte,字节)=8bit(位)字符:是指计算机中使用的字母、数字、字和符号1bit表示1位1Byte表示一个字节1B=8b1024B=1KB1024KB=1M1024M=1G......