IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 2021-09-29 -> 正文阅读

[大数据]2021-09-29

1.索引:主键自带索引,提高查询效率

#1.1查看索引: show index from 表名
SHOW INDEX FROM emp
#1.2创建单值索引:单值索引(一个索引只包含一个字段) 复合索引 唯一索引
CREATE INDEX ename_index ON emp(ename)
#1.3创建唯一索引:一个索引只包含一个字段,索引列值不能重复
CREATE UNIQUE INDEX bindex ON emp(ename)
#1.4 创建复合索引:一个索引包含着多个字段,遵循最左特性
CREATE INDEX pindex ON emp (job,hiredate,comm)
#1.5删除索引
ALTER TABLE emp DROP INDEX pindex
#1.6使用索引:背后的故事(感觉不到使用了索引),按照索引列去查
SELECT * FROM emp WHERE ename=‘jack’
SELECT * FROM emp WHERE ename=‘jack’
#使用复合索引,遵循最左特性
SELECT * FROM emp WHERE job=‘总监’ #生效
SELECT * FROM emp WHERE job='总监’AND hiredate=‘2019-1-1’ #生效
SELECT * FROM emp WHERE hiredate=‘2019-1-1’ #失效
SELECT * FROM emp WHERE hiredate=‘2019-1-1’ AND comm=100 #失效
#1.7查询SQL的执行计划/性能(看看用没用索引)
EXPLAIN
SELECT * FROM emp WHERE ename=‘jack’
EXPLAIN
SELECT * FROM emp WHERE ename=‘jack’

2.多表联查

#方式1:笛卡尔积,通过逗号连接表名
#练习1:查询部门编号是1的部门信息和员工信息
SELECT * FROM dept,emp
#表名.字段名=表名.字段名
WHERE dept.deptno=emp.deptno#,描述两个表的关系
AND dept.deptno=1#查deptno=1的数据
#练习2:查询员工姓名叫jack的部门信息和员工信息
SELECT dept.* FROM dept,emp
WHERE dept.deptno=emp.deptno#描述了两张表的关系
AND emp.ename=‘jack’ #业务条件
#练习3:查询岗位是总监的部门信息
SELECT emp.* FROM dept,emp
WHERE dept.deptno=emp.deptno
AND emp.job = ‘总监’

#方式2:连接查询
#分为三种
#内连接 inner join:取两张表的交集
#左连接 left join:取左表的所有和右表满足条件的
#右连接 right join:取右表的所有和左表满足条件的
#练习1:列出research部门下的所有员工的信息
#笛卡尔积方式
SELECT emp.* FROM dept JOIN emp
ON dept.deptno = emp.deptno
WHERE dept.dname= ‘java开发部’
#练习2:查询岗位是总监所在的部门信息
#连接查询方式
SELECT dept.* FROM dept JOIN emp
ON dept.deptno=emp.deptno
WHERE emp.job=‘总监’;
#练习3:查询员工姓名叫jack的部门信息和员工信息
SELECT emp.* FROM dept JOIN emp
ON dept.deptno=emp.deptno
WHERE emp.ename=‘jack’
#三种连接查询:inner join /left join /right join
SELECT * FROM dept INNER JOIN emp
ON emp.deptno = dept.deptno

#综合练习1:查询陈冰老师能讲解的课程的名称
#笛卡尔积
SELECT courses.cname FROM teachers,courses
WHERE teachers.tno=courses.tno
AND teachers.tname=‘陈冰’
#连接查询
SELECT courses.cname FROM teachers JOIN courses
ON teachers.tno=courses.tno
WHERE teachers.tname=‘陈冰’

#综合练习2:查询学员李军的总得分(students/scores)
#笛卡尔积
SELECT SUM(degree)FROM students,scores
WHERE students.sno=scores.sno
AND students.sname=‘李军’
#连接查询
SELECT SUM(degree)FROM students JOIN scores
ON students.sno=scores.sno
WHERE students.sname=‘李军’

#方式3:子查询/嵌套查询:把上次的查询结果作为这次的查询条件
#练习1:查询学员李军的总得分(students/scores)
#查询学生表,根据学员名字查编号
#根据编号查得分表里的分数
SELECT sno FROM students WHERE sname=‘李军’
SELECT SUM(degree) FROM scores WHERE sno=(SELECT sno FROM students WHERE sname=‘李军’)
#子查询练习2:查询陈冰老师能讲解的课程的名称(teachers/courses)
SELECT tno FROM teachers WHERE tname=‘陈冰’
SELECT cname FROM courses WHERE tno=(SELECT tno FROM teachers WHERE tname=‘陈冰’)

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-02 14:56:26  更:2021-10-02 14:58:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:07:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码