MySQL数据库重点概要总结

  • 目录
  • 前言:
    • 1、结构化查询语言(Structured Query Language)简称SQL。
    • 2、基本SELECT语句语法
    • 3、多表链接
    • 4、笛卡尔积
    • 5、ANSI SQL ANSI SQL:1999标准的连接语法
    • 6、单行函数和分组函数的区别:
    • 7、分组函数
    • 8、SQL语句的执行顺序:
    • 9、子查询:
    • 10、Data Manipulation Language ,简称DML,主要用来实现对 数据库表中的数据进行操作
    • 11、多行子查询
    • 总结:

目录

前言:

最近由于工作需要,把数据库的知识复习了一遍。以下是自己总结的一些个人认为比较重要的知识点(有些是个人不太熟的知识点就记下来当笔记吧),如有不足或错误,请大家及时指出。

1、结构化查询语言(Structured Query Language)简称SQL。

2、基本SELECT语句语法

SELECT [DISTINCT]{ |column|expression [alias],...} FROM table; 

3、多表链接

连接是在多个表之间通过 定的连接条件 连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据

  • N个表相连时,至少需要N-1个连接条件

4、笛卡尔积

第一个表中的所有行和第二个表中的所有行都发生连接。

笛卡尔积的写法

SQL> SELECT emp.empno, emp.ename, emp.deptno,
2 dept.deptno, dept.loc
3 FROM emp, d t ep ;

5、ANSI SQL ANSI SQL:1999标准的连接语法

