2011-06-04 65 views
4

我將在C++中使用SQLite,所以我決定先學習它。但仍然是我的問題是,SQL命令是非常像SQLite還是我應該在SQLite之前學習它?首先學什麼,SQLite或SQL?

+1

這個問題沒有道理。 SQLite **是一個SQL數據庫。 – 2011-06-04 04:29:18

+0

一旦掌握了SQLite,應該很容易發現與其他SQL DBMS的區別,相反也應該是真實的。許多SQL命令應該在SQLite和成熟的基於服務器的SQL解決方案上以相同的方式運行。 @Matt Ball,對你來說可能沒有意義,因爲你知道兩者,但顯然不是OP的情況。 – zneak 2011-06-04 04:29:34

+1

@Matt球。 OP可能認爲「SQL」與「SQL Server」是同義的。其實並非如此。但我懷疑這就是OP的意思。 – Asaph 2011-06-04 04:32:01

回答

8

我建議在SQLite的SQL版本之前學習標準SQL。 SQLite允許很多數據庫不允許的東西(比如自動類型轉換和不完整的GROUP BY子句)。此外,SQLite中的所有內容都以字符串形式存儲,但其他版本的SQL並非如此。

大部分SQL使用情況在SQLite和標準SQL中都是相同的,但值得了解陷阱。 SQLite讓你擺脫標準SQL所沒有的各種東西。如果你從SQLite開始,那麼當你移動到另一個數據庫時會遇到很多麻煩。但是,如果您從更標準的SQL實現(比如PostgreSQL或SQL Server)開始,那麼下載到SQLite將會非常簡單。

您可能要研究一些SQLite的文檔/前/後同時學習標準SQL讓你知道的區別:

而且,因爲您將要使用C++中的SQLite:

我不是在這裏批評的SQLite。 SQLite是一個非常棒的嵌入式數據庫,並且非常適合它的用途。問題在於,從鬆散的環境(如SQLite甚至MySQL)到更嚴格的環境(PostgreSQL,SQL Server,Oracle,...)都會變得困難和令人沮喪。從標準(或「正確」)方式開始可能會節省一些痛苦和痛苦。

1

你應該一起學習,因爲學習SQL你需要一個SQL引擎,SQLite就是這樣。

請注意,SQLite並沒有實現所有的SQL語言,但由於庫的簡單性,它是一個開始學習它的好地方。一旦您熟悉SQL的基礎知識(數據定義語言和插入/更新/選擇語句),您就可以開始轉向高級概念(事務,觸發器等),並可以繼續進行完整的關係數據庫管理支持整個SQL語言的系統。