SQL 数据库 学习 004 预备知识
数据库 预备知识
我的电脑系统: Windows 10 64位
使用的SQL Server软件: SQL Server 2014 Express
如果我们要学习这个数据库,我们需要学习什么知识。
预备知识
先解决几个疑问:
1 . 学习数据库必须得学习数据库原理吗
按道理说是这个样子的。数据库原理里面讲的都是一些很理论的知识,而我们现在学的数据库就对它的一个实现。我们学习SQL Server软件是都数据库原理的一个实现。当然你不会数据库原理,问题也不大,因为我们后面会介绍一些需要数据库原理的知识。
2 . 学习 SQL Server 2014 必须得先学习一门编程语言吗
不需要,但是懂一门编程语言的话会有助于学习SQL Server 2014的TL_SQL。(如果不是专门去研究这个 TL_SQL,不懂编程语言,问题也不大。就是对于初学者,你可以不懂编程语言,也可以学习SQL Server 2014,并且不用管里面的TL_SQL)。什么是TL_SQL?我们以后的博客里面会讲。简单的说:TL_SQL 是一个带有 for
循环的流程控制的编程语言。
数据库是属于第四代语言,它里面没有
for
循环,没有if
,里面只有命令。
3 . 数据结构 和 数据库的区别
数据库和数据结构都是研究数据的存储和操作,但是研究的层次不一样。数据库是在应用软件(硬盘)级别研究数据的存储和操作;数据结构是在系统软件(内存)级别研究数据的存储和操作。
4 . 什么是 连接?
这个你必须要知道,这个不知道的话,你都不知道库是怎么运行的,它跟我们的编程语言完全不一样。
这里的 连接 指的是:
SQL Server 2014 软件它只是一个客户端,而数据库是后台。
我们必须要要连接数据库,才能使用数据库。这个数据库可以是本地硬盘里面,也可以是在你附近另一个电脑里面,甚至是在另外一个国家的某一个服务器里面。
操作数据库的命令不想是编程语言,有些命令不能一起执行,有些命令可以,具体的内容,我们日后的博客里面会介绍,这边博客只是科普,你了解了解就可以。
5 . 有了编程语言为什么还需要数据库
数据库是用来存数据的。那么C#语言能不能存数据,Java 语言能不能存储数据?它们也能存储数据,它们使用IO流就可以做到,IO流是将数据从一个设备传输到另一个设备的一个管道。那么既然已经有了IO流,为什么还需要使用数据库呢?
因为数据库简单。因为对于编程语言:对内存数据操作是编程语言的强项,但是对硬盘数据操作却是编程语言的弱项。
我们在学习编程语言的时候,都是学对内存的分配:内存什么时候分配、内存如何释放、内存是谁释放的、内存在哪一块空间可以使用,在哪一块空间中就不能使用了。
说白了:编程语言里面的共有、私有、多态、封装其实都是考虑内存的问题。虽然编程语言也可以对硬盘进行操作,但是功能很弱。如果要存放的数据很庞大的话,那么使用编程语言就搞不定了。
那么编程语言搞不定,其他的东西就能搞定吗?的确是这样子的。数据库:对硬盘数据操作却是数据库的强项,是数据库研究的核心问题。
对硬盘的数据要做什么操作呢?比如说,现在要将十万个数据全部写入硬盘;将硬盘是十万个数据一次性全部删除。这东西你要是使用编程语言去实现,那就是非常困难了。数据库就是专门对硬盘进行操作的。
当然你也不能说,数据库对内存的操作就很弱,因为数据库很多功能的实现也是要借助内存的。
总结: 整体而言,数据库是对硬盘的数据进行操作,也编程语言是对内存的数据进行操作。
扩展: 我们在做项目的时候,通常利用数据库可以对数据操作。但是有些操作不方便,我们要把这些数据调到内存,对内存数据进行操作完了之后,把数据在写入硬盘。以前我们讲个容器,这个就是它们之间的合作。我们为什么需要编程语言也需要数据库?是因为数据库的操作很简单很方便,但是复制操作,它实现起来很困难,(数据库内部其实是有语言可以来实现的:比如:TL_SQL语言,但是这些都不是很好,因为一般人不会。)那现在怎么办?
我们有一种常用的方式:如果对数据库里面数据操作很复杂的操作,我们是先将数据库里面的数据调入内存,再利用Java、C#、C、C++、Python等语言对内存里的数据进行操作。现在就生成了我们有效的数据了,最后将这些数据再写入数据库。
6 . 建议初学者从三个方面学习数据库
数据库里面有很多的内容很多,比如说有:建表、增、删、改、查、树、触发器、约束、存储过程、函数。它们之间有什么联系呢?它们之间是一个什么样的关系,我们怎么样找到一个线把它们这些知识给串起来。你可以通过下面的角度去学习数据库:(你这样去学的话,学起来可能会简单,而且可以将这些知识有机的整合成一个整体。)
(1) . 数据库是如何存储数据的
比如说:我们的SQL Server软件,它怎么就能将数据存储起来。
那么,你就需要理解:字段、记录、表、约束(主键、外键、唯一键、非空、check
、default
、触发器)。
我写这些是什么意思呢?就是:如果你以后看到这些知识,它们所讲的都是:如何存储数据。数据库就是使用这些知识来对数据进行存储的。
(2) . 数据库是如何操作数据的
insert
、update
、delete
、T-SQL、存储过程、函数、触发器。
这些知识,讨论的就是:如何操作数据。
(3) . 数据库是如何显示数据的
select
(重点中的重点)
上面提到的知识,我们日后的博客中都会一个一个的详细介绍。
SQL 数据库 学习 004 预备知识的更多相关文章
- SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键 (上)
SQL 数据库 学习 007 通过一个示例简单介绍什么是字段.属性.列.元组.记录.表.主键.外键 (上) 我们来介绍一下:数据库是如何存储数据的. 数据库是如何存储数据的 来看一个小例子 scott ...
- SQL数据库学习,常用语句查询大全
数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...
- SQL 数据库 学习 005 学习必备的一些操作 --- 如何新建数据库 如何附加和分离数据库(如何备份还原数据库) 如何删除数据库
我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果我们要学习这个数据库,我们需要学习什么知识.比如:如何新建一个数据库 ...
- 下面为初学者分享一下SQL 数据库学习资料
一.基础 1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份 ...
- SQL 数据库 学习 003 什么是数据库? 为什么需要数据库?是不是所有的软件都是用Sql Server?
什么是数据库? 为什么需要数据库? 是不是所有的软件都是用Sql Server? 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Exp ...
- SQL数据库学习系列之一
数据库知识的重要性不言而喻,以下链接给出了最最基础知识的讲解. 第一讲:SQL 语法 第二讲:SQL SELECT 语句 第三讲:SELECT DISTINCT 语句 第四讲:SQL WHERE 子句 ...
- SQL 数据库 学习 006 如何设置一个用户名和密码
我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 先启动 SQL Server 2014 Management Studi ...
- SQL 数据库 学习 002 如何启动 SQL Server 软件
如何启动 SQL Server 软件 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果你还没有下载 SQL Serv ...
- C# SQL数据库学习时遇到到一些异常
1一些关于SqlHelper类的异常: DataAdapter.SqlHelper”的类型初始值设定项引发异常. ExecuteNonQuery.SqlHelper”的类型初始值设定项引发异常. Ex ...
随机推荐
- Oracle存储过程记录异常日志
一般我们会将一些涉及到数据库的定时任务直接用存储过程搞定,省去了后端代码的开发.部署,简单.快速,但这种方式存在一个弊端——当存储过程执行出错了,我们无法感知.解决办法也简单,学代码那样去捕获异常.打 ...
- CArray,CList,CMap如何实例化
1.定义一个CMap,向这个CMap中增加数据项(键-值对).CMap<CString, LPCTSTR, CString, LPCTSTR>m_ItemMap;CString strKe ...
- GDB调试字符数组时指针和数组区别的体现
测试ftell函数时发现报错,先贴源码 // File Name: ftell.c #include <stdio.h> #include <stdlib.h> int mai ...
- C#String地址、拼接性能学习
String类型不可变.定义string变量时会在堆上分配存储空间,而对该变量进行值变更时会重新分配一个存储空间,且保留原存储空间. 测试思路:获取string类型变量值变更前后的存储空间地址,判断地 ...
- [转][Java]语法规范
先来个 阿里的 Java 开发手册(2017.5.20 发布 v1.2.0 .pdf) 本文来自:http://blog.csdn.net/sinat_27115575/article/details ...
- 019:InnoDB 表空间内部组织结构
一. 表空间内部组织结构 表空间 内部有多个段对象(Segment) 组成 每个段(Segment)由区(Extent) 组成 每个区(Extent)由页(Page)组成 每个页里面报存数据 (或者叫 ...
- [Python] Regular Expressions
1. regular expression Regular expression is a special sequence of characters that helps you match or ...
- 面试宝典:Java面试中最高频的那20%知识点!
Java目前已经不仅仅是一门开发语言,而是一整套生态体系. 作为一个Java程序员,既是幸运的,也是不幸的.幸运的是我们有很多轮子可以拿过来用,不幸的是我们有太多的轮子需要学习. 但是,无论是日常工作 ...
- 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法
是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...
- 新版Eclipse使用遇到的问题总结
1.SDK下载很慢. 配置SDK代理,速度像飞一样.建议先把20-24下完,不然后面遇到很多问题. 2.support-v7的问题 例如res\values\styles.xml:4: error: ...