多表查询子查询分页查询及DML数据管理语言的基本操作
一、多表查询
#7、可以实现三表连接?
#2、非等值连接
#案例1:查询员工的工资和工资级别
#3、自连接
#案例:查询 员工名和上级的名称
#案例:查询员工名、部门名和所在的城市
二、join查询
语法:
select 查询列表
from 表1 别名 【连接类型】
join 表2 别名
on 连接条件
【where 筛选条件】
【group by 分组】
【having 筛选条件】
【order by 排序列表】
分类:
内连接(★):inner
外连接
左外(★):left 【outer】
右外(★):right 【outer】
全外:full【outer】
交叉连接:cross
#女生对应的男朋友(以左为主表,主表全显示)
以右为主
三、常见函数
主要是针对列段类型值进行后期加工
1、字符函数
作用 函数 结果
转小写 LOWER(‘SQL Course’) sql course
转大写 UPPER(‘SQL Course’) SQL COURSE
拼接 CONCAT(‘Hello’, ‘World’) HelloWorld
截取 SUBSTR(‘HelloWorld’,1,5) Hello
长度 LENGTH(‘HelloWorld’) 10
字符出现索引值 INSTR(‘HelloWorld’, ‘W’) 6
字符截取后半段 TRIM(‘H’ FROM ‘HelloWorld’) elloWorld
字符替换 REPLACE(‘abcd’,‘b’,‘m’) amcd
2、数字函数
作用 函数 结果
四舍五入 ROUND(45.926, 2) 45.93
截断 TRUNC(45.926, 2) 45.92
求余 MOD(1600, 300) 100
3、日期函数
作用 函数 结果
获取当前日期 now()
将日期格式的字符转换成指定格式的日期 STR_TO_DATE(‘9-13-1999’,’%m-%d-%Y’) 1999-09-13
将日期转换成字符 DATE_FORMAT(‘2018/6/6’,‘%Y年%m月%d日’) 2018年06月06日
四、子查询
含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询
#案例1:谁的工资比 Abel 高?
#案例2:返回job_id与141号员工相同,salary比143号员工多的员工 姓名,job_id 和工资
#案例3:返回公司工资最少的员工的last_name,job_id和salary
#案例4:查询最低工资大于50号部门最低工资的部门id和其最低工资
五、分页查询
语法:
select 查询列表
from 表
【join type join 表2
on 连接条件
where 筛选条件
group by 分组字段
having 分组后的筛选
order by 排序的字段】
limit 【offset,】size;
offset要显示条目的起始索引(起始索引从0开始)
size 要显示的条目个数
特点:
①limit语句放在查询语句的最后
②公式
要显示的页数 page,每页的条目数size
从0开始,可以省略0 如: limit 0,5=limit 5
#案例1:查询前五条员工信息
#案例2:有奖金的员工信息,并且工资较高的前10名显示出来
DML(数据管理语言)
• DML(Data Manipulation Language –
数据操纵语言) 可以在下列条件下执行: – 向表中插入数据
– 修改现存数据
– 删除现存数据
• 事务是由完成若干项工作的DML语句组成的
• 使用 INSERT 语句向表中插入数据。
• 使用这种语法一次只能向表中插入一条数据。
• 为每一列添加一个新值。
1.插入数据
像表中插入一个数据如图所示:
2,.复制数据
从其它表中拷贝数据:先创建一个空表,然后用其它的表通过id值拷贝数据过来。
3.更新数据
• 使用 UPDATE 语句更新数据。
• 如果省略 WHERE 子句,则表中的所有数据都将被更新
一次修改多表的数据:
#案例 1:修改张无忌的女朋友的手机号为114
#案例2:修改没有男朋友的女神的男朋友编号都为2号
4、删除数据
使用 DELETE 语句从表中删除数据。
• 使用 WHERE 子句删除指定的记录。
• 如果省略 WHERE 子句,则表中的全部数据将被删除
#案例:删除张无忌的女朋友的信息
#案例:删除黄晓明的信息以及他女朋友的信息
delete pk truncate
1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列, 如果用delete删除后,再插入数据,自增长列的值从断点开始, 而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚.
上一篇: Flink读取HDFS上的Parquet文件生成DataSet
下一篇: Hive之DML数据操作