删库跑路?不如老实操作!21天SQL精通教程
不知何时起,大家轻而易举地就打算“删库跑路”,也不知道何时起大家纷纷放弃学习数据库 ,当然就目前的情况而言,数据库还是和生活息息相关的,本文主要针对SQL的基础操作以及在Excel中的接入方法作展开,附以一些NoSQL的小知识。
1. SQL的背景知识
2. NoSQL VS SQL
3. SQL的基本语句
4. 在Excel中使用SQL
SQL的背景知识
SQL(Structured Query Language)是结构化的查询语言,同时也是一种编程语言,主要用于维护关系数据库的增删查改,相对于01011010的二进制数字或mov等机器码指令,SQL无疑还是语义化的。关系数据库主要是通过数据库表来维护数据库之间的联系的,相对来说规整但复杂。
数据库
数据库是用于存放数据的地方,可以称为应用的基石。在当下这个数据驱动的软件发展趋势下,数据库变得简单而又困难。因为可视化页面等的出现,操作数据库变得越来越简单;但与此同时快速在数据库中完成所需操作却变得困难,毕竟数据量非常大。
同时,目前还衍生出了一种NoSQL(Not only SQL)的数据库,如Mango DB、Redis等,泛指非关系数据库,在我看来,一些本地化存储如单纯的一个文件存储,程序在运行过程中读取该文件之后再复写上去,这实际上也算是No SQL的一种表现形式。
NoSQL VS SQL
不知我对两种数据库的维护方式的表述能否让各位对NoSQL以及SQL有直观的认知,下面我们将对比一下两种数据库的区别:
数据库的维护方式不同
SQL数据库往往使用数据库表维护之间的关系,如果两张表甚至数张表之间需要有联系,此时需要通过外加键关联其他数据库表,而NoSQL除了支持这种规范操作外,还支持直接在A表中插入B表的相关内容。
JOIN查询的弱化
在描述JOIN查询的区别后还要先介绍一下什么是JOIN操作。
JOIN操作是和第一点相关的,主要是为了能在表A中操作一下访问到表B,这样做比起直接访问表B要快一些。但NoSQL并未提供此方法来访问几个表,所以在NoSQL中大多数据都以第一点中非规范化的形式来存储数据。
还有其他数点差别就不一一列出了,欢迎各位自行了解并在实践中通过对比来加深印象。
数据库的基本操作
数据库其实是一门挺艰深的学问,在上世纪90年代左右曾经出现过井喷(就像今日的机器学习一般)。对于科研工作者或者应用的设计者而言,除了要掌握数据库的基本操作外,还需要掌握数据库的原理,以便尽可能科学迅速地建表、维护数据库甚至重新书写数据库。但一般而言,掌握基本操作其实已经能为工作带来非常大的便利,学习难度在于是否能自如转换自然语言与SQL语言,接下来将介绍一些常见的基本操作。
关系数据库中也分好几种类型,下面将利用MySQL 5.7(不是最新版)来为大家做介绍。
数据库的数据从何而来
在学习的过程中我们可能无法利用公司的真实数据进行各种骚操作,此时我们便需要一些模拟数据。模拟数据的生成方式主要有两种:
1. Excel 表格导入
2. 利用各种生成测试数据的脚本如testdata进行数据生成
插入数据
在名为"Books"的数据库表中插入一条"编号为1,书名为JavaScript高级程序设计,由机械出版社出版售价为38元"的数据。
更新数据
在名为"Books"的数据库表中更新书名为"JavaScript高级程序设计"的这条数据中的价格,改为58元。
这里有两个地方需要注意:
1. 为什么能针对书名找到唯一对应的数据?
在此需要引入一个"超键"的概念(是的不要笑 ),如果类比一条数据是人的话,那么这个主键就是我们的身份证号码,甚至比它更严谨,也就是能唯一识别数据的标识。
2. 书名有可能是重的,那么有没有更好的方式来实现该表中唯一性?
书名有可能是重的,例如《霸道总裁爱上我》和《霸道总裁爱上我》,但如果是出版书籍的话,则有ISBN这唯一识别的标识,针对这个数据库表,可以通过添加一列来记录ISBN以此实现超键的唯一性。
删除数据
在删除操作中,由于数据库是非常重要的,所以删除权限应当谨慎分配,同时也应该做好镜像备份以及行为记录,这样子才能在误删除的操作或无意恶意删除数据后及时恢复同时追究责任人的相关责任。
这里涉及到一个职业操守的问题,虽然嘴上可以说说"删库跑路",但每一个能对数据进行操作的人员都应当负起对数据的维护责任,不然数据泄露、数据被恶意删除等事件频发将会极大地影响个人、公司的形象以及造成恶劣的社会影响。
嵌套查询
把Students数据表中名为"Lucy"的这些数据作为Name(假表),再将Name表的所有数据返回。其中,*多意为所有的意思。
内连接
通过键联系学生表与专业表,在学生的专业ID与专业列表ID一致的前提下,返回学生的ID、姓名以及专业名(Majors.Name的别名)。
这些都是基本的数据库操作,更艰难的如视图等因为使用场景不多见在此略过。
在Excel中使用SQL
前面说这么多其实都是在介绍SQL而已,但很多人实际上并不会直接操作数据库本身,而是会通过其他方式如Excel表格来使用SQL语句,下面介绍怎么样在Excel表格中使用SQL语句。
和其他Excel表格建立连接
在表格中使用SQL语句
下面是静态解析版。
那么,该如何把数据库的数据导出成Excel表格呢?
这个问题就留待大家思考查阅资料吧。
鸟巢时代
校验提示文案
小草fms
校验提示文案
starry1983
校验提示文案
hunk
nosql和关系型的使用场景完全不同。
要不要顺便讲讲python,培训越来越火了
校验提示文案
语数外理化生政史地
校验提示文案
jasy
校验提示文案
屋顶看小说
校验提示文案
风吹着鱼
校验提示文案
矢泽妮可
校验提示文案
光刃小屋
校验提示文案
jelly仔
校验提示文案
hdzlhr
校验提示文案
马虎兄
校验提示文案
入夏
校验提示文案
张萌萌是也
校验提示文案
无名lt
校验提示文案
Fear_Me
校验提示文案
命运
校验提示文案
[已注销]
校验提示文案
ooOo0OoOooO
校验提示文案
喜欢布丁的小新
校验提示文案
小牛1
校验提示文案
lilyzq
校验提示文案
就是希曼
校验提示文案
乀小木
校验提示文案
瘟神蜀黍
校验提示文案
三闾大夫
校验提示文案
怕贼偷
校验提示文案
淡定的小C
校验提示文案
碧海兰
校验提示文案
ooOo0OoOooO
校验提示文案
胖筱汁
校验提示文案
鸟巢时代
校验提示文案
值友1852548834
校验提示文案
花泽野菜
校验提示文案
yooceii
校验提示文案
nick567
校验提示文案
Johntitor
校验提示文案
zeroOOzero
校验提示文案
巨大直
校验提示文案