返回顶部
首页 > 资讯 > 数据库 >MySQL基础教程之DML语句详解
  • 143
分享到

MySQL基础教程之DML语句详解

2024-04-02 19:04:59 143人浏览 独家记忆
摘要

目录DML 语句1.插入记录2.更新记录3.简单查询记录4.删除记录5.查询记录详解(DQL语句)5.1.查询不重复的记录5.2.条件查询5.3.聚合查询5.4.排序查询5.5.li

DML 语句

DML(Data Manipulation Language)语句:数据操纵语句。

用途:用于添加、修改、删除和查询数据库记录,并检查数据完整性。

常用关键字:insert、update、delete、select等。

DML 操作的对象是库表的数据(记录)。

主要包括插入(insert)、更新(update)、删除(delete)和查询(select)。

DML 语句是开发人员使用最频繁的操作。

1.插入记录

插入一条记录


insert into tablename (field1,field2,...,fieldn) values (value1,value2,...,valuen);

一次性插入多条数据


insert into tablename

 (field1,field2,...,fieldn)

values

 (value1,value2,...,valuen),

 (value1,value2,...,valuen);

2.更新记录

更新单表数据


update tablename set field1=value1,filed2=value2,...fieldn=valuen [where condition]

同时更新多个表的数据


update t1,t2,...,tn set t1.field1=expr1,tn.field=exprn [where condition];

通常用于根据一个表的字段来动态地更新另外一个表的字段

在此说明:中括号 “[ ]” 代表的是可选参数,即可有可无的参数。

3.简单查询记录

简单的条件查询。符号“*”代表查询所有字段,如果只想看其中某些列,则写表的列名。


select * from tablename [where condition];

select field1,field2,...,fieldn from tablename [where condition];

别名

    给列名或表名取别名的关键字:AS 或者不写关键字。如:


select field1 AS f1,field2 f2  from tablename;

select t2.field1 AS f1,t1.field2 f2  from table1 as t1,table2 t2;

不取别名,则查询结果的列名为表原本的列名;

取别名,则查询结果的列名为别名

4.删除记录

删除单表记录


delete from tablename [where condition];

同时删除多个表的数据


delete t1,t2,...,tn from t1,t2,...,tn [where condition];

说明:不加where 条件则删除全表数据

单表“增改查删”操作案例:

多表“删除”操作案例:

  再看个删除案例

 最后再看个删除案例

多表删除结论:

  条件成立,则删除有条件表的对应数据,没条件的则全表删除;

  条件不成立,则都不删除。

留个疑问:多表删除不给where 条件会怎样呢?

关于同时更新多个表数据的操作,可以自行探索,毕竟有思考的学习最有价值。

5.查询记录详解(DQL语句)

DQL(Data Query Language)即数据库查询语言。

数据库查询语句就像玩积木一样,一块一块的拼凑,每个中括号“[]”代表一块积木。

先通过递进的方式一条一条列出查询语法。

5.1.查询不重复的记录


select distinct filed from tablename;

distinct 关键字是对 “查询结果集” 去重,再看个例子就明白了。

5.2.条件查询


--查询所有列:

select * from tablename [where condition];

--查询指定列:

select [field1,field2,...,fieldn] from tablename [where condition];

常用的条件(condition)

等于:field = xxx

大于:field > xxx

小于:field < xxx

不等于:field != xxx

不等于:field <> xxx

等于null:field is null

不等于null:field is not null

多个条件之间用逻辑运算符:and 和 or 

模糊查询之"_":field like _x_xx_     符号"_"代表匹配单个任意字符,可以在你喜欢的字符旁加上"_"

模糊查询之"%":field like %x%xx%     符号"%"代表匹配0~n个任意字符,可以在你喜欢的字符旁加上"%"

in语句查询:field in(value1,value2,...)  查询field 和 in 数组配得上的,不配就没有数据

not in语句查询:field not in(value1,value2,...)   查询field 和 in 数组配不上的,不配就有数据

其它常用条件具体怎么用,参考常用条件去操作。

5.3.聚合查询


--最简单的聚合查询:
select [field1,field2,...,fieldn] fun_name from tablename group by field;
--完整语法:
select [field1,field2,...,fieldn] fun_name from tablename
 [where condition]
 [group by field1,field2,...,fieldn [with rollup]]
 [having condition];

说明:

fun_name  表示聚合函数,常用有:求和sum()、记录数count(*)、平均值avg()、最大值max()、最小值min();

[where condition] 就是上面讲的条件查询;

[group by field1,field2,...,fieldn [with rollup]] 

  group by 关键字表示对field字段进行分类聚合;

  with rollup 关键字表示是否对分类聚合后的结果进行再汇总

[having condition] 对分类聚合后的查询结果集进行条件的过滤

where 和 having 的区别:

  1. where 是分组前的条件过滤;having 是分组后的条件过滤。
  2. where 是用原表列名做条件过滤;having 是用查询结果集列名做条件过滤。

    优先选择where 条件过滤,这样可以减少结果集,进而提高分类聚合的效率。

