mysql集合运算_SQL基础教程(mick)学习
数据处理通常情况下使用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)学习相关推荐
- SQL基础教程MICK版 --第四章总结
SQL基础教程MICK版 ···第四章总结 DML操作.事务的概念.性质.和表现形式 DML操作之INSERT DML操作之UPDATE DML操作之DELETE.TRUNCATE 事务的概念,DBM ...
- SQL基础教程MICK版 第一章总结
SQL基础教程MICK版 ···第一章总结 数据库的结构 二维表 SQL操作大概的内容 要注意的规则 表的创建 表的删除与表定义的更新 表的数据键入 数据库的结构 最常见的系统结构就是 客户端\服务器 ...
- SQL基础教程MICK版 ···第二章总结
SQL基础教程MICK版 ···第二章总结 前期准备 SELECT 语句基础 算术运算符.比较运算符和 NOT运算符 特殊的NULL 逻辑运算符 前期准备 应用第一章学的 建一个数据库 在该库中 建立 ...
- SQL基础教程MICK版 ···第七、八、九章总结
SQL基础教程MICK版 ···第七.八.九章总结 表的联结 -- 内联结.外联结 表的合并--- UNION (其他操作对MYSQL不适用.没有看) 关于ROLLUP---显示小计和总计 驱动的概念 ...
- (尚硅谷java零基础教程)学习笔记day7/8-数组
1.数组的概述 1.1 定义 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 1.2 数组的相关概念 数组名 元素 数组的索引 ...
- 零基础学前端之HTML全套基础教程【学习笔记】
[前端总路线学习笔记] 文章目录 HTML全套基础教程[学习笔记] 1.系统结构 2.软件环境准备 3.HTML概述 4. 我的第一个HTML 5. HTML的基本标签 6.HTML的实体符号 7. ...
- 《汇编语言基础教程》 学习实录
<汇编语言基础教程> 学习实录 第3章 算术运算指令 第4章 选择结构 第5章 迭代结构 第6章 逻辑运算指令.移位指令.循环移位指令和堆栈 书目:<Guide to assembl ...
- SQL基础教程MICK版 ···第五章总结
SQL基础教程MICK版 ···第五章总结 视图 子查询 标量子查询 标量子查询.没有用标量子查询.常量的比较总结 关联子查询 自己的困惑 视图 1.视图的概念 1)从SQL的角度来看视图就是一张 ...
- SQL基础教程MICK版 ···第三章总结
SQL基础教程MICK版 ···第三章总结 SELECT语句 关于上表的语句顺序 和 执行顺序 完整的语法结构 GROUP BY需要注意的点 用于限定GROUP BY的 HAVING子句 关于ORDE ...
最新文章
- crontab定时巡检使用
- /etc/fstab自动挂载文件详解
- 娓娓道来Promise
- 洛谷p2234/BZOJ1588 [HNOI2002]营业额统计
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity
- 校园PHP表白墙程序源码
- CentOS7.5 firefox Flash插件更新
- Spring Cloud 个人心得 理论
- 安卓自动滑屏脚本_【按键精灵】开发抖音全自动养号脚本!可实现自动滑屏
- 记录自己的第一个稍微有趣一点的小游戏
- 微软.NET设计上的一个错误(从.NET1.1--4.0),不知道以后.NET会不会修复这个错误...
- 新元宇宙每周连载《地球人奇游天球记》第十五回土星种菜
- 微信删除的聊天记录怎么恢复,教你两个方法
- [强网杯 2019]随便注 —— 堆叠注入
- 关闭/开启“此电脑”左边的导航栏win10
- 什么是SAP HANA?
- 中午午睡失眠,写了一些备忘
- c语言怎么键盘输入数据0停止,《C语言》上机考试题目.PDF
- 【数值分析×机器学习】以SVD的分解形式进行深度神经网络的训练(逐渐熟练)
- 彩涂钢板行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)