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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14小时前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用合集之2.2.1版本同步mysql数据写入doris2.0 ,同步完了之后增量的数据延迟能达到20分钟甚至一直不写入如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
11 1
|
19小时前
|
关系型数据库 MySQL Java
实时计算 Flink版产品使用合集之mysql通过flink cdc同步数据,有没有办法所有表共用一个dump线程
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
7 0
|
19小时前
|
关系型数据库 MySQL Java
实时计算 Flink版产品使用合集之如果MySQL的binlog保存时间只有三天,那么三天之前的数据是不是会通过Doris的外表手动插入
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
11 0
|
1天前
|
SQL 关系型数据库 MySQL
MYSQL根据查询结果删除sql 去除重复id 新增对比前一条与后一条数据 去重3种方法​ 窗口函数
MYSQL根据查询结果删除sql 去除重复id 新增对比前一条与后一条数据 去重3种方法​ 窗口函数
|
1天前
|
存储 关系型数据库 MySQL
|
2天前
|
SQL 关系型数据库 MySQL
Mysql忘记密码操作
Mysql忘记密码操作
18 1
|
2天前
|
前端开发 关系型数据库 MySQL
SpringBoot-----从前端更新数据到MySql数据库
SpringBoot-----从前端更新数据到MySql数据库
9 1
|
2天前
|
easyexcel Java 关系型数据库
厉害了!12秒将百万数据通过EasyExcel导入MySQL数据库中
厉害了!12秒将百万数据通过EasyExcel导入MySQL数据库中
9 1
|
2天前
|
前端开发 easyexcel 关系型数据库
EasyExcel处理Mysql百万数据的导入导出案例,秒级效率,拿来即用!
EasyExcel处理Mysql百万数据的导入导出案例,秒级效率,拿来即用!
12 1
|
2天前
|
关系型数据库 MySQL 分布式数据库
如何将数据从MySQL迁移到PolarDB?
【5月更文挑战第13天】如何将数据从MySQL迁移到PolarDB?
18 0

推荐镜像

更多