程式語言與SQL語言小節

2022-09-21 14:24:11 字數 1540 閱讀 3144

sql語言也屬於是一種程式語言,而程式語言大體可分為四種:命令式,物件式,並髮式還有宣告式。

命令式程式語言是最像「程式語言」的語言。

命令式程式語言是幾乎所有程式語言所採用的,在命令式程式語言中,程式是若干指令組成的語句。程式設計師要告知電腦如何執行。

我們學的彙編,c語言這些都是命令式的程式語言。也就所謂的馮•諾伊曼機執行機制,從記憶體中獲取指令和資料,然後一條一條的執行。

類似於命令電腦:先走a,再走b,碰到c以後再返回b……

宣告式語言只描述了程式應該完成的任務,至於如何做,並不管。比如sql就是這樣一種語言,看下面這條語句。

select id from qqgroup where driving > 50

這條語句的意思是從qq群中選出開車次數大於50的人來。只描述了乙個任務,至於怎麼選,宣告式語言並不關心。以結果為導向。

這和我們普通人首次接觸的命令式程式語言有非常大的區別。於是,很多人認為sql語言不是程式語言,或者是一種很奇怪的程式語言。

其實,sql語句只是宣告式程式語言中的一小部分,往細了分,宣告式程式語言可以分為以lisp家庭為代表的函式式程式語言和以prolog為代表的邏輯式程式語言。

不僅如此,在j**a中的annotation和xdoclet庫中,採用的也是具有宣告式特徵的程式設計。假以時日,也許命令式和宣告式語言會互相滲透,尤其是在宣告式語言的大本營:人工智慧領域,符號處理領域,數理邏輯領域越來越被人重視以後。

sql語言執行不按順序來

比如說,sql查詢的時候,一般是這樣寫:

select + from + where + group by + h**ing + union + order by

但是在執行的過程中,和命令式不一樣,執行的順序又變了

from + where + group by + h**ing + select + union + order by

在寫sql的時候,一定要記住,寫的順序和執行的順序沒什麼關係。這一點和命令式程式設計也有非常大的不同。

oop (object-oriented programming),翻譯成物件導向其實非常不好,可能是個單身漢翻譯的。

我認為我前面講的命令式語言,宣告式語言(包括宣告式與邏輯式)想比,oop並不能單獨存在,如果說這三個可以平行並能自成一體獨擋一面的話,oop是與這三者相交的一種程式設計正規化。

命令式和宣告式語言,都能融合oop的正規化。c++和j**a都是在命令式的基礎上發展了oop,其核心思想是:以資料為中心,將系統劃分為相互作用的物件集合。這個思想不僅僅能運用在命令式語言上,也可以運用在函式式語言上和邏輯式語言上,只是將命令式語言中的過程換成函式式語言中的函式,或者邏輯式語言中的斷言。

那oop能和sql這種宣告式語言結合麼?

答案是:當然可以!

sql如何和oop結合起來?

我們都知道,oop會讓程式設計相對來說更易於理解。

使用了orm以後,我們可以不用操作表,不用寫sql語句,可以在程式中用物件導向的思路,直接操作物件即可。

幾乎所有大型的web框架都實現了orm,在ruby on rails中,實現的方法叫做activerecord。雖然名字各有區別,但是,裡面的原理是一樣的。

組合語言小節(1)

作為一名合格的程式設計師,組合語言的知識是必不可少的。1 intel彙編與at t格式的彙編不同之處也知道也寫,今天看到一條以前沒見過的 變數 符號的位址以 開頭,注意是變數的位址。movl var,ebx 區別 movl var,ebx 2 函式呼叫過程中,關於引數壓棧,和返回後執行指令的位址。偽...

sql語言與物件

語言系統 語言系統分為兩種語言一種為ddl資料定義語言,一種為dml資料操作語言 ddl語言 create alter drop truncate 只針對表 dml語言 insert into update set delete from 在系統中ddl語言比dml語言許可權更大 dml語言輸入完畢...

程式語言與語言處理程式

程式語言和語言處理程式,是兩個完全不一樣的概念。首先我們來說程式語言 程式語言一共就三種 1 機器語言 2 組合語言 3 高階語言。這三種語言,計算機能直接執行的就是機器語言,初次之外都不能直接執行。所以說呢機器語言就是最早的語言,最原始的語言。但是我們知道機器語言都是0和1的指令去寫的,那對於我們...