DQL(2)及DML

一、 多表查询

join连接
内连接:
	语法:select 查询列表 from 表1 别名 join 表2 别名  on 连接条件;
	[inner] join on
	可以添加排序、分组、筛选。inner可以省略,筛选放在where后,连接条件在on后面。inner join 和等值连接相同。
	内连接又分为,等值连接、非等值连接。自连接;
	等值连接:	
		案例:查询员工名、部门名

在这里插入图片描述

	非等值连接:
		案例:查询员工的工资级别:

在这里插入图片描述

	自连接:
		案例:查询员工的名字、上级的名字

在这里插入图片描述

外连接:
	左外连接:join [outer] left on
		案例:查询哪个部门没有员工

在这里插入图片描述

	右外连接:join [outer] right on 和左外连接一致,只是左外连接是以左边的表为主,右外连接是以右边的表为主。
常见函数
函数的作用就是针对于列段类型值进行后期加工。
函数可以通过select之后直接使用,括号内放置需要加工的字符。
案例:通过使用字符串函数避开区分大小写的问题	;

在这里插入图片描述

1.字符函数:
	Lower:转小写
	Upper:转大写
	Concat:拼接
	Substr:截取
	Length:长度
	Instr:字符出现索引值
	Trim:字符截取后半段
	Replace:字符替换

在这里插入图片描述

2.数字函数:
	Round:四舍五入
	Trunc:截断
	Mod:求余
3.日期函数:
	now():获取当前日期
	Str_to_date():将日期格式的字符转换成指定格式的日期

在这里插入图片描述

	date_format():将日期转换成字符

在这里插入图片描述

子查询
	因为一个sql语句有时并不能完成我们所需要查询的数据,所以在sql语句中再嵌套一层sql语句这种语句套语句的方式就叫做子查询。
案例:找到比员工“Abel”薪资更高的员工信息:

在这里插入图片描述

分页查询
语法:原有查询+limit startindex,offset
	在原有查询基础上加limit关键字 起始下标和选取范围就可以实现分页查询。有时候我们并不需要查到整张表所有的数据,这是就可以用分页查询选定指定的范围的数据。
注意:
	如果数据量少于你设置的offset,数据也只会显示原查询的结果,如果起始下标为0,则可以省略起始下标(startindex)
案例:

在这里插入图片描述

二、DML语言

1.简介

Data Manipulation Language(DML)数据操作语言

2.插入数据:
向指定表中插入数据:
	语法:insert into 表名 (列段名1,列段名2) values(列段名1对应的值,列段名2对应的值);一次只能插入一条数据
	insert into t_mysql_departments(department_id,department_name,location_id) values (900,'pro',1700);
向指定表插入所有列段值:
	 insert 表名 values(...);
数据拷贝:
	 在 INSERT 语句中加入子查询。可以拷贝所有列的数据,也可以指定拷贝列段,不必写values字句,而且在子查询中的值列表应该与insert字句中的列名对应。
	 insert into t_mysql_departments_bak select * from t_mysql_departments
3.更新数据:
使用update更新数据,可以一次性更改多条数据。
案例:

在这里插入图片描述
在这里插入图片描述

4.删除数据:
使用delete语句从表中删除数据,使用where字句可以删除指定的记录,如果省略where字句则表中全部数据将被删除。也可以同时删除多张表的数据。
关键字:delete    truncate
两个关键字的区别:
	1.delete可以加where条件,truncate不能加,truncate就等于直接清空表的所有数据。
	2.truncate的效率要高一点点。
	3.假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
	4.truncate删除没有返回值,delete删除有返回值
	5.truncate删除不能回滚,delete删除可以回滚.
案例:删除张无忌的女朋友信息

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值