MySQL DML语句整理汇总

DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最频繁的操作。

1.插入(insert)

格式1.

INSERT INTO emp(ename,hiredate,sal,deptno) VALUES('zzx1','2000-01-01','2000',1);

格式2.

INSERT INTO emp VALUES('lisa','2003-02-01','3000',2);

不用指定字段名称,但是value值需与表字段严格对应.

格式3.

INSERT INTO emp(ename,sal) VALUES('dony',1000);

对于含可空字段、非空但是含有默认值的字段、自增字段,可以不用在INSERT后的字段列表里面出现,VALUES后面只写对应字段名称的VALUE:

格式4

在MySQL中,INSERT语句还可以一次性插入多条记录:

INSERT INTO tablename(field1,field2,......fieldn)
VALUES
(record1_value1,record1_value2,......record1_valuen),
(record2_value1,record2_value2,......record2_valuen),
......
(recordn_value1,recordn_value2,......recordn_valuen);

2.更新(update)

格式1

UPDATE emp SET sal=4000 WHERE ename='lisa';

格式2

UPDATE t1,t2,...tn SET
t1.field1=expr1,
t2.field2=expr2,
...
tn.fieldn=exprn [WHERE CONDITION];

同时更新多个表中的数据

3.删除(delete)

格式1

DELETE FROM tablename [WHERE CONDITION];

格式2

DELETE t1,t2,...tn FROM t1,t2,...tn [WHERE CONDITION];

注意:不管是单表还是多表,不加where条件将会把表的所有记录删除,所以操作时一定要小心。

4.查询(select)

基本语法:

SELECT * FROM tablename [WHERE CONDITION];

1.查询不重复的记录,可以用distinct关键字实现:

SELECT DISTINCT deptno FROM emp;

2.条件查询:

SELECT * FROM emp WHERE deptno=1;

其中,where 后面的条件除“=” 外,还可以使用 >、<、>=、<=、!=等比较运算符;

多个条件之间还可以使用or、and等逻辑运算符进行多条件联合查询

3.排序和限制:

SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC], field2 [DESC|ASC],...fieldn [DESC|ASC]];

其中,DESC和ASC是排序关键字,
DESC表示按照字段进行降序排列(上大-下小),
ASC则表示升序排列(上小-下大),
如果不写此关键字默认是升序排列。
ORDER BY 后面可以跟多个不同的排列字段,并且每个排序字段可以有不同的排序顺序。

如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序,以此类推。如果只有一个排序字段,则这字段相同的记录将会无序排列。

SELECT ......[LIMIT offset_start,row_count];

对于排序后的记录,如果希望只显示一部分,而不是全部,这时,就可以使用LIMIT关键字来实现.

LIMIT 经常和ORDER BY一起配合使用来进行记录的分页显示。

注意:limit属于MySQL扩展SQL92后的语法,在其他数据库上并不能通用。

4.聚合

很多情况下,我们需要进行一些汇总操作,比如统计整个公司的人数或者统计每个部门的人数,这是就要用到SQL的集合操作。

SELECT [field1,field2,......fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,......fieldn
[WITH ROLLUP]]
[HAVING where_contition];

对其参数进行以下说明:

  1. fun_name 表示要做的集合操作,也就是聚合函数,常用的有sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
  2. GROUP BY 关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在group by后面。
  3. WITH ROLLUP 是可选语法,表明是否对分类聚合后的结果进行再汇总。
  4. HAVING 关键字表示对分类后的结果再进行条件的过滤。

注意:having和where的区别在于having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行再过滤。

5.表连接

表连接分为内连接和外连接,它们之间的最主要区别是:
内连接仅选出两张表中互相匹配的记录,
而外连接会选出其他不匹配的记录。我们常用的是内连接。

外连接有分为左连接和右连接,具体定义如下:

  1. 左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
  2. 右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
SELECT ename,deptname FROM emp LEFT JOIN dept ON emp.deptno=dept.deptno;

 6.子查询

某些情况,当我们查询的时候,需要的条件是另一个SELECT语句的结果,这个时候,就要用到子查询。
用于子查询的关键字主要包括in、not in、=、!=、exists、not exists等。

SELECT * FROM emp WHERE deptno IN(SELECT deptno FROM dept);

注意:子查询和表连接之间的转换主要应用在两个方面:

MySQL 4.1 以前的版本不支持子查询,需要用表连接来实现子查询的功能
表连接在很多情况下用于优化子查询

