• 目录
  • 前言:
    • 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

MySQL数据库重点概要总结相关推荐

  1. mysql数据库电话号码类型,mySQL数据库一:数据类型

    Mysql数据库的数据类型.索引.锁.事务和视图 Mysql数据库的数据类型.索引.锁.事务和视图 数据的类型 1)数据类型: 数据长什么样? 数据需要多少空间来存放? 系统内置数据类型和用户定义数据 ...

  2. mysql 事务 不同库_MYSQL数据库重点:事务与锁机制

    一.事务 一组连续的数据库操作,每一次操作都成功,整个事务就成功,只要有一步出错,整个事务就失败: MySQL事务与存储引擎相关 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB: ...

  3. 【第一篇】Mysql数据库详解【重点】

    1.1 Mysql简介   MySQL是一个关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. 1.1.2 SQL语句的分类 D ...

  4. mysql数据库取奇数行数据_查询数据库中的奇数行和偶数行

    功能奇数次执行和偶数次执行时的结果不同的故障复盘 场景:将数据库查询到的数据,写入一个xls文件.完成后,多点几次,发现一个问题,偶数次生成的文件比较小,打开一看,里面只有一行,只有标题,没有内容.分 ...

  5. mysql query 优化_第 8 章 MySQL 数据库 Query 的优化

    前言: 在之前"影响 MySQL 应用系统性能的相关因素"一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 Query 语句的优化 ...

  6. Mysql数据库查询好慢,除了索引,还能因为什么?

    mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题. 遇到这种问题,我们一般也会想到是因为索引. 那除开索引之外,还有哪些因素会导致数据库查询变慢呢? 有哪些操作,可 ...

  7. 01 MySQL数据库 MySQL入门

    01 MySQL数据库 从今天开始,我们将进入系列课程的 第四模块 的学习,这个模块就是给大家讲解MySQL数据库. 以前,在开发程序时,我们会把很多的数据和信息存储到某个文件夹中的文件中,例如:us ...

  8. 金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(3. MySQL 数据库移植实战)

    3. MySQL 数据库移植实战 由于 KingbaseES 利用 KDTS-PLUS 等多种工具简化移植过程. 本节重点描述了在实际应用中移植一个 MySQL 数据库系统的完整过程,以及其中的主要移 ...

  9. python用django连接mysql_三分钟了解Django如何连接Mysql数据库

    处理用户注册请求.Django连接MysqL数据库相关配置.数据库迁移命令: my_Dproject/app01/views.py    在views函数文件中添加register函数,来处理用户注册 ...

最新文章

  1. Android系统源码学习——ramdisk.img、system.img、userdata.img三个文件介绍
  2. python项目中requirements的巧用(一键导入所有安装包)
  3. Oracle笔记 八、PL/SQL跳转/判断/循环语句块
  4. [HAOI2010]订货
  5. Vue路由开启keep-alive缓存页面
  6. mysql 分组查出来横向展示_MySQL汇总分析(group by)
  7. java语法糖效率高吗_打包 Java将持续向“高糖”方向发展,你真的了解Java语法糖吗? _好机友...
  8. 3位黑洞发现者获2020年诺贝尔物理学奖
  9. 安装python扩展库时只能使用pip_使用pip安装Python扩展库的方法
  10. [python]python 动态调用模块类方法
  11. 手机图形计算器matlab,科学图形计算器 Mathlab
  12. 操作系统课程设计-进程管理-c++描述
  13. PPT导出图片质量太差?简单操作直接导出印刷质地图片
  14. 软件测试人力面试题(含答案)
  15. iOS微信第三方登录实现
  16. 达芬奇密码 第八十二章
  17. 【C++学习笔记】函数基础和参数传递
  18. 社会心理学第四章 态度与行为
  19. WEB前端包含哪些内容
  20. 华为MCR·第7篇:客户关系规划五步法

热门文章

  1. sql:无法解决 equal to 操作中 Chinese_PRC_CI_AS 和 Chinese_Taiwan_Stroke_CI_AS 之间的排序规则冲突。...
  2. Service-Oriented Architecture,SOA(转)
  3. AC日记——简单密码 openjudge 1.7 10
  4. Linux常用命令之wget
  5. 壊小子的学习【日常阅读篇】(三)常规学习类图书
  6. file_exists函数总是返回false
  7. ASP.NET MVC3源码下载
  8. c# 编程学习(二)
  9. IMDb、烂番茄、MTC、各种电影行业评分名字整理
  10. redux 源码详解