MySQL表的操作『增删改查』

这篇具有很好参考价值的文章主要介绍了MySQL表的操作『增删改查』。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✨个人主页: 北 海
🎉所属专栏: MySQL 学习
🎃操作环境: CentOS 7.6 阿里云远程服务器
🎁软件版本: MySQL 5.7.44

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库



1.创建表

首先创建一个 数据库 testForTable

mysql> create database if not exists testForTable;

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

当前创建的 数据库 testForTable 字符集和校验集分别为 utf8utf8_general_ci,这是由配置文件中的默认编码集决定的

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

接下来创建一张表,具体语法为

CREATE TABLE [if not exists] tablename
(
	field1 datatype,
	field2 datatype,
	field3 datatype
) [character set 字符集] [collate 校验规则] [engine 存储引擎];

其中 字符集、校验规则、存储引擎 可以不用指定,默认使用当前数据库的默认属性

创建一张 person 表,包含 姓名、性别、年龄 三个字段

注意:创建表之前需要先使用数据库

mysql> create table if not exists person 
(
	name varchar(16) comment '姓名',
	sex char(2) comment '性别,只能为男/女',
	age int unsigned comment '年龄,不能为负数'
);

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

这样就得到了一张 person 表,当前表的字符集为 utf8,校验集为 utf8_general_ci,存储引擎为 InnoDB,这些都是数据库的 默认属性,只要我们在创建表时不指定属性,表就会继承数据库的默认属性

通过 InnoDB 引擎创建的表会生成 两个文件

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

注意:

  1. comment '内容' 表示注释,通常用来注明该字段的含义及用途
  2. MySQL 中定义无符号类型的数据,需要把 unsigned 放在类型之后修饰

1.1.创建时指定属性

除了使用数据库的 默认属性,还可以在创建时指定属性,比如再创建一张 goods 表,表示商品信息,包含字段有 商品名、价格、数量、厂商,并且在创建表时,指定字符集为 gbk,校验集为 gdk_chinese_ci,存储引用选择 MyISAM

mysql> create table if not exists goods
(
	name varchar(32) comment '商品名称',
	price double(10, 2) unsigned comment '商品价格,最多支持小数点前 5 位数,小数点后 2 位数',
	num int unsigned comment '商品数量',
	factory varchar(64) comment '厂商名称'
) character set 'gbk' collate 'gbk_chinese_ci' engine 'MyISAM';

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

通过 MyISAM 引擎创建的表会生成 三个文件

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库


2.查看表

身处某个数据库中,可以通过 show tables 查看当前数据库中有哪些表

mysql> show tables;

当前数据库中就只有之前创建的两张表

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

2.1.查看表结构

知道有哪些表后,还需要进一步了解表的 结构 信息,比如有哪些字段,才能知道如何使用这张表,查看表的详细信息语法为

DESC tablename

分别查看刚才创建的两张表的 结构 信息

mysql> desc person;

mysql> desc goods;

可以看到查询结果为一张行列构建的表,第一行表示各种属性信息,属性支持修改

  • Field 表示 列名
  • Type 表示 类型
  • Null 表示 是否可为空
  • Key 表示 是否存在 主键/外键/唯一键 约束
  • Default 表示 是否有默认值
  • Extra 表示 额外信息

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

2.2.查看建表信息

如果想查看关于表更详细的信息,可以通过指令查看建表时的语句内容,语法为

SHOW CREATE TABLE tablename

SHOW CREATE TABLE tablename \G

加了 \G 之后表示格式化输出内容,便于查看,通过指令回顾刚才创建的 两张 表的语句内容

mysql> show create table person\G

mysql> show create table goods\G

其实之前使用 desc 指令查询到的结果,就是从这里截取的,更详细的信息包括:列的注释、字符集、存储引擎,这也证明了当我们不指定这些属性时,自动使用数据库的默认属性

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

MySQL 会记录下用户的所有操作痕迹,这也是备份后,恢复数据库的关键,把所有指令再执行一遍,就能得到一模一样的数据库了


3.修改表

3.1.修改列属性

首先是新增字段,语法为

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);

column 表示 列名datatype 表示 类型[DEFAULT expr] 表示该列的各种 属性,比如约束、默认值、是否为空等,支持同时新增多个字段

person 表新增 出生日期、爱好 两个字段

注意:如果新增多个字段时,需要使用 ( ) 将新增的一批字段括起来

mysql> alter table person add (birthday date comment '生日', hobby varchar(32) comment '爱好');

新增的字段默认是紧跟最后一个字段的

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

如果想新增至指定字段之后,可以在语句后面加上 after column,比如在 性别 sex 之后新增一个 籍贯 字段

注意:只支持新增单个字段时,指定位置,也就是说 ( )after column 是冲突的,不能同时使用

mysql> alter table person add hometown varchar(16) comment '籍贯' after sex;

hometown 字段被成功新增到了 sex 字段之后

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库


除了可以新增字段,还可以修改字段,语法为

ALTER TABLE tablename MODIFY column datatype [DEFAULT expr], [MODIFY ...];

注意:

  1. 需要确保修改的字段存在,并且要保证修改后的字段类型与表中已经存在的数据类型相匹配
  2. 修改多个字段时,可以叠加多条 MODIFY column datatype [DEFAULT expr] 语句,通过 , 分隔
  3. 修改字段后,原字段的所有信息都会被覆盖,包括注释

修改 name 的类型为 varchar(32),修改 age 的类型为 int,因为此时是空表,所以可以随便修改

mysql> alter table person modify name varchar(32), modify age int;

可以看到,之前的注释没了,并且字段的类型也修改了

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库


最后就是删除字段,语法为

ALTER TABLE tablename DROP (column), [DROP ...];

