sql中為什麼select要放在from之前?
01-13
sql執行的時候明明是先從from開始,如果fro放前面也會對只能提示等提供方便,而C#中LINQ表達式里也是將from放在前面而將select放在最後。那當初設計sql的時候為什麼要這樣設計呢?
就是個taste問題而已,不必太糾結。當年的語言設計者的taste普遍…呃。這就跟C系語言在函數聲明裡把返回值寫在函數名之前一樣,為了讓返回內容更加受關注。
int add(int a, int b);
要是按照數據的流動方向,把函數聲明的返回值放後面,那就會得到Pascal系語法:
Function Add(A, B : Integer) : Integer;
因為那個時候,語言看起來和自然語言差不多是一件非常NB的事情,所以SQL就給整成了這樣,看起來更像自然語言。
雖然不知道為什麼這麼做,但是這裡我把sql常用語句執行順序都寫出來:1.from子句2.where子句3.group by子句4.having子句
5.order by子句
6.select 子句linq的順序是反的喲,是from xxx where xxx select xxx就是興趣問題
你看過英語裡面有 from a select b 的用法么╮(╯_╰)╭
因為SQL的前身是SEQUEL (Structured English QUEry Language), 後來因為商標的問題改名為SQL。設計目標就是與自然語言(English)貼近。
我覺得是這樣的,最開始的話應該是符合他們的說話習慣。
而且最初設計者可能只考慮實用,如果他們現在把智能提示的元素加入進去的話可能會把from放到前面去,因為如果你手打按這個順序select A打下去的時候,它不知道要從哪個表裡拿欄位給你提示,而如果首先是from的話,就知道在哪個表裡面了,就可以給你提示是ABC,還是ABD了呀。
最後,扯一個,剛好之前項目做過解析sql語句,不過是單表的查詢(排除多表哈),select A, B, C from tableName....比 from tableName select A, B, C.....更好寫正則解析,因為第二種不知道什麼時候欄位名會結束了,要去每個欄位名拿去匹配看是不是關鍵字,然後結束。
估計是因為看語句開頭就能認出來這是個select語句
題主一定是自問自答來騙贊的
關鍵詞前置方便記憶。
強調做什麼而不是誰被做更容易閱讀。推薦閱讀:
※如何優雅地寫SQL?
※為什麼公司不準使用SQL語句查詢的「*」?
※sql語句面試問題?
※如何自學SQL?
※SQL 查詢按照家庭住址進行分組時,組內平均年齡小於50歲的組中成員的姓名和年齡?