编程语言与SQL语言小节

2022/2/16 19:11:50

本文主要是介绍编程语言与SQL语言小节,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

编程语言

SQL语言也属于是一种编程语言,而编程语言大体可分为四种:命令式,对象式,并发式还有声明式。

1.命令式编程语言

命令式编程语言是最像“编程语言”的语言。

命令式编程语言是几乎所有编程语言所采用的,在命令式编程语言中,程序是若干指令组成的语句。程序员要告知电脑如何运行。

我们学的汇编,C语言这些都是命令式的编程语言。也就所谓的冯•诺伊曼机运行机制,从内存中获取指令和数据,然后一条一条的执行。

类似于命令电脑:先走A,再走B,碰到C以后再返回B……

2.声明式编程语言

声明式语言只描述了程序应该完成的任务,至于如何做,并不管。比如SQL就是这样一种语言,看下面这条语句。

SELECT id FROM qqgroup WHERE driving > 50

这条语句的意思是从QQ群中选出开车次数大于50的人来。只描述了一个任务,至于怎么选,声明式语言并不关心。以结果为导向。

这和我们普通人首次接触的命令式编程语言有非常大的区别。于是,很多人认为SQL语言不是编程语言,或者是一种很奇怪的编程语言。

其实,SQL语句只是声明式编程语言中的一小部分,往细了分,声明式编程语言可以分为以Lisp家庭为代表的函数式编程语言和以Prolog为代表的逻辑式编程语言。

不仅如此,在Java中的annotation和XDoclet库中,采用的也是具有声明式特征的编程。假以时日,也许命令式和声明式语言会互相渗透,尤其是在声明式语言的大本营:人工智能领域,符号处理领域,数理逻辑领域越来越被人重视以后。

SQL语言执行不按顺序来

比如说,SQL查询的时候,一般是这样写:

SELECT + FROM + WHERE + GROUP BY + HAVING + UNION + ORDER BY

但是在执行的过程中,和命令式不一样,执行的顺序又变了

FROM + WHERE + GROUP BY + HAVING + SELECT + UNION + ORDER BY

在写SQL的时候,一定要记住,写的顺序和执行的顺序没什么关系。这一点和命令式编程也有非常大的不同。

3.对象式编程语言

OOP (Object-Oriented Programming),翻译成面向对象其实非常不好,可能是个单身汉翻译的。

我认为我前面讲的命令式语言,声明式语言(包括声明式与逻辑式)想比,OOP并不能单独存在,如果说这三个可以平行并能自成一体独挡一面的话,OOP是与这三者相交的一种编程范式。

命令式和声明式语言,都能融合OOP的范式。C++和Java都是在命令式的基础上发展了OOP,其核心思想是:以数据为中心,将系统划分为相互作用的对象集合。这个思想不仅仅能运用在命令式语言上,也可以运用在函数式语言上和逻辑式语言上,只是将命令式语言中的过程换成函数式语言中的函数,或者逻辑式语言中的断言。

那OOP能和SQL这种声明式语言结合么?

答案是:当然可以!

SQL如何和OOP结合起来?

这种方法叫ORM(Object-Relational Mapping),对象关系映射,这是是一种为了解决OOP与关系数据库存在的互不匹配的现象的技术。

我们都知道,OOP会让编程相对来说更易于理解。

使用了ORM以后,我们可以不用操作表,不用写SQL语句,可以在程序中用面向对象的思路,直接操作对象即可。

几乎所有大型的web框架都实现了ORM,在Ruby on Rails中,实现的方法叫做ActiveRecord。虽然名字各有区别,但是,里面的原理是一样的。



这篇关于编程语言与SQL语言小节的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程