注意:删除字段时,同样需要确保字段存在,字段被删除后,表中对应的数据也会被删除

先随便新增几个无用字段,再删除

mysql> alter table person add (a int, b int, c double);

mysql> alter table person drop a, drop b, drop c;

刚刚新增的无用字段立马就被删除了

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

MySQL 中,删除 一直都是一个 高危 操作,毕竟数据丢了不容易找回,比如这里的删除字段,如果表中有数据,那么表中数据关于该字段的信息会被全部删除,所以删除字段要 慎用

3.2.修改列名

列名是支持修改的,语法为

ALTER TABLE tablename CHANGE oldcolumn newcolumn datatype [DEFAULT expr];

注意:修改需要确保字段存在,修改后,上层应用会受影响

比如把 goods 表中的 num 改为 nums

mysql> alter table goods change num nums int unsigned;

可以看到修改之后,注释也没了,这个操作也要 慎用,因为上层查询时,可能会查询失败,需要上层配合更新信息

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库

3.3.修改表名

表名支持修改,语法为

ALTER TABLE oldname RENAME [TO] newname;

其中 TO 可以省略,修改成功后,Linux 中对应的文件名也会被修改

注意:如同修改字段名一样,修改表名也是一个危险操作,同样会影响上层使用

修改 person 表名为 students

mysql> alter table person rename to students; 

可以看到,表对应的文件名,也被修改了

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库
MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库


4.删除表

删除表的语法为

DROP TABLE tablename;

注意:删除表很危险,删除之后,表中所有的数据就都没了,不要轻易删除!

删除 goods

mysql> drop table goods;

当然,删除成功后,Linux 中对应的文件也被删除了

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库
MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库


写在最后:「修改字段、删除字段、修改字段名、修改表名、删除表」这些都是敏感操作,会对数据库中的数据造成影响,如果是新建的数据库,可以随便操作,但如果是运行了一段时间的数据库,在进行这些操作前,最好先备份数据库,万一发生错误,还有后悔的余地

MySQL表的操作『增删改查』,MySQL 学习,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-760352.html

到了这里,关于MySQL表的操作『增删改查』的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除

         CURD是一个数据库技术中的缩写词,它代表Create(创建),Retrieve(读取),Update(更新),Delete(删除)操作。 这四个基本操作是数据库管理的基础,用于处理数据的基本原子操作。      在MySQL中,Create操作是十分重要的,它帮助用于创建数据库对象,如数据

    2024年03月18日
    浏览(62)
  • Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

    数据库操作 MySQL数据库+pymysql Django开发操作数据库更简单,内部提供了ORM框架。 安装第三方模块 ORM可以做的事: 1、创建、修改、删除数据库中的表(不用写SQL语句)。【无法创建数据库】 2、操作表中的数据(不用写SQL语句)。 1、自己创建数据库 1)启动MySQL服务 2)自带

    2024年02月14日
    浏览(59)
  • node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

    大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:node koa 数据库:mysql koa是一个现代的Node.js框架,可以用来构建Web应用程序。 Vue.js 是一款用于构建用户界面的开源JavaScript框架。Vue.js 3 是 Vu

    2024年02月20日
    浏览(38)
  • MySQL数据库 - 表的操作

    目录 一、创建表 二、创建表案例 1、显示当前使用的数据库名 2、创建表  2.1 MyISAM存储引擎表 2.2 InnoDB存储引擎表 三、查看表结构  四、修改表 1、新增列   2、修改列类型 3、修改列名 4、修改表名  5、删除列   五、删除表 表的操作至少会涉及如下两类SQL语句: • DDL(

    2024年02月13日
    浏览(38)
  • MySQL数据库和表的操作

    存储数据用文件就可以了,为什么还要弄个数据库? 文件保存数据有以下几个缺点:          1、文件的安全性问题 2、文件不利于数据查询和管理 3、文件不利于存储海量数据 4、文件在程序中控制不方便 数据库存储介质: 磁盘 内存 为了解决上述问题,专家们设计出更加利

    2024年02月09日
    浏览(60)
  • 【MySQL】数据库和表的操作

    语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] 说明: 大写的表示,mysql 不区分大小写,所以也可以用小写 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 假设现在我们现在需要创建一个名为 d1 的数

    2024年02月04日
    浏览(52)
  • MySQL 数据库表的基本操作

    在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。 通常在创建表时,应该使用语句USE 数据库名,指定在哪个

    2024年02月12日
    浏览(78)
  • Python FastAPI 框架 操作Mysql数据库 增删改查

    2 比 1 更容易理解,可以先看2(单文件级别) FastAPI 可以使用任何您想要的关系型数据库。 在这里,让我们看一个使用着SQLAlchemy的示例。 您可以很容易地将SQLAlchemy支持任何数据库,像: PostgreSQL MySQL SQLite Oracle Microsoft SQL Server,等等其它数据库 在此示例中,我们将使用SQL

    2024年01月16日
    浏览(38)
  • MySQL数据库关于表的一系列操作

    varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100) char 定长字符串(最长255位),存储空间是固定的,例如:char(10) int 整数型(最长11位) long 长整型 float 单精度 double 双精度 date 短日期,只包括年月日 datetime 长日期,包括年月日时分

    2024年02月15日
    浏览(41)
  • MySQL数据库和表的基本操作

    MySQL是一个客户端服务器结构的程序 主动发送数据的这一方,客户端(client) 被动接受数据的这一方,服务器(server) 客户端给服务器发送的数据叫做: 请求(request) 服务器给客户端发送的数据叫做: 响应(response) 客户端和服务器之间是通过网络进行通信的 服务器是存储数据的主体

    2024年01月19日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包