SELECT table1.column, table2.column
FROM table1
[CROSS JOIN table2] |
[NATURAL JOIN table2] |
[JOIN table2 USING ( USING (column name column_name)] |
[JOIN table2
ON(table1.column_name = table2.column_name)] |
[LEFT|RIGHT|FULL OUTER JOIN [LEFT|RIGHT|FULL OUTER JOIN table2
ON (table1.column_name = table2.column_name)];

6、单行函数和分组函数的区别:

这里写图片描述

7、分组函数

– 分组函数是对表中一组记录进行操作,每组只返回一个结果,即首先要对表记录进行分组,然后再进行操作汇总, 每组返回一个结果,分组时可能是整个表分为一组,也可能根据条件分成多组。

  • 分组函数常用到以下五个函数:

• MIN
• MAX
• SUM
• AVG
• COUNT

  • 常用的语法格式:
SELECT [column,] group_function(column)
FROM tab el
[WHERE condition]
[GROUP BY column]
[HAVING group_function(column)expression
[ORDER BY column| group_function(column)expression];
  • 一些错误案例:

这里写图片描述

8、SQL语句的执行顺序:

这里写图片描述

  • SELECT语句执行过程:

– 1.通过FROM子句中找到需要查询的表 子句中找到需要查询的表;
– 2.通过WHERE子句进行非分组函数筛选判断;
– 3.通过GROUP BY子句完成分组操作;
– 4.通过HAVING子句完成组函数筛选判断;
– 5.通过SELECT子句选择显示的列或表达式及组函数;
– 6.通过ORDER BY子句进行排序操作。

  • 案例

这里写图片描述
这里写图片描述
这里写图片描述

9、子查询:

这里写图片描述

子查询语法:

SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);

• 括号内的查询叫做子查询,也叫内部查询,先于主查询执行
• 子查询的结果被主查询(外部查询)使用
• expr operator包括比较运算符。
单行运算符:>、=、>=、<、<>、<=
多行运算符: IN、ANY、ALL
• 子查询可以嵌于以下SQL子句中:
–WHERE子句
–HAVING子句
–FROM子句

这里写图片描述
• 子查询使用指导
–子查询要用括号括起来
–将子查询放在比较运算符的右边
–对于单行子查询要使用单行运算符 (单行子查询是针对子查询的返回值只有一个)
–对于多行查询要使用多行运算符

错误案例(子查询中使用分组函数返回多个结果):
这里写图片描述

10、Data Manipulation Language ,简称DML,主要用来实现对 数据库表中的数据进行操作

  • 索引( INDEX ):

– 是对数据库表中一个或多个列的值进行排序的一种数据库对象
– 在数据库中,通过索引可以加速对表的查询速度;

索引缺点
• 占用空间;
• 降低DML的操作速度;

适合创建索引情况
• 表数据量很大
• 要查询的结果集在2%-4%左右
• 经常用来做WHERE条件中的列或者多表连接的列
• 查询列的数据范围分布很广
• 查询列中包含大量的NULL值,因为空值不包含在索引中

不适合创建索引情况
• 数据量很小的表
• 在查询中不常用来作为查询条件的列
• 频繁更新的表
• 索引列作为表达式的一部分被使用时,比如常查询的条件是SALARY*12 SALARY*12,此时在SALARY列上创建索引是没有效果的
• 查询条件中有单行函数时,用不上索引。

11、多行子查询

–子查询返回记录的条数 可以是一条或多条。
–和多行子查询进行比较时,需要使用多行操作符,多行操作符包括:
• IN
• ANY
• ALL
–IN操作符和以前介绍的功能一致,判断是否与子查询 的任意一个返回值相同。(单行子查询操作符不能接子查询中含有分组函数执行语句的情况)
这里写图片描述
ANY的使用
– ANY:表示和子查询的任意一行结果进行比较,有一个满足 条件即可。
• < ANY:表示小于子查询结果集中的任意 表示小于子查询结果集中的任意一个 ,即小于最 大值就可以。
• > ANY:表示大于子查询结果集 个 中的任意一 ,即大于最小值就可以。
• = ANY:表示等于子查询结果中的任意一个,即等于谁都 可以,相当于IN。
这里写图片描述
• ALL的使用
– ALL:表示和子查询的所有行结果进行比较,每一行必须都 满足条件。
• < ALL:表示小于子查询结果集中的所有行 表示小于子查询结果集中的所有行,即小于最小 值。
• > ALL:表示大于子查询结果集 行 中的所有 ,即大于最大 值。
• = ALL :表示等于子查询结果集中的所有行,即等于所有值,通常无意义。
这里写图片描述

总结:

SQL这块需要掌握以下这些知识点:

  • 掌握单表查询、多表查询、分组、子查询等查询方法,能写出相对复杂的查询语句,重点中的重点
  • 掌握Oracle数据库常用的单行函数及分组函数。
  • 掌握插入数据、修改数据、删除数据语句。
    总结成一句话就是能够利用SQL进行数据分析就OK了。
    除此之外还需要了解一些相关的数据库概念。这里就不一一列举了。如果各位网友看完之后想练下手,(含有各种版本数据库的建表数据和对应的案例练习题以及答案)
    请参考:https://blog.csdn.net/qq_16633405/article/details/78483269

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《MySQL排错指南》——1.9 许可问题

本节书摘来自异步社区出版社《MySQL排错指南》一书中的第1章&#xff0c;第1.9节&#xff0c;作者&#xff1a;【美】Sveta Smirnova&#xff08;斯维特 斯米尔诺娃&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.9 许可问题 MySQL有复杂的…

毕业半年,码过5个城市

时间飞逝&#xff0c;半年前我还在想我的毕业设计要怎么做&#xff0c;还在担心自己的答辩能够拿多少分&#xff0c;而此刻我正在成都写我喜欢的代码&#xff0c;过着我想过的生活。毕业半年&#xff0c;码过5个城市&#xff0c;从厦门->太原-》合肥-》北京-》成都。2016是我…

《Pro/ENGINEER野火版5.0从入门到精通》——2.5 设置零件单位

本节书摘来自异步社区《Pro/ENGINEER野火版5.0从入门到精通》一书中的第2章&#xff0c;第2.5节&#xff0c;作者 暴风创新科技&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.5 设置零件单位 由于不同国家单位制的不相同&#xff0c;在企业间合作或沟通…

机器学习之必知开源数据集

之前看到的不错的文章&#xff0c;玩机器学习数据是关键&#xff0c;有了这些东西&#xff0c;你就不必再为没有数据而苦恼。 转自&#xff1a;https://www.toutiao.com/i6432197108580745730/ 目录UCIGoogleTrendsKaggleAWS公用数据集ImagenetMINIST/r/数据集其他数据集 目录…

《计算机科学概论》—第3章3.3节文本表示法

本节书摘来自华章出版社《计算机科学概论》一书中的第3章&#xff0c;第3.3节文本表示法&#xff0c;作者&#xff3b;美]内尔黛尔&#xff08;Nell Dale&#xff09;约翰路易斯&#xff08;John Lewis&#xff09;&#xff0c;更多章节内容可以访问云栖社区“华章计算机”公众…

经典技术面试指南

目录计算机基础知识数据结构算法操作系统计算机网络数据库海量数据处理C语言基础Java基础Java高级Java Web设计模式知识的综合能力工具使用项目相关技术热情表达能力思考方式其他推荐阅读 目录 最近看到一份不错的面试总结&#xff0c;也是每位程序猿都应该掌握的基础&#x…

Linux 共享内存详解一

共享内存段被多个进程附加的时候&#xff0c;如果不是所有进程都已经调用shmdt&#xff0c;那么删除该共享内存段时&#xff0c;会出现一个临时的不完整的共享内存段&#xff08;key值是0&#xff09;&#xff0c;无法彻底删除。只有当所有进程都调用shmdt&#xff0c;这个临时…

Storm编程模型总结

目录前言&#xff1a;1、Storm编程模型2、对应的的WordCount案例总结&#xff1a; 目录 前言&#xff1a; 对于Storm的编程模型有必要做一个详细的介绍&#xff08;配合WC案例来介绍&#xff09; 1、Storm编程模型 上图中组件的解释&#xff1a; DataSource&#xff1a;外…

13_观察者模式

【观察者模式】 也叫作发布/订阅模式&#xff0c;使用较为频繁。 定义了对象间一种一对多的依赖关系&#xff0c;当一个对象改变状态时&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新。 观察者模式由以下几个角色组成&#xff1a; * Subject 被观察者 定义被观察者…

《黑客秘笈——渗透测试实用指南》—第2章2.3节 外部或内部的主动式信息收集...

本节书摘来自异步社区《黑客秘笈——渗透测试实用指南》一书中的第2章2.3节 外部或内部的主动式信息收集&#xff0c;作者【美】Peter Kim&#xff08;彼得 基姆&#xff09;,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.3 外部或内部的主动式信息收集黑客秘笈——…

Storm集群的安装及简单使用

目录前言&#xff1a;1、集群部署的基本流程2、Storm常用操作命令&#xff08;了解&#xff09;3、Storm集群的进程及日志熟悉&#xff08;知道对应的日志的位置出了问题知道去哪找原因&#xff09;4、Storm源码目录分析&#xff08;重要&#xff09;总结&#xff1a; 目录 前…

Storm的通信机制

目录前言&#xff1a;1、Worker进程间通信原理2、Worker进程间技术(Netty、ZeroMQ)3、Worker 内部通信技术(Disruptor)总结&#xff1a; 目录 前言&#xff1a; 这篇文章&#xff0c;博客主要介绍下Storm中Worker进程间和进程内部通信的原理和技术。整篇内容仅供了解&#x…

Storm程序的并发机制原理总结

文章目录目录前言&#xff1a;1、概念2、配置并行度总结&#xff1a;目录 前言&#xff1a; 为了在以后的实践中提高Storm程序执行的效率&#xff0c;我们还是有必要了解下对应的Storm程序的并发机制。&#xff08;哈哈&#xff0c;虽然以博主小菜鸟的水平还没有接触到这种提…

★数学上最大的数是多少?

数学上最大的数是多少&#xff1f; 怪罗科普 收藏(282)| 阅读(117678)人类已经使用数长达千年之久。普遍认为&#xff0c;数的概念最先源于史前人类开始使用手指进行计数。这最终演变成符号语言&#xff0c;然后在沙子、墙壁和木头等物体上作标记。 我们已经向前发展了一大步&…

Storm任务提交过程及目录树介绍

目录前言&#xff1a;1、Storm 任务提交的过程2、Storm相关的目录树总结&#xff1a; 目录 前言&#xff1a; 对于任何一个组件来说&#xff0c;了解它相关的任务提交的过程是非常有必要的&#xff08;毕竟生产中遇到一些Bug时&#xff0c;你如果知道内部执行的过程&#xf…

《Adobe InDesign CS6中文版经典教程》—第1课1.5节修改文档的缩放比例

本节书摘来自异步社区《Adobe InDesign CS6中文版经典教程》一书中的第1课1.5节修改文档的缩放比例&#xff0c;作者【美】Adobe公司,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.5 修改文档的缩放比例Adobe InDesign CS6中文版经典教程InDesign中的控件让用户能…

大数据之Kafka入门简介

目录前言&#xff1a;1、Kafka是什么2、JMS是什么3、Kafka核心组件&#xff08;重点&#xff09;总结&#xff1a; 目录 前言&#xff1a; 作为流式计算中的一个组件&#xff0c;对于它的组成以及运行的原理&#xff0c;学习者也需要相关的了解。以下主要简单介绍了kafka是什…

oracle的安装与plsql的环境配置

1&#xff0c;首先得有oracle的安装包和plsql的安装包&#xff0c;安装包地址可见百度云 http://pan.baidu.com/s/1miTqhmg 2.解压下来进入0817账套&#xff0c;找到set.exe文件&#xff0c;双击安装即可 注意的是安装的时候有两个目录是要自己创建的&#xff0c;否则安装不成功…

如何在Docker容器中运行GUI程序

如何在Docker容器中运行GUI程序 各位&#xff0c;今天我们将学习如何在Docker之中运行GUI程序。我们可以轻易地在Docker容器中运行大多数GUI程序且不出错。Docker是一个开源项目&#xff0c;提供了一个打包、分发和运行任意程序的轻量级容器的开放平台。它没有语言支持、框架或…

【python】Get与Post的区别?(面试官最想听到的答案)

GET和POST是HTTP请求的两种基本方法&#xff0c;要说它们的区别&#xff0c;接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中&#xff0c;POST通过request body传递参数。 你可能自己写过无数个GET和POST请求&#xff0c;或者已经看过很多权威网站总结出…