mysql删除数据,更新数据,以及表的相关操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: mysql删除数据,更新数据,以及表的相关操作

更新和删除数据

更新数据

使用UPDATE语句可进行更新数据。

不要忽略WHERE子句,在update时一定要注意细心,不然就更新表中的全部行了。

update三要素:

  1. 要更新的表
  2. 列名和他们的新值
  3. 确定要更新行的过滤条件
UPDATE customers
SET cust_email = 'dianxin@.com'
WHERE cust_id = 10005

更新多个列(逗号隔开,最后一列之后不用逗号)

UPDATE customers
SET cust_email = 'dianxin@.com' ,
    cust_name  = 'dainxin'
WHERE cust_id = 10005

删除数据

使用delete语句删除数据

不要忽略WHERE子句,在delete时一定要注意细心,不然就删除表中的全部行了。

DELETE FROM customers
WHERE cust_id = 10006;

mysql是没有撤销按钮的,所以我们要非常小心update和delete操作。

CREATE TABLE customers
(
cust_id int NOT NULL AUTO_INCREMENT,
cust_name char(50) NOT NULL ,
cust_address char(50) NULL ,
cust_city char(50) NULL ,
cust_state char(5) NULL ,
cust_zip char(10) NULL ,
cust_country char(50) NULL ,
cust_contact char(50) NULL ,
cust_email char(255) NULL ,
PRIMARY KEY (cust_id)
) ENGINE=InnoDB;

创建和操作表

创建表

我们使用CREATE TABLE语句

CREATE TABLE customers
(
  cust_id      int       NOT NULL AUTO_INCREMENT,
  cust_name    char(50)  NOT NULL ,
  cust_address char(50)  NULL ,
  cust_city    char(50)  NULL ,
  cust_state   char(5)   NULL ,
  cust_zip     char(10)  NULL ,
  cust_country char(50)  NULL ,
  cust_contact char(50)  NULL ,
  cust_email   char(255) NULL ,
  PRIMARY KEY (cust_id)
) ENGINE=InnoDB;

使用null值

上面的null就是值允许空,NOT null就是不允许空值。

:dagger:''这样两个单引号,之间没有字符的叫空串,这在NOT null下也是允许的。空串不是null。

主键再介绍

主键值必须唯一,如果主键使用单个列,则他的值必须唯一。如果使用多个列,则这些列的组合必须唯一。

如果创建多个列组成的主键,就是这样写

CREATE TABLE orderitems
(
  order_num  int          NOT NULL ,
  order_item int          NOT NULL ,
  prod_id    char(10)     NOT NULL ,
  quantity   int          NOT NULL ,
  item_price decimal(8,2) NOT NULL ,
  PRIMARY KEY (order_num, order_item)
) ENGINE=InnoDB;

使用 AUTO_INCREMENT

cust_id      int       NOT NULL AUTO_INCREMENT

AUTO_INCREMENT告诉mysql,本列每当增加一行时自动增量。每次执行一个INSERT操作时,mysql自动对该列增量,给该列赋予下一个可用的值。这样每个行都会分配一个cust_id ,从而可以用作主键值。

:dark_sunglasses:每个表只允许一个AUTO_INCREMENT列。而且它必须被索引。(如:通过使他成为主键)

SELECT last_insert_id()

此语句返回最后一个AUTO_INCREMENT值,然后可以去利用它。

指定默认值

CREATE TABLE orderitems
(
  order_num  int          NOT NULL ,
  order_item int          NOT NULL ,
  prod_id    char(10)     NOT NULL ,
  quantity   int          NOT NULL   DEFAULT 1,
  item_price decimal(8,2) NOT NULL ,
  PRIMARY KEY (order_num, order_item)
) ENGINE=InnoDB;

DEFAULT关键字指定默认值。

:radio:MySQL与大多数DBMS不同,不允许使用函数作为默认值。

引擎类型

你可能注意到了创建表的最后一个语句,ENGINE=InnoDB。

mysql默认引擎 mysql-5.1版本之前默认引擎是MyISAM,之后是innoDB

InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索

MEMORY在功能上等同于MyISAM。但由于数据存储在内存中,速度很快

MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。

在一个数据库实例里,不同的表是可以使用不同的引擎。

:ice_cream:混用引擎还有一个大问题,那就是外键不能跨引擎。换句话说就是,使用一个引擎的表不能引用具有使用不同引擎的表的外键。

更新表

使用ALTER TABLE语句。

ALTER TABLE vendors
ADD vend_phone CHAR(20);

ALTER TABLE 一种常用的用途是定义外键。

ALTER TABLE 从表 
ADD [CONSTRAINT] [外键约束名称] 
FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名);

删除表

使用DROP TABLE语句

DROP TABLE customers2

重命名表

RENAME TABLE 语句可以重命名一个表

RENAME TABLE  customers2 TO customers;

重命名多个表:

RENAME TABLE  customers2 TO customers,
            customers3 TO customers5,
            customers4 TO customers6;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
43 1
|
1月前
|
SQL 监控 关系型数据库
MySQL怎么全局把一张表的数据回滚
MySQL怎么全局把一张表的数据回滚
122 2
|
25天前
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
142 0
|
1月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
46 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
1月前
|
关系型数据库 MySQL 数据库
mysql 里创建表并插入数据
【10月更文挑战第5天】
117 1
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
48 3
|
7天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
113 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
7天前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
39 14
|
10天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
39 9
|
21天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。