热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL基础(五)MySQL对数据的基本操作

INSERT语句INSERT语句可以向数据表写入记录,可以是一条记录,也可以是多条记录。写入多条:INSERT语句案例向技术部添加一

INSERT语句

INSERT语句可以向数据表写入记录,可以是一条记录,也可以是多条记录。
在这里插入图片描述
写入多条:
在这里插入图片描述


INSERT语句案例

向技术部添加一条员工记录

INSERT INTO t_emp
(empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES(8001, "刘娜", "SALESMAN", 8000, "1988-12-20", 2000, NULL,
(SELECT deptno FROM t_dept WHERE dname= "技术部"));

INSERT语句方言

MySQL的INSERT语句还有一种方言语法:
在这里插入图片描述


IGNORE关键字

IGNORE关键字会让INSERT只插入数据库不存在的记录。
在这里插入图片描述


UPDATE语句

UPDATE语句用于修改表的记录
在这里插入图片描述


UPDATE语句的表连接

因为相关子查询效率非常低,所以我们可以利用表连接的方式来改造UPDATE语句。
在这里插入图片描述
UPDATE语句的表连接可以演变成下面的样子。
在这里插入图片描述
表连接的UPDATE语句可以修改多张表的记录。
UPDATE语句的表连接既可以是内连接,又可以是外连接
在这里插入图片描述


UPDATE语句案例

把每个员工的编号和上司的编号+1,用ORDER BY子句完成

UPDATE t_emp empno=empno+1, mgr=mgr+1
ORDER BY empno DESC;

把月收入前三名的员工底薪减100元,用LIMIT子句完成

UPDATE t_emp SET sal=sal-100
ORDER BY sal+IFNULL(comm, 0) DESC
LMIT 3;

把ALLEN调往RESEARCH部门,职务调整为ANALYST

UPDATE t_emp e JOIN t_dept d
SET e.deptno = d.deptno, e.job = "ANALYST"
WHERE e.ename="ALLEN" AND d.dname="RESEARCH"

把底薪低于公司平均底薪的员工,底薪增加150元

UPDATE t_emp e JOIN
(SELECT AVG(sal) AS avg FROM t_emp) t
ON e.sal<t.avg
SET e.sal&#61;e.sal&#43;150;

把没有部门的员工&#xff0c;或者SALES部门低于2000元底薪的员工&#xff0c;都调往20部门

UPDATE t_emp e LEFT JOIN t_dept d ON e.deptno&#61;d.deptno
SET e.deptno&#61;20
WHERE e.deptno IS NULL OR (d.dname&#61;"SALES" AND e.sal<2000);

DELETE语句

DELETE语句用于删除记录&#xff0c;语法如下&#xff1a;
在这里插入图片描述


DELETE语句的表连接

因为相关子查询效率非常低&#xff0c;所以我们可以利用表连接的方式来改造DELETE语句。
在这里插入图片描述
DELETE语句的表连接既可以是内连接&#xff0c;又可以是外连接
在这里插入图片描述


快速删除数据表全部记录

DELETE语句是在事务机制下删除记录&#xff0c;删除记录之前&#xff0c;先把将要删除的记录保存在日志文件里&#xff0c;然后再删除记录。
TRUNCATE语句在事物机制之外删除记录&#xff0c;速度远超过DELETE语句
在这里插入图片描述


DELETE语句案例

删除20部门中工资最高的员工记录

DELETE FROM t_emp
WHERE deptno&#61; 20
ORDER BY sal&#43;IFNULL(comm, 0) DESC
LIMIT 1;

删除SALES部门和该部门的全部员工记录

DELETE e, d
FROM t_emp e JOIN t_dept d ON e.deptno&#61;d.deptno
WHERE d.dname&#61;"SALES";

删除每个低于部门平均底薪的员工记录

DELETE e
FROM t_emp e JOIN
(SELECT deptno, AVG(sal) AS sal FROM t_emp GROUP BY deptno) t
ON e.deptno&#61;t.deptno AND e.sal<t.sal;

删除员工KING和他的直接下属的员工记录&#xff0c;用表连接实现

DELETE e
FROM t_emp e JOIN
(SELECT empno FROM t_emp WHERE ename&#61;"KING") t
ON e.mgr&#61;t.deptno OR e.empno&#61;t.empno;

删除SALES部门的员工&#xff0c;以及没有部门的员工

DELETE e
FROM t_emp e LEFT JOIN t_dept d ON e.deptno&#61;d.deptno
WHERE d.dname&#61; "SALES" OR e.deptno IS NULL;

推荐阅读
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • MySQL外键1对多问题的解决方法及实例
    本文介绍了解决MySQL外键1对多问题的方法,通过准备数据、创建表和设置外键关联等步骤,实现了用户分组和插入数据的功能。详细介绍了数据准备的过程和外键关联的设置,以及插入数据的示例。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
author-avatar
aska
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有