数据处理通常情况下使用EXCEL,但也有其劣势,当数据量过大(10万条以上)就无法进行处理,现今数据量动辄几十上百万量的数据,就需要使用更高级的数据处理工具——DBMS。

学习的教材选择的是日本作家MICK所著的《SQL基础教程》。

一.思维导图

二.课程内容

1.SQL

DBMS(database management system):数据管理系统,能够实现多个用户同时安全简单地操作大量数据。

DBMS种类:HDB(层次数据库) RDB(关系数据库) OODB(面向对象数据库)

目前应用最广泛的是RDB,本书学习的就是这一类型,其他类型暂不作了解

SQL:用来进行操作关系数据库的语言。

SQL语句类型:DDL 数据定义语言

DCL 数据控制语言

DML数据操纵语言:用来查询或变更表中的记录

DML指令:SELECT(查询)INSERT(插入)UPDATE(更新)DELETE(删除)

实际使用90%都是DML类型,本书也是主讲这一类型。

创建数据库:a.安装MYSQL服务器端 安装Navicat Premium客户端 安装过程不再赘述,详 情参考猴哥教程:MYSQL猴子:超级详细的mysql安装指南​zhuanlan.zhihu.com

Navicat Premium猴子:Mysql客户端:Navicat安装教程及问题汇总​zhuanlan.zhihu.com

b.数据库创建,CREATE DATABASE

c.表的创建,CREATE TABLE,......PRIMARY KEY;

2.基础查询

a.SELECT,通过select语句查询并选取出必要数据,针对表中的列;SELECT语句是由select字句和from字句组成

语法:SELECT FROM

b.代表所有列,例如:select * from product

c.算数运算符,+ - * /,四则运算加减乘除,运算是以行为单位执行的,注意所有包含NULL(空值)的结算最终结果都为空值

d.比较运算符,= <> >= <= > < ,<>为不等于,需要注意不等号在左,等号在右,另外不能对NULL进行比较

e.逻辑运算符,NOT AND OR,NOT需要和其他查询条件组合使用,用力否定某一条件,在WHERE字句中使用AND和OR可以对多个查询条件进行组合,AND是逻辑积OR是逻辑和

3.聚合和排序

a.聚合,对表进行多种参数查询时,需要使用聚合函数来计算结果,COUNT(行数) SUM(和)AVG(平均值)MAX(最大值)MIN(最小值),SUM和AVG只适用于数值类型的列,MAX和MIN适用于所有数据类型的列

b.分组(行),使用GROUP BY字句进行分组

语法:select ,......

from

group by ,......

d.HAVING字句,对b分组后的结果按条件进行筛选

语法:select ,......

from

group by ,......

having

e.排序,ORDER BY,在SELECT字句末尾加上指定排列顺序,ASC代表升序,DESC代表降序,通常情况下没有标注默认ASC,需要指定可在列名后面标注

语法:ORDER BY ASC/DESC;

3.复杂查询

a.视图,实际上是SELECT语句,进行优化所使用,特点是能节省数据设备空间,另外创建视图更方便使用,直接使用SELECT语句就能得到结果

创建:CREATE VIEW视图名称......

AS

使用视图查询:先执行定义视图的SELECT语句,再根据结果在FROM子句中使用视图的SELECT语句

限制:定义视图时不能使用ORDER BY 字句,视图和表需要同时进行更新,通过汇总得来视图无法更新

b.视图的子查询,通俗来讲就是一次性的SELECT语句,直接用于FROM字句当中,用完也就消失了。子查询作为内层查询会首先执行,原则上子查询需要设定名称,其他情况书中没有说明暂时不研究,使用AS关键字来设定

e.标量子查询,标量即单一的意思,能够使用常数或者列名的地方都可以使用,通常上运用在比较运算符之中,如= >这类,返回的是某一行某一列的具体值,SELECT语句更好运算。查询顺序是从内到外,注意标量子查询有且只有一个结果

f.关联子查询,细分组内进行比较时子查询结果大于1个,就要用到关联子查询,使用时需要在表所对应的列名之前加上表的别名,以记述

4.函数、谓词、CASE表达式

a.函数

算数:加减乘除(+-*/)

ROUND 四舍五入函数,ROUND(对象数值,保留小数的位数),该函数对于数据的一致化处理有很大帮助

