SQL内容补充
一.where和having
1.where 后不能跟聚合函数,因为where执行顺序大于聚合函数。
2. where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
3.having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
二.视图
1.概念
视图是一种虚拟存在的表,行和列的数据来自自定义视图的查询中使用的表,并且在使用视图时动态生成的,只保存SQL的逻辑,不保存查询结果。
2.应用场景
多个地方用到同样的查询结果
该查询结果使用的SQL语句比较复杂
3.使用
(1)创建视图
语法:
create view 视图名
as
查询语句;例子:
# 查询邮箱中包含a字符的员工名、部门名和工种信息 # 创建
create view myv1
as
select last_name,department_name,job_title
from employees e
join departments d on e.department_id = d.department_id
join jobs j on j.job_id = e.job_id; #使用
select * from myv1 where last_name like '%a%';
(2)修改视图
方式一:
语法:
create or replace view 视图名
as
查询语句;例子:
create or replace view myv3
as
select AVG(salary) , job_id
from employees
group by job_id;
方式二:
语法:
alter view 视图名
as
查询语句;例子:
alter view myv3
as
select * from employees;
(3)删除视图
语法:
drop view 视图名1, 视图名2, ...;
例子:
drop view myv1,myv2,myv3;
(4)查看视图
方式一:
desc myv3;
方式二:
show create view myv3;
4.视图的好处
重用SQL语句
简化复杂的SQL操作,不必知道它的查询细节
保护数据,提高安全性
三.SQL执行顺序
1.手写顺序

2.机器读顺序


四.MySQL逻辑架构简介
和其他数据库相比,MySQL与众不同。它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上。插件式的存储引擎架构将查询处理和其他的系统以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

五.SQL-JIONS

六.索引
1.概念
索引是一种高效获取数据的数据结构
除了数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构是索引。
一般来说索引本身也很大,不能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上
我们平时说的索引没有特别指明一般都是B树
2.优势
提高数据检索的效率,降低数据库的IO成本
通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗
3.劣势
多占用了内存空间
索引提高了查询速度,降低了更新速度
根据业务变化,要改变索引建立更加优化的索引
4.索引的分类
单值索引:一个索引只包含单个列,一个表可以有多个单列索引
唯一索引:索引列的值必须唯一,但是允许有空值
复合索引:一个索引包含多个列
基本语法:
创建:
创建语法: create [unique] index indesName on tableName(columnName1,....);
例子:
create index UQ_Clu_StuNo --索引名称
on Student(S_StuNo); --数据表名称(建立索引的列名)添加语法: alter tableName add [unique] index [indexName] on (columnName1,...);
删除: drop index [indexName] on tableName;
查看: show index [indexName] on tableName\G;
使用alter命令:

5.索引结构:
BTree索引
Hash索引
full-text索引
R-Tree索引
6.需要建立索引的情况

7.不需要创建索引的情况

SQL内容补充的更多相关文章
- python 全栈开发,Day93(vue内容补充,VueX)
昨日内容回顾 1. 页面的布局 Vue中使用Bootstrap搭页面 1. 安装 1. npm install bootstrap@3.3.7 -S 2. 使用 1. import 'bootstra ...
- day10上节内容补充和初始函数
1.上节内容补充 文件的删除和修改: #文件的删除和修改 #文件中全部都要修改 # with open('歌词',encoding='utf-8') as f1,open('歌词.bak','w',e ...
- ASP.NET Core 2.2 WebApi 系列【九】使用SignalR (作者:tenghao510 ) 学习及内容补充
原文地址: ASP.NET Core 2.2 WebApi 系列[九]使用SignalR 今天,看到了大牛的这篇博文, 发了一下评论, 我很惊喜, 没想到他很快就回复了我, 而且通过QQ帮助了S ...
- git内容补充-Git零基础快速入门-苏玲
https://git-scm.com/book/zh/v2 git历史 集中式版本控制管理:cvs.svn 分布式版本控制管理:git 基本命令 git config --list --global ...
- DOTNET CORE源码分析之IOC容器结果获取内容补充
补充一下ServiceProvider的内容 可能上一篇文章DOTNET CORE源码分析之IServiceProvider.ServiceProvider.IServiceProviderEngin ...
- Django学习路32_创建管理员及内容补充+前面内容复习
创建管理员 python manage.py createsuperuser 数据库属性命名限制 1.不能是python的保留关键字 2.不允许使用连续的下划线,这是由django的查询方式决定的 ...
- python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数
python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...
- CSS应用内容补充及小实例
一.clear 清除浮动 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- spark 分析sql内容再插入到sql表中
package cn.spark.study.core.mycode_dataFrame; import java.sql.DriverManager;import java.util.ArrayLi ...
随机推荐
- Spring实战:第一个spring mvc项目
我自己看的pdf书中有几个小错误导致项目一直起不来,具体错误是: 此处的名称不一致导致的,此外对于映射@RequestMapping("/"),需要删除创建框架时自带的index. ...
- 1759: 学生信息插入(武汉科技大学结构体oj)(已AC)
#include<stdio.h>struct student { long no; char name[9]; int score;} t;void input(struct stude ...
- 死磕java(1)
java入门 package com.sougn.new1; public class new1 { /** * @param args */ public static void main ...
- HDU_5692_dfs序+线段树
http://acm.hdu.edu.cn/showproblem.php?pid=5692 这道题真的是看了题解还搞了一天,把每条路径后序遍历按1-n重新标号,储存每个点在哪些路径中出现过(l和r数 ...
- HDU_4403
http://acm.hdu.edu.cn/showproblem.php?pid=4403 数值不大,暴力枚举,枚举每一种划分,然后枚举每一种等号位置. #include<iostream&g ...
- DevOps:运维体系建设
简介 运维体系的建设的目的在于方便运维工作,通过自动化.规范化.流程化的操作方法提高运维效率,打造一个安全.可靠.高效.可追踪.可回溯的运维环境,实现一个高可用.高并发.具备高容错.自我修复.故障能快 ...
- 题解 SDOI2010 【栗栗的书架】
\[ Preface \] 看到这题洛谷标签有 主席树 ,还以为是什么二维主席树的玄学做法(雾 \[ Description \] 给出一个 \(R×C\) 的矩阵. 一共 \(m\) 次询问,每次询 ...
- 转载 angularJS filter 过滤器
angularjs中的filter(过滤器) 标签: angularjsfilter 源文地址:http://www.ncloud.hk/技术分享/angularjs中的filter-过滤器/ f ...
- Go语言实现:【剑指offer】二叉搜索树与双向链表
该题目来源于牛客网<剑指offer>专题. 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. Go语言实现: type T ...
- CodeForces 327B 水题。
I - 9 Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Statu ...