mysql表操作

news2025/1/11 20:53:58

请添加图片描述

文章目录

  • mysql 操作表
      • 创建表
      • 创建表实例
      • 查看表结构
      • 修改表结构
      • 删除表结构
      • 删除表结构

mysql 操作表

mysql表操作至少有以下俩种:

  • DDL【data definition language】 数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter

  • DML【data manipulation language】 数据操纵语言,用来对数据进行操作代表指令: insert,delete,update

而下面主要介绍的是对表本身结构进行操作即DDL; DDL和DML的关系就好像我们只有将水杯做好了,才能装喝-- 可能不太形象

创建表

语法

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

说明:

  • [] 代表可选项

  • fifield 表示列名

  • datatype 表示列的类型

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

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

  • engine 存储引擎

    show engine ; #可查看当前数据库支持的存储引擎
    

注: 如果创建数据库时也没有指定对应的校验规则和字符集,那么创建表结构时,字符集是utf8 , 教验规则是 utf8_general_ci ,默认的存储引擎是InnoDB


创建表实例

sql语句

create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM; # 注:当前搜索引擎使用的是MyISAM

运行结果如下:

而我们曾经说过在数据中创建表实际上就是在该数据库目录下创建文件 ;所以我们可以切换到我们数据库test2目录下查看一下

说明:

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

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

    • users.frm:表结构
    • users.MYD:表数据
    • users.MYI:表索引
  • 而当我们表存储引擎使用的是InnoDB时,在数据库中会有俩个不同文件,分别是:

    • users.frm: 表结构
    • users.ibd : 表索引,表数据

查看表结构

desc 表名; 

例子:


修改表结构

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

sql语句:

ALTER TABLE table_name ADD 新增字段名 新增列的属性;

ALTER TABLE table_name MODIFY 列名 修改后的列属性;

ALTER TABLE table_name DROP 列名;

ALTER TABLE table_name RENAME [TO] 新表名;

ALTER TABLE table_name CHANGE 列名 新列名 新列属性;

注:sql语句一般不区分大小写

为了演示方便:我们先向users表中插入俩条数据

insert into users values(1,'张三','bbbb','1982-01-04'),(2,'李四','c','1984-01-04');

使用select * from 表名,可以查看表数据

  1. 添加列

比如我们现在要在表中添加一个新的字段 ,保存对应的家庭地址在哪

 alter table users add address varchar(100) comment '地址' ;

我们可以发现:新建立的列属性默认是空的,而且我们发现新建立的列是默认添加到表的最后一列的;

实际上,我们可以添加上 after 某个列名 ,就可以将新创建的列添加到某个列名后;而如果想将新增列设置到第一列 ,可以在sql语句添加 not null first;

结果如下:

:从中我们也可以看出mysql中;NULL 实际上和“’空字符串并不等价;mysql中的NULL,代表什么都没有;所以mysql中,NULL 和 0 和”‘ 是不等价的,但是后俩者是等价的;

  1. 修改列字段

例如:我们现在要将name字段长度改为66;

alter table users modify name varchar(66);

如下:

我们可以发现,修改列字段并没有改变数据

  1. 删除列字段

我们在前面添加了test字段,现在我们将其删除掉

alter table users drop test;

如下:

我们发现,删除列是直接将整个列都删除了,如果列中有对应的数据的话;所以我们对于删除列操作应该慎重选择

  1. 修改表名

例:我们现在要将users表的名字改成workers;

 alter table users rename to workers;

如下:

  1. 重新设置某个列字段

例如我们要将地址栏改为电话号码;

 alter table employee change address phonenum varchar(60);

注: 该修改和前面的修改某个列字段是不一样的,当前sql语句是直接将某个列字段替换成其他列字段,而前面是在原来字段上修改;

举个例子:

前面的修改列字段就好像同一个人换了不一样的衣服,而当前sql语句是直接将人换掉了

删除表结构

drop table 表名;

演示:

删除掉上面演示的表

举个例子:

前面的修改列字段就好像同一个人换了不一样的衣服,而当前sql语句是直接将人换掉了

[外链图片转存中…(img-oWjiHwSS-1684858276438)]

删除表结构

drop table 表名;

演示:

删除掉上面演示的表

[外链图片转存中…(img-xVkoRVzB-1684858276439)]

注: mysql中的删除操作都需要慎重选择

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023 conda 安装、配置环境变量、换源

0.先卸载干净再安装 1.下载安装包 这个就不要用镜像下载,官网很快的 Free Download | Anacondahttps://www.anaconda.com/download 2.安装软件 首先 NEXT,接着 I Agree 来到这个页面 选择下面的All Users,再接着往下 选择安装路径 建议…

chatgpt赋能Python-python_print快捷键

Python print快捷键——简化开发效率 作为Python开发者,我们经常需要使用print语句来调试代码。然而,在大型项目中,如果频繁使用print并手动打印变量名称和内容,会浪费大量时间,影响开发效率。此时,使用Py…

Charging management IC---IP5356

0 Preface/foreword 1 规格 2 特性 2.1 电池电压分辨率 内部采用14-bit ADC,最大能识别电压为4.4V,所以分辨率为:4.4/2^14 0.26855 mv 2.2 充电电流 VIN/VBUS充电电流大小,分辨率为:0.671387mA 2.3 放电电流 2.3.1 IOUT1 2.3…

操作系统第三章——内存管理(上)