7.记录联合

我们经常会碰到这样的应用,将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,这个时候,就需要用到union和union all关键字来实现这样的功能,具体语法如下:

SELECT * FROM t1
UNION|UNION ALL
SELECT * FROM t2
......
UNION|UNION ALL
SELECT * FROM tn;

UNION 和 UNION ALL的主要区别是 UNION ALL 是把结果集直接合并在一起,而UNION是将UNION ALL后的结果进行一次DISTINCT,去除重复记录后的结果。

以上所述是小编给大家介绍的MySQL DML语句整理汇总详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 使用sqlplus创建DDL和DML操作技巧

    1.连接数据库 在window进入命令行模式敲sqlplus就会 然后进行表的DDL操作 例如: 在进行DML操作:你可以对刚才建立的模式进行数据的插入和数据的更新操作 例如数据的插入 ** 这里要注意的是: ** 如果你出先如下错误 解决方法:要在每一句结束是加上分号: 2表示第二行. 在sqlplus工具中分号才是结尾.如果在一个sql语句的结尾没有写分号,那么sqlplus认为该sql语句没有完成,回车为换行,那么oracle就自动命名原来的为第一行,现在编辑的为第二行,如果再输入一个回车

  • 详解SQL四种语言:DDL DML DCL TCL

    看到很多人讨论SQL还分为四种类型,在这里知识普及一下,并总结下他们的区别吧. 1. DDL – Data Definition Language 数据库定义语言:定义数据库的结构. 其主要命令有CREATE,ALTER,DROP等,下面用例子详解.该语言不需要commit,因此慎重. CREATE – to create objects in the database   在数据库创建对象 例: CREATE DATABASE test; // 创建一个名为test的数据库 ALTER – a

  • 使用sqlplus创建DDL和DML操作方法

    1.连接数据库 在window进入命令行模式敲sqlplus就会 然后进行表的DDL操作 例如: 在进行DML操作:你可以对刚才建立的模式进行数据的插入和数据的更新操作 例如数据的插入 **这里要注意的是: ** 如果你出先如下错误 解决方法:要在每一句结束是加上分号: 2表示第二行. 在sqlplus工具中分号才是结尾.如果在一个sql语句的结尾没有写分号,那么sqlplus认为该sql语句没有完成,回车为换行,那么oracle就自动命名原来的为第一行,现在编辑的为第二行,如果再输入一个回车,

  • DDL、DML和DCL的区别与理解

    DML.DDL.DCL区别 . 总体解释: DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE.ALTER.DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Da

  • ORACLE中查找定位表最后DML操作的时间小结

    在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析.总结一下. 1:使用ORA_ROWSCN伪列获取表最后的DML时间 ORA_ROWSCN伪列是Oracle 10g开始引入的,可以查询表中记录最后变更的SCN.然后通过SCN_TO_TIMESTAMP函数可以将SCN转换为时间戳,从而找到最后DML操作时SCN的对应时间.但是,默认情况下,每行记录的ORA_ROWSCN是基于Block的,除非在建表的时候开启行级跟踪. SE

  • 数据库语言分类DDL、DCL、DML详解

    DML(Data Manipulation Language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(Data Definition Language): DDL比DML要多,主要的命令有CREATE.ALTER.DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Language):

  • Sql学习第二天——SQL DML与CTE概述

    DML (Data Manipulation Language) 与 CTE (Common Table Expression) 今天看书时遇到的两个缩写,不知道其含义,于是就百度了一下,特地在此记录下来,以便于下次复习使用. 关于DML (Data Manipulation Language): 数据操纵语言,用户能够查询数据库以及操作已有数据库中的数据的计算机语言.具体是指是UPDATE更新.INSERT插入.DELETE删除. 关于CTE (Common Table Expression)

  • MySQL DML语句整理汇总

    DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert).更新(update).删除(delete)和查询(select),是开发人员日常使用最频繁的操作. 1.插入(insert) 格式1. INSERT INTO emp(ename,hiredate,sal,deptno) VALUES('zzx1','2000-01-01','2000',1); 格式2. INSERT INTO emp VALUES('lisa','2003-02-01','3000',2); 不用指定

  • 详解mysql DML语句的使用

    前言: 在上篇文章中,主要为大家介绍的是DDL语句的用法,可能细心的同学已经发现了.本篇文章将主要聚焦于DML语句,为大家讲解表数据相关操作. 这里说明下DDL与DML语句的分类,可能有的同学还不太清楚. DDL(Data Definition Language):数据定义语言,用于创建.删除.修改.库或表结构,对数据库或表的结构操作.常见的有create,alter,drop等. DML(Data Manipulation Language):数据操纵语言,主要对表记录进行更新(增.删.改).

  • 最全的mysql查询语句整理

    -- 基本查询 select * from pet -- 列出指定的列 select name, owner form pet -- 直接进行算术运算,对字段起别名 select sin(1+2) as sin --where 条件 select * from pet where (birth>'1980' and species='dog') or species='bird' -- 对null 的条件 select * from pet where sex is not null -- 所有

  • MySQL数据操作-DML语句的使用

    说明 DML(Data Manipulation Language)数据操作语言,是指对数据库进行增删改的操作指令,主要有INSERT.UPDATE.DELETE三种,代表插入.更新与删除,这是学习MySQL必要掌握的基本知识. 方语法中 [] 中内容可以省略. INSERT操作 逐行插入 语法格式如下: insert into t_name[(column_name1,columnname_2,...)] values (val1,val2); 或者 insert into t_name se

  • MySQL语句整理及汇总介绍

    SQL(Structured Query Language)语句,即结构化查询语言,是操作和检索关系数据库的标准语言.SQL语句一般分为以下几种: DCL(Database Control Language,数据控制语言)语句:主要由GRANT和REVOKE两个关键字完成 DDL(Database Definition Language,数据定义语言)语句:主要由CREATE.ALTER.DROP和TRUNCATE四个关键字完成 DML(Database Manipulation Languag

  • MySQL基础教程之DML语句详解

    目录 DML 语句 1.插入记录 2.更新记录 3.简单查询记录 4.删除记录 5.查询记录详解(DQL语句) 5.1.查询不重复的记录 5.2.条件查询 5.3.聚合查询 5.4.排序查询 5.5.limit查询 5.6.连表查询 5.7.子查询 5.8.记录联合 5.9.select语句的执行顺序 6.总结 DML 语句 DML(Data Manipulation Language)语句:数据操纵语句. 用途:用于添加.修改.删除和查询数据库记录,并检查数据完整性. 常用关键字:insert

  • MySQL数据表使用的SQL语句整理

    目录 EXPLAIN 语句 SHOW INDEX 语句 ANALYZE TABLE 语句 EXPLAIN 语句 分析SQL索引使用,关键词EXPLAIN: SQL举例: CREATE TABLE `my_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL DEFAULT '' COMMENT '名字', `sex` enum('0','1') NOT NULL COMMENT '性别

  • MySQL高级操作指令汇总

    目录 一.克隆表 法一 法二 二.清空表 法一 delete 法二 truncate 法三 drop 总结 三.创建临时表 四.外键约束 设置外键 五.用户管理 1.查看用户信息 2.新建用户create user 密码为明文 密码为密文 3.重命名rename 4.删除用户 5.修改密码 1.修改当前用户的密码 2.修改其他用户的密码 六.数据库用户授权 1.授予权限grant 2.查看权限 3.撤销权限 4.刷新权限 一.克隆表 法一 mysql> create table info1 li

  • Mysql事务索引知识汇总

    目录 一.事务 1.事务特性 2.事务并发时出现的问题 二.索引 1.索引使用 2.索引类型 3.索引注意原则 三.SQL 1.SQL优点 2.SQL分类 3.SQL语法及关键字 四.数据库设计 1.数据库三大范式 2.数据库规范设计 一.事务 mysql事务是用于处理操作量大.复杂性高的数据 1. 事务特性 原子性:保证每个事务所有操作要么全部完成或全部不完成,不可能停滞在中间环节:如事务在执行过程中出现错误,则会回滚到一致性:事务开始结束后保证数据库的完整性没有被破坏,数据都是按照数据库要求

  • MySQL5.7.14下载安装图文教程及MySQL数据库语句入门大全

    如何下载: 我先去MySQL首页下载最新版本的MySQL-链接:https://www.mysql.com/downloads/ 进入此界面下载: Downloads–>MySQL Community Edition (GPL)(这是免费版的,当然,有钱的可以用收费的,功能更强大)–>MySQL Community Server (GPL) –>选择对应的系统和电脑版本(在这里,我选择的是Window系统64位的下载) –>No thanks, just start my down

随机推荐