中括号"[]"代表可选的意思,也就是说group by 前面的[where condition] 可有可无,后面的[with rollup] 和 [having condition] 也是可有可无。

group by 和distinct 的区别:    group by 是对指定列进行分组;distinct 是对查询结果进行去重。

加入where 和 having的例子:

列名为avg(stu_age) 看着有点怪怪,给他取个别名就一目了然:

5.4.排序查询


--最简单的排序查询:
select * from tablename order by field;
--完整语法:
select [field1,field2,...,fieldn] fun_name from tablename
 [where condition]
 [group by field1,field2,...,fieldn [with rollup]]
 [having condition]
 [order by field1 [desc|asc], field2 [desc|asc],...,fieldn [desc|asc]];
DESC 代表降序(从大到小);ASC 代表升序(从小到大),asc为默认排序。也就是说你只要记住desc 就可以了。碰巧的是desc 是查询表设计的关键字,而且语法很简单:desc tablename;

单列排序:

多列排序:用符号 “,” 隔开即可

5.5.limit查询

  又称为限制查询、范围查询、分页查询


--最简单的limit查询:offset_start和数组下标一样,从0开始算
select * from tablename limit offset_start,row_count;
--完整语法:这条sql是单表查询的完整版
select [field1,field2,...,fieldn] fun_name from tablename
 [where condition]
 [group by field1,field2,...,fieldn [with rollup]]
 [having condition]
 [order by field1 [desc|asc], field2 [desc|asc],...,fieldn [desc|asc]]
 [limit offset_start,row_count];

例子1:从第1条开始,查询两条数据

例子2:从第2条开始,查询两条数据

=========================

= 以上就是关于单表查询的语法 =

= 以下则是关于两表联查的语法 =

=========================

5.6.连表查询

在需要关联多个表数据时使用。 学习左连接和内连接即可。

左连接:选出左表所有的记录,不管右表有没有和它匹配;左表是主,关联右表信息


select * from t1 left join t2 on t1.field1=t2.field2;

内连接:仅选出两张表中互相匹配的记录,没有匹配则结果为空


select * from t1 inner join t2 on t1.field1=t2.field2;

select * from t1,t2 where t1.field1=t2.field2;

5.7.子查询

在需要另外一个查询结果作为查询条件时使用。子查询用“()” 括起来。

如:查询学生“张三”的成绩

某些情况下,子查询可以转化为连表查询。如上面的例子可以写成连表查询:

5.8.记录联合

 将两个过多个表的查询结果合并成结果集输出。合并的条件是多个表的查询结果字段数要相同,注意是查询结果字段数不是表字段数。


select f1,f2,...,fn from t1

uNIOn/union all

select f1,f2,...,fn from t2

...

union/union all

select f1,f2,...,fn from tn

查询结果字段数不等,则报错

固定查询结果集字段数

5.9.select语句的执行顺序

自行证明该执行顺序是否正确,也算是对前面所学知识的一个巩固。​

(7)  SELECT 

(8)  DISTINCT <select_list>

(1)  FROM <left_table>

(3)  <join_type> JOIN <right_table>

(2)  ON <join_condition>

(4)  WHERE <where_condition>

(5)  GROUP BY <group_by_list>

(6)  HAVING <having_condition>

(9)  ORDER BY <order_by_condition>

(10) LIMIT <limit_number>​

6.总结

到此为止,关于日常操作最为频繁的表数据的插入(insert)、更新(update)、删除(delete)和查询(select)语句就讲完了。最为繁杂的查询语句,又名为DQL语句,是DML语句中的重点。

到此这篇关于Mysql基础教程之DML语句的文章就介绍到这了,更多相关mysql基础之DML语句内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL基础教程之DML语句详解

