DQL数据查询语言(下) 和DML(数据管理语言)的学习

今天继续DQL的学习,DQL结束后是学习DML。
一、DQL数据查询语言(下)
多表查询
首先还是继续上次的多表查询,在上篇中讲到了多表查询中几个关联表之间的查询,除此之外,数据表会存在各列段之间相互关联的情况,我们通过这种关联关系来查询数据,这种方式称为自连接方式。
例如,我通过t_mysql_employees这张表中的员工和领导的关系来查询:
在这里插入图片描述
join连接
join连接分为内连接和外连接,内连接使用[inner] join on 语句,这里主要介绍外连接。
外连接分为左外连接(left[outer] join on)和右外连接(right [outer] join on)。有时候我们在多表查询的时候会遇到某个关联关系的某一项的某个列段的值为空的情况,如果使用普通的查询,那么这项数据就会被跳过。使用哪个join 连接则会避免这种情况的发生,如下图中所示:
在这里插入图片描述
从图中可以看到,即便有些女生的男友项为空,还是会显示在表中。这是因为在join连接中,会以left和right关键词所指向的表为参考,如果使用left,则以左边的表t_mysql_beauty的数据为参考,不会略掉该表的每一条数据,而如果换成右边,则会以t_mysql_boys为参考,如下图所示:
在这里插入图片描述
常见函数
在MySQL中,有许多的函数供我们使用,主要针对列段类型值进行后期加工。我们可以使用select 函数名();这种格式来测试一个函数的功能。
函数类型主要分为数字类型、字符类型和时间类型的函数,下面是一些常见函数的列表;
1.字符函数
在这里插入图片描述
2.数字函数
在这里插入图片描述
3.时间函数
在这里插入图片描述
在这里插入图片描述
这里以时间函数为例来简单介绍下函数的使用:
在这里插入图片描述
子查询
子查询其实就是在查询的时候需要在sql语句中嵌套sql语句,即为多重查询。
举例:
假如我们现在要以表t_mysql_employees为基础,查询表中各个部门中,最低工资高于50号部门最低工资的部门名字和最低工资。
在这里插入图片描述
将代码美化一下:
在这里插入图片描述
在写子查询的时候要切记逻辑正确,先分清主次关系。
分页查询
分页查询的主要目的就是在原有查询的基础上按需求显示给定数量的数据。在处理大量数据的时候,我们可以选择任意起点开始的任意数量的数据。
如,在t_mysql_employees表中总共有107条数据,我们可以选择仅仅显示前10条数据:
在这里插入图片描述
分页查询的基本语法格式为:原始查询语句 limit startIndex,offset;
在使用分页查询的时候,需要注意两点:
1.当原始查询的结果数量要小于我们的offset即设定显示的数据值时,这是不会报错,只是会默认显示原始查询的所有结果;
2.当分页查询的起始点即startIndex为0时,可以省略不写:
在这里插入图片描述
二、DML(数据管理语言)
DML(数据管理语言)主要包括了数据的添加、修改和删除。
1.数据的新增/添加
下面是最简单的新增类型,基本语法格式为:insert into 表名 values();括号内需要根据表各个列段将各个值按顺序写上,不可漏
在这里插入图片描述
除了上面这种添加方式外,还可以向指定的列段添加数据:
在这里插入图片描述
添加数据的方法除了写values外,可以直接从数据表中复制:
首先,新建一张表t_mysql_boys_bak,
在这里插入图片描述
在这里插入图片描述
copy/拷贝
通过直接复制t_mysql_boys的结构来新建一个同样结构的表。
然后再复制数据:
在这里插入图片描述
在这里插入图片描述
2.数据的修改
关键词:update。
数据的修改分为修改整个表的修改和条件修改。
在这里插入图片描述
上图即修改了整个表的usercp列段的数据,可以添加条件来指定修改某一条数据的某个列段信息。
在这里插入图片描述
数据的删除
关键词delete、truncate在这里插入图片描述
上图中,删除了id为4的整条数据信息。truncate也具有删除的功能。
delete 与 truncate的区别:
1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值