空有凌云千般志,负了红颜负流年 文章目录 3.1.1 内存的基础知识知识总览什么是内存?有何作用?几种常用的数量单位指令的工作原理绝对装入可重定位装入(静态重定位)动态重定位从写程序到程序运行链接的三种方式知识回顾…

Qt·事件处理机制

思维导读 一、事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。 常见的QT事件类型如下: 键盘事件: 按键按下和松开 鼠标事件: 鼠标移动,鼠标按键的按下和松开 拖放事件: 用鼠…

GPC_UICC Configuration

GPC_UICC Configuration_v2.0.pdf 1 简介 本文档规定了在 ETSI 规范 TS 102 221 [TS 102 221]、TS 102 223 [TS 102 223] 中指定的 UICC 平台上实施 GlobalPlatform 规范的配置要求, TS 102 225 [TS 102 225] 和 TS 102 226 [TS 102 226]。 GlobalPlatform Common …

RK3399平台开发系列讲解(网络篇)DNS协议

🚀返回专栏总目录 文章目录 一、DNS 服务器二、DNS 解析流程三、负载均衡沉淀、分享、成长,让自己和他人都能有所收获!😄 📢DNS 是网络世界的地址簿,可以通过域名查地址,因为域名服务器是按照树状结构组织的,因而域名查找是使用递归的方法,并通过缓存的方式增强性能…

chatgpt赋能Python-python_numpy三角函数

介绍 Python是一种流行的编程语言,可以用于数据科学、机器学习和计算机视觉等领域。其中,numpy是Python中最流行的数值计算库,其主要特点之一是支持各种数学函数。在本文中,我们将关注numpy中的三角函数。 三角函数是数学中的一…

王道操作系统学习 P7-P14

目录 操作系统引导 虚拟机 进程的概念、组成、特征 进程的状态与转换 进程控制 操作系统引导 其实整个的引导过程就是, 从特定主存地址开始,取指令,执行ROM中的引导程序, 将磁盘的主引导记录读入内存,执行磁盘引导…

chatgpt赋能Python-python_penup

Python PenUp: 专业针对绘图需求而设计的Python包 在近几年Python语言的流行性大增,不仅吸引了许多新手开发者,也吸引了许多有经验的工程师,特别是针对绘图领域。Python PenUp 是一个专业针对绘图需求而设计的Python包,可以让工程…

【利用AI让知识体系化】深入浅出Puppeteer

文章目录 1. Puppeteer简介1.1 什么是Puppeteer1.2 它能做什么Puppeteer能够完成以下一些主要的操作:1.3 为什么要使用Puppeteer 2. 安装和配置Puppeteer2.1 安装Puppeteer2.2 配置Puppeteer2.3 第一个Puppeteer程序 3. Puppeteer的基础功能3.1 打开和关闭浏览器3.2…

chatgpt赋能Python-python_pd合并

Python数据分析:探秘pd合并 在Python数据分析的过程中,经常需要对多个数据表进行合并操作以便进行有意义的分析。在Python中,使用pandas库中的merge()函数或者concat()函数可以很容易地完成数据合并。 merge()函数 merge()函数是pandas库中…

shell 脚本命令

文章目录 一.sort命令实验 二.uniq命令命令演示 三.tr命令命令演示 四.cut命令命令演示 五.split命令六.paste命令实验演示 七.eval命令 一.sort命令 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序比较原则是从首字符向后,依次按ASCII码…

chatgpt赋能Python-python_nonetype

Python Nonetype:什么是Nonetype以及如何处理? 在Python编程中,你可能会遇到NoneType,也就是None类型。如果你不知道NoneType是什么,它可以导致代码中的错误。 什么是NoneType? NoneType表示空值或者没有…

【数据结构】二叉树顺序结构、链式结构的实现、遍历二叉树(前序 中序 后序 层序)

文章目录 1.二叉树结构实现1.1顺序结构的实现1.2链式结构的实现 2.堆的概念和介绍3.二叉树的遍历3.1前序遍历3.2中序遍历3.3后序遍历3.4层序遍历 1.二叉树结构实现 1.1顺序结构的实现 在之前的文章中,我们对二叉树有了一定的了解,这里我们会对二叉树再进…

el-table实现可拖拽移动列和动态排序字段

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 🍟欢迎来到前端初见的博文,本文主要讲解在工作中以一个案例el-table实现可拖拽移动列和动态排序字段🍟 👨‍🔧 个人主页 : 前端初见 &…

chatgpt赋能Python-python_nanmean

Python的nanmean函数:用于计算数组的平均值 Python引入的nanmean函数是一种快速而有效的计算数组平均值的方法。与其他Python中的平均值函数不同,nanmean函数可以处理NaN值,即缺失值。在数据科学和统计学中,处理缺失值是一个常见…

chatgpt赋能Python-python_nontype

介绍Python中的NoneType: 完整的解释和实例 在Python编程中,有一个特殊的数据类型叫做"NoneType",它通常被简称为"None"。这个数据类型被用于表示没有值或空值(null)。在本文中,我们将探索NoneTy…

Spring(五大类注解,对象的三种注入方式及其优缺点)

目录 1.存储 Bean 对象 1.1前置工作:配置扫描路径 1.2添加注解存储 Bean 对象 1.2.1 Controller [控制器存储] 1.2.2 Service(服务存储) 1.2.3 Repository(仓库存储) 1.2.4 Component(组件存储) 1.…