复习:
数据和数据库
所谓数据库,简单的说,就是:存放数据的仓库。
什么是数据?比如:
-
你要在“一起帮”上注册,你就需要输入的用户名和密码,就是数据。
-
或者,你发布一个求助,标题、正文、悬赏……等等,都是数据。
注意:区分“源代码”和“数据”。
为什么需要
数据库
因为数据需要存放/查找/修改/删除等:
-
比如注册,你输入了用户名和密码,提交:系统就需要把他们存放到数据库。
-
此后当你登录的时候,系统做的就是将你输入的用户名和密码在数据库中进行查找:只有当你的输入和数据库中的存储的一致,你才能够成功登录。
-
又比如你发布求助,你输入的标题、正文和其他各种信息,都会被存放到数据库中;然后当其他用户浏览的时候,这些内容又会被从数据库中取出来。
@想一想@:不使用数据库,你把数据存放在哪里?
然后,你的方案(内存中/记事本等)能不能解决这些问题:
-
安全。不仅仅是信息不会被恶意用户(所谓的“黑客”)窃取,还要保证信息不会因为断电、磁盘损坏等原因丢失损坏。
-
效率。一是使用/开发效率,你能不能方便快速的存入(增)、查找(查)、修改(改)和删除(删)你想操作的数据?二是执行效率,当数据越来越多越来越多,比如上千万条的数据,你的方法能不能很快的执行?
-
……
数据库就能!
数据库可以被认为是一种软件,它能用一种较好(安全高效)的方式进行数据的管理(增删改查)。
那么,如何进行这些增删改查的操作呢?使用
SQL
这种结构化(Structured )查询(Query)语言(Language)。我们通过这三个单词来认识它:
-
Structured:结构化的。数据是按照某种“结构”,有序的组织起来的。什么样的一种结构呢?“关系(relationship)型表(Table)”结构。
-
Query:查询。实际上概括了增删改查四种操作,但查询是核心:删和改的前提是查找,不然你删谁改谁呢?为了便于查询,增加数据的时候,也需要用一种“有效的”方式进行存放。(复习:数据结构和算法。
延伸:为什么“数算”在实际工作中用不到?已经在数据库中被良好的封装。
-
Language:语言,SQL是一门语言,是和数据库进行交流的工具。
三大主流数据库
准确的说,是“
关系型”数据库:
-
Oracle:甲骨文公司开发,收费,功能强大,语法丰富,适用于各种大中小微机环境。(复习:计算机类型)
-
MySql:社区开源免费,后被甲骨文收购,但仍保留免费社区版。特点是可选择“引擎”,一直在不断完善中……
PS:毁誉参半:拉里·埃里森
-
SQL Server:微软公司开发,收费,可视化操作界面(Management Studio)强大,之前只能在windows上部署,现在已可以在Linux上部署使用。
以上仅为简单概括解释,非关系型的NoSQL数据库将在同学们对SQL数据库有了更深的认识后予以介绍。
SQL Server和T-SQL
前面已经说过了:SQL Server是数据库,是微软推出的三大主流数据库之一。不要把他和SQL混淆了,虽然微软很希望大家就把SQL当成SQL Server,^_^
SQL是一个公认的语言(语法标准),三大主流数据库厂商都已经确保标准的SQL语言能在他们的数据库上正常运行。所以,我们的课程也以SQL标准语法为主。
但是,各个数据库厂商为了提高自身的竞争力,更好的为数据库开发人员服务,还各自推出了他们自己的 SQL语法,但这些语法,不能确保在其他数据库上正常运行。
-
Oracle推出的被称为PL/SQL
-
mysql还是叫mysql,
-
SQL Server推出的,就叫做:T-SQL。
可以把T-SQL看成是SQL的扩展,即T-SQL包含了全部SQL语法,并且还额外添加了其他一些只适用于SQL Server(或者不保证也能适用于其他数据库的)语法。
课程安排说明
通用SQL语言
数据库的操作可以分为两部分:
-
DBA:维护数据库,保证数据库安全高效的运行,工作除了写SQL,还要优化数据库的:
-
安全:备份恢复、权限设置等
-
性能:读写分离、集群维护、索引整理
-
可维护性:视图、函数、存储过程……
-
开发人员:利用SQL语句完成数据的增删改查(我们教学的重点)
我们主讲“开发人员”这一部分。而且重点放在“通用的(SQL Server和mysql都能用)”SQL语法上,个别无法通用但不得不讲的,会分别放在T-SQL和mysql两章里。
演示用工具
PS:也可以称之为工作台(studio),不能算是IDE
再三考虑,我们还是主要使用和SqlServer搭配的Visual Studio,因为:
-
mysql的可视化工具也太多了,有:workbench(官方推荐,然并卵)、phpMyAdimin、Navicat……,所以很多课程干脆直接用(黑窗体)控制台!
-
SqlServer就不一样,VS宇宙最强IDE,名不虚传,可视化的“执行计划”演示效果更佳
-
workbench字体太小了,不适合演示,伤眼睛,^_^
但是,我们一样会介绍workbench的安装使用,所有mysql独有的语法,都会在workbench上演示。
作业
-
数据库和SQL是什么关系?
-
为什么要学习数据库/SQL?
-
有哪些主流的数据库?各有什么特点?
-
我们要学习哪些内容?