首页 > 数据库 >初识MySQL · 表的操作

初识MySQL · 表的操作

时间:2024-10-25 18:19:03浏览次数:6  
标签:comment 创建 age MySQL t1 初识 table 操作 我们

前言:

上一篇文章我们介绍了库的操作,而在我们学习MySQL的第一篇文章就提及了,使用MySQL的时候,先是创建数据库,然后是创建表,表和数据库的重要关系其实是对等的,所以相关的操作,对于增删查改也是同理。

删除方面其实对于数据库来说或者是表来说,都是需要非常谨慎的,因为数据库对于开发人员来说是最接近后端部分的数据的,甚至可以说是命脉了。所以本文虽然会介绍表的增删查改,但是还是十分不建议进行删除操作的。

那么进入正文吧!

表的增删查改

创建表的一般格式为:

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


其中最后的character set 字符集这块,存在两种写法,一种是character set=...,另一种就是上文所写的空格。

话不多说,我们首先创建一个数据库:

create database test_mysql;


创建好了之后,我们创建一张表:

create table t1(
 name varchar(20) comment '用户姓名',
 age int comment '用户年龄',
 birthday date comment '生日' ) character set=utf8 engine=MyIsam;

这里我们使用的存储引擎是MyIsam,我们再创建一张表,使用InnoDB这个存储引擎来创建:

create table t2( 
name varchar(20) comment '用户姓名',
age int comment '用户年龄',
birthday date comment '生日') character set=utf8 engine=InnoDB;

此时我们可以show一下我们的表:

show tables;

那么这里我们看不出来太大的差别,我们进入到/var/lib/mysql的目录,我们看看对应文件内容:

其中我们使用MyIsam创建的表,一共有三个文件,其中MyIsam一看就是我们使用MyIsam存储引擎创建的,另外一个t2.ibd一看就是InnoDB创建的了,MyIsam的另外两个文件是什么我们后面再谈。

这是不同存储引擎创建的差别。

表创建好了之后,我们查看表结构看看,一般我们看有哪些表我们可以直接show tables,但是如果我们要看详细信息,就可以使用desc语句:

desc tablename;

我们创建的数据还不多,但是可以简单解释一下,NULL对应的就是该字段是否可以为空,Extra对应的是扩展,Key代表的是索引类型,Default代表的是默认值。

但是这个信息好像并不能满足我们的需求,我们上篇文章创建数据库的时候,使用了语句:

show create database database_name;

那么这里应该同理,我们应该也可以看到表的创建数据:

首先,这里的信息看的太杂乱了,我们可以将;改成\G,格式化一下数据:

show create table t1 \G

此时,我们就能看到许多熟悉的数据了,对comment而言,这个解释字段后面跟的是我们当时给的解释,对于age那些也是当时我们给的,但是有几个点不一样的,我们最开始使用的明明是character set=... engine=MyIsam,怎么到这里有些更改呢?

这是因为我们输入了对应的sql语句之后,mysqld自动识别,然后进行部分修改,所以是mysqld的操作。

表的基本信息我们是已经看完了,那么,我们现在来尝试修改一下表。

其中,修改表可以修改字段大小,字段名字,字段类型等,甚至我们可以删除字段,添加字段等。

所以这里面分为三种类型的修改,add modify drop:

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

首先试试add字段,目前t1的基本信息是:

我们想要在加一个字段,用来表示快递地址,在此之前,我们先在表里面插入一些数据:

使用sql语句:

insert into t1 values (...)
但是这里要注意的是,一般来说values前面是要加(name,age...)等的,如果我们不加,默认的就是全部插入,这是一个小细节。

这是目前的插入数据的情况。

此时,我们新增部分数据: 

alter table t1 add path varchar(20) comment '快递地址' after age;

这里可能看起来指令有点怪,但是我们不妨将这个sql语句逐字翻译一下:

alter table t1,改变表t1,add path varchar(20) ,新增字段类型为varchar(20)的path,comment解释,after age,增加在age的后面。

此时,我们就可以将sql语句翻译为改变表,在age的后面新增字段类型为...的字段。

那么其他的应该是同理的,比如我们现在修改一下name的数据类型为varchar(60),使用的指令自然是modify:

如果modify的时候不带有数据类型,自然就会报错,所以我们应该带上数据类型:

alter table t1 modify name varchar(60);

此时修改成功,我们使用desc查看对应数据:

就是确实修改了。

modify的已经完成了,我们尝试一下删除字段,但是字段删除之后对应的列数据肯定也是没有了:

alter table t1 drop age;

对应的desc肯定也是修改完毕了:

