mysql增删改

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

要对数据表进行增删改查,我们先建立两张测试表:

1. 部门表

CREATE TABLE `tb_dept` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(15) DEFAULT NULL,
  `description` VARCHAR(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

2. 员工表

DROP TABLE IF EXISTS `tb_emp`;
CREATE TABLE `tb_emp` (
  `id` INT(11) PRIMARY KEY AUTO_INCREMENT,
  `name` VARCHAR(8) NOT NULL,	# not null,
  `sex` VARCHAR(2) DEFAULT NULL CHECK(sex='男' OR sex='女'),
  `age` INT(11) DEFAULT NULL CHECK(age>18 AND age<50),
  `address` VARCHAR(200) DEFAULT NULL,
  `email` VARCHAR(100) UNIQUE,
  dept_id INT,
  # 定义外键
  CONSTRAINT FOREIGN KEY tb_emp_fk(dept_id) REFERENCES tb_dept(id)
  
) ENGINE=INNODB DEFAULT CHARSET=utf8;


3.  向插入tb_dept表插入数据

#插入数据必须先插入tb_dept数据,因为tb_emp有外键约束
#INSERT INTO table[(column[,column...])] VALUES(value[,value...])
INSERT INTO tb_dept(NAME,loc,description) VALUES('开发部',"广州","负责Android软件研发");

# 指明的字段和值数量和类型应该相互匹配
#INSERT INTO tb_dept(NAME,loc,description) VALUES('开发部',"广州");   会报错,因为字段数和插入的数据个数不一致
INSERT INTO tb_dept(NAME,loc,description) VALUES('财务部',"广州","负责财务工作");


#一次插入多条记录(mysql特有)
INSERT INTO tb_dept(NAME,loc,description)
VALUES('财务部','广州','负责财务工作'),
('运维部',"广州","负责产品的运维工作"),
('销售部',"广州","负责产品的销售");


在此处,我们有点需要注意,tb_dept的主键为自增长的,数据库每次会为其自动增长1,且,会记住增长至多少,以后即使表中的数据被删除了(个数变小了),但是你再添加数据,id依然会按照原先的最大id在自增1;


# 可以从一张表中插入数据
# 通过这种方式建表,只是复制表结构,不复制约束
DROP TABLE IF EXISTS `tb_dept2`;
CREATE TABLE tb_dept2
SELECT * FROM tb_dept WHERE id=90;  # 故意写了一个不可实现的where语句,才能只赋值表结构,表中无数据


# 从一张表中插入数据(只要插入的类型和select选择的类型一致即可)
INSERT INTO tb_dept2(id,NAME,loc,description)
SELECT id,NAME,loc,description FROM tb_dept;


操作emp表

# 插入数据,要记住email表的唯一性约束,dept_id的外键约束
INSERT INTO tb_emp(NAME,sex,age,address,email,dept_id
VALUES('Lining','男',25,'广州',"lining@163.com",1);

4. 更新表数据


#更新数据
#where的时候,建议使用主键或者是unique,主键最好,因为他本身要与业务无关
UPDATE tb_emp SET age=25 WHERE id=4;

5. 删除表数据

#删除数据
DELETE FROM tb_emp;
DELETE FROM tb_emp WHERE id=4;

6. 截断表 

#截断语句
#truncate 完全清空一个表,包括auto_increment的自动增长
TRUNCATE TABLE tb_dept2;


7. 比较delete、truncate、drop的执行效率

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL 关系型数据库 MySQL
MySQL数据库,从入门到精通:第十一篇——MySQL数据处理之增删改指南
MySQL数据库,从入门到精通:第十一篇——MySQL数据处理之增删改指南
393 0
|
SQL 关系型数据库 MySQL
Mysql PHP 增删改数据记录
Mysql PHP 增删改数据记录
373 0
|
关系型数据库 MySQL 数据处理
实时计算 Flink版产品使用问题之第一次启动全库同步了, 然后增删改的mysql数据没有及时同步,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 关系型数据库 MySQL
mysql数据增删改
mysql数据增删改
|
SQL 关系型数据库 MySQL
mysql 库、表增删改
mysql 库、表增删改
|
SQL 关系型数据库 MySQL
Mysql基础篇(创建、管理、增删改表)-2
Mysql基础篇(创建、管理、增删改表)
170 0
|
存储 SQL 关系型数据库
Mysql基础篇(创建、管理、增删改表)-1
Mysql基础篇(创建、管理、增删改表)
214 0
|
SQL 关系型数据库 MySQL
Mysql数据库 3.SQL语言 DML数据操纵语言 增删改
Mysql数据库 3.SQL语言 DML数据操纵语言 增删改
153 0
|
SQL 关系型数据库 MySQL
Mysql基础篇(创建、管理、增删改表)-2
Mysql基础篇(创建、管理、增删改表)
144 0
|
存储 SQL 关系型数据库
Mysql基础篇(创建、管理、增删改表)-1
Mysql基础篇(创建、管理、增删改表)
136 0

推荐镜像

更多