ABS绝对值函数,去掉数据中的负号

MOD求余函数,除法余数,MOD(17,4)AS MOD_FB,即1

字符串函数:||拼接函数,合并多个字符串使用,MYSQL中用不了,了解下即可

LENGTH字符串长度函数,就是计算该字符串包含多少个字符时使用,目前能想到的就是数据一致化时使用

LOWER函数,转换小写语法,

UPPER函数,转换大写语法,二者均仅对英文字母场合使用

REPLACE函数,字符串的替换,REPLACE(对象字符串,替换前的字符串,替换后的字符串)

SUBSTRING函数,截取字符串,SUBSTRING(对象字符串 FROM 截取起始位置 FOR 截取的字符数)

日期函数:CURRENT_DATE 当前日期

CURRENT_TIME 当前时间

CURRENT_TIMESTAMP 同时得到日期和时间

EXTRACT 截取日期元素 EXTRACT(日期元素 FROM 日期)

转换函数:CAST CAST(转换前的值AS想要转换的类型)通常会用在计算NULL(空值)中,将NULL转换为其他值就不会得出NULL结果

CASE函数:CASE表达式是一种运算函数,在区分情况下使用,称作(条件)分支,类似于IF语句,分为简单和搜索两种表达式,看看功能较全的搜索CASE表达式

语法:CASE WHEN THEN

WHEN THEN

WHEN THEN . . .

ELSE END

整个一块可以把他看做是一个确切的值,是一个表达式,可以写在SELECT语句中的任意位置

b.谓词:

LIKE谓词(模糊查询),用于字符串部分一致查询,分为三种类型,前方、中方、后方,例如,11134、31114、341111,查询使用使用%符号,“111%”即选取以111开头的所有字符串,其他类推

BETWEEN谓词,进行范围查询,其结果会包含临界值,如不想包含需要使用比较运算符

IN谓词,是一种简便的OR使用方法,就是书写更简洁,表达结果都相同,相反结果可以使用NOT IN 来否定

EXIXT谓词,这里暂时理解不了,慢慢攻克

5.集合运算

a.表的加减法:UNION(并集),表1+表2,会自动删除重复的记录,如果要保留需要注意,首先两张表的记录的列数相同,其次运算的列的类型也得一致,最后进行排序ORDER BY仅需要最后使用即可,不需要分表使用

TNTERSECT(交集),选取两张表中相同的记录,其次运算的列的类型也得一致,最后进行排序ORDER BY仅需要最后使用,不需要分表使用

TNTERSECT(交集),选取两张表中相同的记录,用法同上

EXCEPT(差集),选取两张表不同的记录,用法同上

b.联结(列): 添加其他表中的列

内联结(INNER JION),应用最广泛的联结运算,要点:1进行联结时在FROM字句中使用多张表。2在进行内联结时必须使用ON子句,写在FROM和WHERE字句之间,ON子句代表所指定的联结键,即相同的列名3在SELECT子句中需要按照“.”的格式进行书写。

外联结(OUTER JOIN) ,使用方法同上,结果包含NULL,内联结并不包含

交叉联结(CROSS JOIN),结果为积,没啥实际意义且要求计算设备性能优秀,故不研究了。

6.SQL高级处理和应用程序连接数据库

暂时不进行学习了,先把基础知识理解透并熟练运用,之后再进行SQL高阶进修,应用程序看情况,如有需要可以进行学习。

7.总结

SQL语句主干:SELECT.....(查什么) 5(执行顺序)

FROM (从哪里得来数据) 1

WHERE(处理条件) 2

GROUP BY(分组) 3

HAVING(对分组结果按条件过滤) 4

ORDER BY (对结果排序) 6

三.练习题

1.SQLzoo在线测验

2.常见面试题50道

这部分内容之后会单独发出来,还需要再琢磨下。