本文链接: https://lsjlt.com/news/160416.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL基础教程之DML语句详解
    目录DML 语句1.插入记录2.更新记录3.简单查询记录4.删除记录5.查询记录详解(DQL语句)5.1.查询不重复的记录5.2.条件查询5.3.聚合查询5.4.排序查询5.5.li...
    99+
    2024-04-02
  • MySQL基础:DML语句
    SQL语言大致分为`DCL`、`DDL`、`DML`三种,本文主要介绍`MySQL 5.7`版本的`DCL`语句。 blog:https://www.cnblogs.com/Rohn/ SQL语言大致...
    99+
    2018-11-18
    MySQL基础:DML语句
  • MySQL基础:DML语句总结
    SQL语言大致分为`DCL`、`DDL`、`DML`三种,本文主要介绍`MySQL 5.7`版本的`DCL`语句。 blog:https://www.cnblogs.com/Rohn/ SQL语言大致...
    99+
    2018-12-12
    MySQL基础:DML语句总结
  • MySQL基础教程15 —— SQL语法之数据操作语句DML——DELETE语法
    单表语法: DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name     [WHERE where_definition]     [OR...
    99+
    2022-05-18
    delete DML MySQL SQL 数据库
  • 【MySQL基础教程】DQL语句详细介绍
    前言 本文为 【MySQL基础教程】DQL语句 相关内容介绍,下边具体将对DQL语句基本语法,基础查询,条件查询,聚合函数,分组查询,排序查询,分页查询,相关案例,执行顺序等进行详尽介绍~ 📌博主主页:小新要变强 的主页 ...
    99+
    2023-08-25
    java mysql
  • Java基础之finally语句与return语句详解
    目录一、return语句执行顺序二、覆盖问题三、异常情况四、finally语句一定会被执行吗?一、return语句执行顺序 finally语句是在return语句执行之后,retur...
    99+
    2024-04-02
  • Python基础之条件语句详解
    目录一、环境介绍二、条件判断介绍三、if语句的使用四、if判断的运算符五、学习小结一、环境介绍 Python版本Python 3.8.8 ( Pycharm版本2021.1.2 二、...
    99+
    2024-04-02
  • 详解mysql DML语句的使用
    前言: 在上篇文章中,主要为大家介绍的是DDL语句的用法,可能细心的同学已经发现了。本篇文章将主要聚焦于DML语句,为大家讲解表数据相关操作。 这里说明下DDL与DML语句的分类,可能有的同学还不太清楚。 DDL(...
    99+
    2022-05-28
    mysql dml mysql dml语句
  • MySQL基础教程14 —— SQL语法之数据定义语句DDL
    1. ALTER DATABASE语法 ALTER {DATABASE | SCHEMA} [db_name] alter_specification [, alter_specification] ... ...
    99+
    2022-05-17
    DDL MySQL SQL 数据库
  • python基础详解之if循环语句
    前言 还记得这个九九乘法表吗,这次课后相信你可以用代码给你的小弟弟妹妹们变出这份“葵花宝典”。 循环 如果要把循环翻译成机器语言,那他对应的可以是 for…in… ,循环就像是一个...
    99+
    2024-04-02
  • MySQL基础语句
    查看语句 查看所有数据库 show databases; 查看表结构 desc table_name; 查看库中所有表 show tables; 查看建表语句 show create table ; 新建表语...
    99+
    2021-02-22
    MySQL基础语句
  • 【MySQL】数据库SQL语句之DML
    目录 前言: 一.DML添加数据 1.1给指定字段添加数据 1.2给全部字段添加数据 1.3批量添加数据 二.DML修改数据 三.DML删除数据 四.结尾 前言:   时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、...
    99+
    2023-08-31
    数据库 sql mysql
  • kotlin 官方学习教程之基础语法详解
    kotlin 官方学习教程之基础语法详解Google 在今天的举行了 I/O 大会,大会主要主要展示内有容 Android O(Android 8.0)系统、Google Assistant 语音助手、Google 智能音箱、人工智能、机器...
    99+
    2023-05-31
    kotlin 教程
  • MySQL8.0关系数据库基础教程(三)-select语句详解
    1 查询指定字段 在 employee 表找出所有员工的姓名、性别和电子邮箱。 SELECT 表示查询,随后列出需要返回的字段,字段间逗号分隔 FROM 表示要从哪个表中进行查询 分号为语句结束符 这种查询表中指定字段的操...
    99+
    2018-09-26
    MySQL8.0关系数据库基础教程(三)-select语句详解
  • MySQL基础——DDL语句
    目录 MySQL SQL DDL——数据定义 数据库操作 连接 查询 使用 创建 删除 数据表操作 创建 查询 修改 删除 MySQL MySQL是一个关系型数据库管理系统,其数据是保存在不同的数据表中,而不是将所有数据放在一个大仓库内...
    99+
    2023-09-21
    mysql 数据库
  • mysql基础语句1
    创建用户 create user ben identified by ‘P@$$w0rd’; 查看所有用户 select user,host from mysql.user; 用户重命名 rename user ben...
    99+
    2023-01-31
    语句 基础 mysql
  • SQL基础语句 - 数据操作DML和数据查询DQL语句详细介绍
    文章目录 数据操作DML数据查询DQL基础查询条件查询排序查询聚合函数分组查询分页查询 数据操作DML DML:是对表中的数据进行增删改的操作 创建下面这样一个学生表进行演示...
    99+
    2023-09-08
    sql 数据库 mysql
  • android基础教程之context使用详解
    在android中有两种context,一种是application context,一种是activity context,通常我们在各种类和方法间传递的是activity ...
    99+
    2022-06-06
    context 教程 Android
  • MySQL教程DML数据操纵语言示例详解
    目录1.数据操纵语言(DML)2.增添数据(insert)3.复制已有表,生成新表1)复制已有表的结构和数据。2)只复制已有表的结构(得到的是一个空结构表)。3)在2的基础上,向空结...
    99+
    2024-04-02
  • C语言基础指针详解教程
    目录1.1:概述1.1.1:内存1.1.2:内存1.1.3:指针和指针变量1.2:指针基础知识1.2.1:指针变量的定义和使用1.2.2:通过指针间接修改变量的值1.2.3:指针的大...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作