zoukankan      html  css  js  c++  java
  • SQL 数据库 学习 004 预备知识

    数据库 预备知识

    我的电脑系统: Windows 10 64位
    使用的SQL Server软件: SQL Server 2014 Express


    如果我们要学习这个数据库,我们需要学习什么知识。

    预备知识

    先解决几个疑问:

    1 . 学习数据库必须得学习数据库原理吗

    按道理说是这个样子的。数据库原理里面讲的都是一些很理论的知识,而我们现在学的数据库就对它的一个实现。我们学习SQL Server软件是都数据库原理的一个实现。当然你不会数据库原理,问题也不大,因为我们后面会介绍一些需要数据库原理的知识。

    2 . 学习 SQL Server 2014 必须得先学习一门编程语言吗

    不需要,但是懂一门编程语言的话会有助于学习SQL Server 2014TL_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软件,它怎么就能将数据存储起来。
    那么,你就需要理解:字段记录约束主键外键唯一键非空checkdefault触发器)。
    我写这些是什么意思呢?就是:如果你以后看到这些知识,它们所讲的都是:如何存储数据。数据库就是使用这些知识来对数据进行存储的。

    (2) . 数据库是如何操作数据的

    insertupdatedeleteT-SQL存储过程函数触发器

    这些知识,讨论的就是:如何操作数据

    (3) . 数据库是如何显示数据的

    select(重点中的重点)


    上面提到的知识,我们日后的博客中都会一个一个的详细介绍。

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/aobosir/p/5928528.html
Copyright © 2011-2022 走看看