mysql集合运算_SQL基础教程(mick)学习相关推荐

  1. SQL基础教程MICK版 --第四章总结

    SQL基础教程MICK版 ···第四章总结 DML操作.事务的概念.性质.和表现形式 DML操作之INSERT DML操作之UPDATE DML操作之DELETE.TRUNCATE 事务的概念,DBM ...

  2. SQL基础教程MICK版 第一章总结

    SQL基础教程MICK版 ···第一章总结 数据库的结构 二维表 SQL操作大概的内容 要注意的规则 表的创建 表的删除与表定义的更新 表的数据键入 数据库的结构 最常见的系统结构就是 客户端\服务器 ...

  3. SQL基础教程MICK版 ···第二章总结

    SQL基础教程MICK版 ···第二章总结 前期准备 SELECT 语句基础 算术运算符.比较运算符和 NOT运算符 特殊的NULL 逻辑运算符 前期准备 应用第一章学的 建一个数据库 在该库中 建立 ...

  4. SQL基础教程MICK版 ···第七、八、九章总结

    SQL基础教程MICK版 ···第七.八.九章总结 表的联结 -- 内联结.外联结 表的合并--- UNION (其他操作对MYSQL不适用.没有看) 关于ROLLUP---显示小计和总计 驱动的概念 ...

  5. (尚硅谷java零基础教程)学习笔记day7/8-数组

    1.数组的概述 1.1 定义 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 1.2 数组的相关概念 数组名 元素 数组的索引 ...

  6. 零基础学前端之HTML全套基础教程【学习笔记】

    [前端总路线学习笔记] 文章目录 HTML全套基础教程[学习笔记] 1.系统结构 2.软件环境准备 3.HTML概述 4. 我的第一个HTML 5. HTML的基本标签 6.HTML的实体符号 7. ...

  7. 《汇编语言基础教程》 学习实录

    <汇编语言基础教程> 学习实录 第3章 算术运算指令 第4章 选择结构 第5章 迭代结构 第6章 逻辑运算指令.移位指令.循环移位指令和堆栈 书目:<Guide to assembl ...

  8. SQL基础教程MICK版 ···第五章总结

    SQL基础教程MICK版 ···第五章总结 视图 子查询 标量子查询 标量子查询.没有用标量子查询.常量的比较总结 关联子查询 自己的困惑 视图 1.视图的概念 ​ 1)从SQL的角度来看视图就是一张 ...

  9. SQL基础教程MICK版 ···第三章总结

    SQL基础教程MICK版 ···第三章总结 SELECT语句 关于上表的语句顺序 和 执行顺序 完整的语法结构 GROUP BY需要注意的点 用于限定GROUP BY的 HAVING子句 关于ORDE ...

最新文章

  1. crontab定时巡检使用
  2. /etc/fstab自动挂载文件详解
  3. 娓娓道来Promise
  4. 洛谷p2234/BZOJ1588 [HNOI2002]营业额统计
  5. Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity
  6. 校园PHP表白墙程序源码
  7. CentOS7.5 firefox Flash插件更新
  8. Spring Cloud 个人心得 理论
  9. 安卓自动滑屏脚本_【按键精灵】开发抖音全自动养号脚本!可实现自动滑屏
  10. 记录自己的第一个稍微有趣一点的小游戏
  11. 微软.NET设计上的一个错误(从.NET1.1--4.0),不知道以后.NET会不会修复这个错误...
  12. 新元宇宙每周连载《地球人奇游天球记》第十五回土星种菜
  13. 微信删除的聊天记录怎么恢复,教你两个方法
  14. [强网杯 2019]随便注 —— 堆叠注入
  15. 关闭/开启“此电脑”左边的导航栏win10
  16. 什么是SAP HANA?
  17. 中午午睡失眠,写了一些备忘
  18. c语言怎么键盘输入数据0停止,《C语言》上机考试题目.PDF
  19. 【数值分析×机器学习】以SVD的分解形式进行深度神经网络的训练(逐渐熟练)
  20. 彩涂钢板行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)

热门文章

  1. Quokka.js and Wallaby.js Crack
  2. OpenJudge_P7833 幂的末尾
  3. 记一次被QQ邮箱钓鱼邮件事件
  4. Windows搭建web站点:免费内网穿透发布至公网 1-2
  5. wallhaven壁纸下载
  6. linux下划线后面加变量名,Shell中下划线_与变量的关系
  7. 深度学习,提高分类精度
  8. Box2D物理引擎入门
  9. mx250显卡天梯图_MX250和150差别大吗?MX250和MX150区别对比 (全文)
  10. js设计模式之代理模式