2012-10-01 12 views
28

私はSQLiteデータベースがモバイルデバイス(Android、iPhone)で使用されていることを知っています。軽量で、Kb領域しか必要としません。 SQLiteに制限はありますか?私は彼らがどう違っているのか知りたい。SQLiteとSQLの違い

答えて

34

すべてのSQLデータベースは、独自の言語実装を使用しています。基本クエリはほぼ普遍的ですが、MySQL、PostgreSQL、Microsoft SQL Server、Oracle Databaseなどの間には大きな違いがあります。

SQLiteに関して特に注目すべき点は、上記の他のすべてとは異なり、クエリが通過するデーモンがあります。これは、複数のプロセスが同時にデータベースを使用している場合、SQLiteライブラリを介してデータを直接変更し、OS自体に読み書き可能なデータ呼び出しを行うことを意味します。また、ロック機構が競合を非常にうまく処理しないことも意味します。

これは、SQLiteを使用すると思われるほとんどのアプリケーションにとって問題ではありません。小さなオーバーヘッドの利点と簡単なデータ取得はそれに値するものです。ただし、複数のプロセスでデータベースにアクセスする場合や、すべてのリクエストを1つのスレッドでマッピングすることを検討しない場合は、少し面倒です。

22

Sqliteは、SQLの多くの機能をサポートする非常に軽いバージョンのSQLです。基本的に携帯電話、タブレットなどの小型デバイス向けに開発されました。

SQLiteは、オープンソースのプロセス内データベースエンジンです。 SQL Server CompactはMicrosoftのもので、SQL Serverのストリップダウンバージョンです.2つの競合するデータベースエンジンです。

SQLはクエリ言語です。 Sqliteは組み込み可能なリレーショナルデータベース管理システムです。

編集:(私の答えにコメントを次から出所)

Sqliteをも特別なデータベースサーバーか何かを必要としません。これは、SQL構文を使用する直接的なファイルシステムエンジンです。 (By:Adam Plocher)

技術的には、SQLiteはオープンソースソフトウェアではなく、パブリックドメインです。ライセンスはありません。 (By:Larry Lustig)

+4

Sqliteでは特別なデータベースサーバーなどは必要ありません。これは、SQL構文を使用する直接的なファイルシステムエンジンです。 –

+1

Techinically、SQLiteはオープンソースソフトウェアではなく、パブリックドメインです。ライセンスはありません。 –

+0

@LarryLustig、この知識をお寄せいただきありがとうございます:) – Lucifer

7

SQLはクエリ言語です。 Sqliteは組み込み可能なリレーショナルデータベース管理システムです。

(SQL ServerやMySQLなどの)他のデータベースとは異なり、SQLiteはストアドプロシージャをサポートしていません。

SQLiteは、サーバーベースのSQL ServerやMySQLなどの他のデータベースとは異なり、ファイルベースです。

-2

SQLはデータベースクエリ言語であり、SQLiteはSQL仕様を使用するデータベース(RDBMS)です。 SQLiteはMicrosoftのSQL Serverと競合すると言えるでしょう。

名前自体は、SQL RDBMSの軽いバージョンであることを示しています。これは、AndroidやiOSデバイスのような小型で携帯型のデバイスのほとんどに使用されています。

+0

SQLiteはSQL Serverと競合することはできません。両方とも目的が異なるため、比較が無効です。 –

1

SQLは、データベースに通常リレーショナルデータベースシステムを照会するために使用される構造化照会言語です。

SQLは、リレーショナル・スキーマの作成方法、リレーションのデータの挿入または更新、トランザクションの開始および停止などを指定する標準です。

データ定義言語(DDL)およびデータ操作言語(DML)、埋め込みSQLおよび動的SQLは、SQLのコンポーネントです。

SQLデータベースの一部が

などのMySQLやOracle、Microsoft SQL Serverの、IBM DB2、あるSQLiteはANSI-Cで書かれた組み込みリレーショナル・データベース管理システムです。 SQL ServerとMySQLは、サーバーベースのあるのに対し、

のSQLiteはファイルベースで、

SQLiteはSQLの多くの機能をサポートし、高いパフォーマンスを持っており、ストアドプロシージャをサポートしていません。

SQLiteは、データベースのコンセプトを実装するためにAndroid開発で使用されます。

+0

構文に違いはありますか? – Skillson

0

SQLiteはパブリックドメインのオープンソースプロジェクトです。これはDBエンジンがあなたのアプリの一部として実行されることを意味する "埋め込み"データベースと呼ばれるものです。

MySQLもオープンソースですが、Oracleが所有しています。 MySQLはデータベースサーバーなのでどこかにインストールしてからアプリケーションに接続する必要があります。

2つの全く異なる目的を果たします。 SQLiteは、多くの場合、アプリケーションが独自のデータを保持するために使用されます。たとえば、WebブラウザでSQLiteを使用してブックマークを保存する場合があります。電子メールクライアントは、SQLiteを使用して電子メールメッセージをローカルに格納することがあります。 MySQLなどのデータベースサーバは、通常は複数のユーザやアプリからアクセスされるデータを格納するために使用されます。