但是还是不要轻易删除字段哦。

对于表的操作还可以进行rename,重命名即:

使用sql语句:

alter table t1 rename to table1;

这里的小细节是,这个to是可以省略的: 

这是修改的表的名字,我们现在尝试修改一下字段:

alter table table1 change name xingming varchar(20);

基本语法就是修改表 改变oldname -> newname ,但是一定是要给数据类型的,不然会报错。

紧接着就是删除表的,那多简单,drop即可,就不演示了。


感谢阅读!               

标签:comment,创建,age,MySQL,t1,初识,table,操作,我们
From: https://blog.csdn.net/2301_79697943/article/details/143165714

相关文章

  • 麒麟操作系统中的系统日志如何帮助你了解电脑运行情况
    ​麒麟操作系统中的系统日志是了解电脑运行状况的关键工具:1.识别并定位系统问题;2.监测系统运行趋势;3.审计系统安全状况;4.优化电脑性能;5.理解应用程序行为。了解日志的基础知识是向高效问题解决迈出的第一步。1.识别并定位系统问题麒麟操作系统的日志记录包含了系统启动、运行......
  • 算法题——执行操作可获得的最大总奖励
    3181.执行操作可获得的最大总奖励题干给你一个整数数组rewardValues,长度为n,代表奖励的值。最初,你的总奖励x为0,所有下标都是未标记的。你可以执行以下操作任意次:从区间[0,n-1]中选择一个未标记的下标i。如果rewardValues[i]大于你当前的总奖励x,则将rewar......
  • 高效实现聚水潭·奇门售后单集成到MySQL的关键技术
    聚水潭·奇门数据集成到MySQL:售后单数据的高效对接方案在企业数据管理中,如何实现不同系统之间的数据无缝对接一直是一个关键问题。本文将分享一个具体的技术案例,即如何通过轻易云数据集成平台,将聚水潭·奇门的售后单数据高效集成到MySQL数据库中,形成BI狄菲俪诗-售后表。本次集......
  • 高效集成:聚水潭采购入库数据导入MySQL案例
    聚水潭数据集成到MySQL的技术案例分享在企业数据管理中,如何高效、准确地将业务系统的数据集成到分析平台是一个关键问题。本篇文章将聚焦于一个具体的系统对接集成案例:将聚水潭的采购入库单数据集成到MySQL数据库中,以便在BI勤威平台上进行进一步的数据分析和处理。案例背景本......
  • actix_web操作redis
    tomlactix-web="4"redis={version="0.21.4",features=["r2d2"]}r2d2="0.8.9"r2d2_redis="0.14.0"uuid={version="0.8",features=["v4"]}with_r2d2.rsuseredis::Comm......
  • 关系型数据库(1)----MySQL(初阶)
    目录1.mysql2.mysqld3.mysql架构1.连接层2.核心服务层3.存储引擎层4.数据存储层4.SQL分类5.MySQL操作库6.MySQL数据类型1.数值类型2.日期和时间类型3.字符串类型4.空间类型5.JSON数据类型7.MySQL表的约束1.主键约束(PRIMARYKEY)2.非空约束(NOTNULL)3.......
  • 66openpyxl的遍历读写操作(常用于数据批量读出来和写进去)
     importopenpyxlfromopenpyxlimportWorkbook#常用于数据批量读出来和写进去#往表格写入操作defcreate_wb():#创建一个新的工作簿wb=Workbook()#选择默认的工作表ws=wb.active#假设这是你要写入的数据,4行4列data=[......
  • mysql之 关联表(left join | right join | inner join | union)
    一.首先给出两张表user表:用户基本信息表score表:分数表(学生在哪一天,哪一科目,所考分数)二.分别解释leftjoin,rightjoin,innerjoin,union1.leftjoin 原理userleftjoinscore=以user表为准,去查询所有user表成员的分数select*fromuserleftjoinscoreonuser.......
  • Linux系统rpm安装MySQL详细操作步骤
    安装方式介绍在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:安装方式特点二进制发布包安装软件已经针对具体平台编译打包发布,只要解压,修改配置即可rpm安装软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装(不能自行解决库依赖问题)yum安装一种在线......
  • MySql5.7及以上 ORDER BY 报错问题
    一、问题本人使用的MySql版本是8.0的当MySql5.7及以上的版本执行带有ORDERBY的SQL语句时可能会报错。例如,执行以下mysql语句:SELECTid,user_id,titleFROMm_articleWHEREuser_id>=100ANDuser_id<=200GROUPBYuser_id;SQL报错信息如下:1055-Expression#1o......