2011-06-04 114 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语言的系统。