リレーショナルデータベースシステムを使用したことがある場合は、MySQL、SQL Server、PostgreSQLなどの一般的なデータベースシステムについて聞いたことがあると思います。 SQLiteは、セットアップと操作が非常に簡単なもう1つの非常に便利なRDBMSです。また、他のリレーショナルデータベースに比べて多くの異なる機能があります。このSQLiteチュートリアルでは、広範な実践的な実践の助けを借りて知っておく必要のある基本的な概念を学びます。
この記事で説明するトピックは次のとおりです。
- SQLiteとは何ですか?
- SQLiteの機能
- WindowsへのSQLiteのインストール
- SQLiteコマンド
- データベースコマンド
- テーブルコマンド
- CRUD操作
- SQLiteの句/条件
- SQLiteに参加する
- SQLiteのデメリット
SQLiteチュートリアル:SQLiteとは何ですか?
SQLiteの業界標準の定義は次のとおりです。
SQLiteは、アプリケーションに組み込むように設計された、オープンソースのゼロ構成の自己完結型のスタンドアロンのトランザクションリレーショナルデータベースエンジンです。
SQLiteを検討できます 「ライター」として 」他の複雑なRDBMS(Oracle、SQLなど)のバージョン。データベースエンジンは独立した処理(インプロセスライブラリ)用に構成されています。 つまり、 サーバーレス、自己完結型、ゼロ構成、トランザクション型 。移植性、信頼性、および低メモリ環境でも強力なパフォーマンスで知られています。また、SQLiteは、クライアントサーバーDBエンジンが構成されている他のRDBMSとは異なり、エンドプログラムまたはアプリケーションのローカル/クライアントストレージ用の組み込みデータベースとして人気があります。
SQLiteの機能
SQLiteは、次のような多くの異なる機能を提供します:
- サーバーレス: ほとんどのSQLデータベースは個別のサーバープロセスとして実装されていますが、SQLiteには個別のサーバープロセスがありません。サーバーレスデータベースエンジンです。通常のディスクファイルを直接読み書きします。
- ゼロ構成: 実行するための構成は必要ありません。つまり、クライアント/サーバーシステムのように、開始、停止、または構成する必要のあるサーバープロセスはありません。
- マニフェストの入力: SQLiteはマニフェスト型付けを使用します。これにより、列の宣言されたデータ型に関係なく、任意の量の任意のデータ型を任意の列に格納できます。この規則には特定の例外があることに注意してください。
- 軽量: 名前が示すように、SQLiteライブラリは非常に軽量です。使用するスペースは、インストールされているシステムによって異なりますが、600KiB未満のスペースしか使用できません。
- ポータブル: 他のDBMSとは異なり、SQLiteデータベース全体が1つのファイルに保存されます。このファイルは、リムーバブルメディアまたはファイル転送プロトコルを介して非常に簡単に共有できます。
- 多様な選択肢: C、C ++、C#、Java、JavaScript、Ruby、Pythonなど、多くのプログラミング言語がSQLiteのバインディングを提供します。
- 無料: SQLiteは無料でオープンソースです。 SQLiteを使用するには、商用ライセンスは必要ありません。
上記のように、SQLiteはゼロ構成で知られているため、複雑なセットアップや管理は実際には必要ありません。このSQLiteチュートリアルの次のパートでは、システムにSQLiteをインストールする方法を見てみましょう。
SQLiteチュートリアル:WindowsへのSQLiteのインストール
従う手順は次のとおりです。
ステップ1: SQLiteの公式Webサイトにアクセスし、適切なリンクをクリックして、コンパイル済みのバイナリをダウンロードします。
ステップ2: SQLiteコマンドラインzipファイルをダウンロードします(ここ: sqlite-tools-win32-x86-3270200.zip) 選択したフォルダでこれらのファイルを展開します。
このSQLiteコマンドラインツールには、次のSQLite製品が含まれます
- SQLiteコア :SQLiteコアには、実際のデータベースエンジンとパブリックAPIが含まれています。
- SQLite3コマンドラインツール :sqlite3アプリケーションは、SQLiteコアの上に構築されたコマンドラインツールです。
- Tcl拡張機能 :このライブラリは基本的に、Tclバインディングが追加されたSQLiteコアのコピーです。
- SQLiteアナライザーツール :SQLiteアナライザツールはデータベースファイルの分析に使用されます。
ステップ3: その後、SQLiteコマンドラインを開始するのは、sqlite3アプリケーションをクリックするのと同じくらい簡単です。これにより、コマンドラインがポップアップ表示されます。
さらにテストする場合は、 .helpと入力するだけです。 sqlite>からのコマンド sqlite3で使用可能なすべてのコマンドを表示するように求めるプロンプトが表示されます 以下のように。
注: デフォルトでは、SQLiteセッションはインメモリデータベースを使用するため、セッションが終了するとすべての変更が失われます。
簡単ですね。次に、SQLiteコマンドを使い始めましょう。
SQLiteチュートリアル:SQLiteコマンド
SQLiteチュートリアルのこのセクションでは、SQLiteで使用できる基本的なSQLステートメントを紹介します。
注: SQLiteコマンドはセミコロン(;
)で終わります )。コマンドが完了し、実行する必要があることをSQLiteに通知します。また、コマンドを複数の行に広げて、最後の行でセミコロンを使用することもできます。
データベースコマンド
このセクションは、データベースを処理するためのコマンドで構成されています。コマンドは次のとおりです。
- SQLiteデータベースの作成
SQLiteは、MySQL、SQL Serverなどの他のリレーショナルデータベース管理システムのようにCREATEDATABASEステートメントを使用しません。SQLiteで新しいデータベースを作成するには、次のようにsqlite3と入力します。データベースに使用するファイルの名前。次のコードは、 StudentDetails.db: というデータベースファイルを作成します。
例
sqlite3 StudentDetails.db; sqlite> .databases main: D:sqliteStudentDetails.db;
- SQLiteAttachデータベース
複数のデータベースがある場合、一度に使用できるのは1つだけです。 SQLiteでは、ATTACH DATABASEステートメントを使用して、現在の接続用に特定のデータベースを接続します。このコマンドの後、すべてのSQLiteステートメントは接続されたデータベースの下で実行されます。
例
sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department'; sqlite> .databases main: D:sqliteStudentDetails.db; Department: D:sqliteDepartmentDetails.db
- SQLiteデタッチデータベース
SQLiteでは、DETACH DATABASEステートメントを使用して、ATTACHステートメントを使用して以前に接続されたデータベース接続からエイリアス名のデータベースを切り離します。同じデータベースファイルが複数のエイリアスで添付されている場合、このコマンドは指定された名前のみを切断し、残りの添付ファイルは引き続き存在します。インメモリデータベースまたは一時データベース内のデータベースは完全に破棄され、コンテンツは失われます。
例
sqlite> .databases main: D:sqliteStudentDetails.db; Department: D:sqliteDepartmentDetails.db Student: D:sqliteStudentDetails.db DeptInformation: D:sqliteDepartmentDetails.db sqlite> DETACH DATABASE 'Department'; sqlite> .databases main: D:sqliteStudentDetails.db; Student: D:sqliteStudentDetails.db DeptInformation: D:sqliteDepartmentDetails.db
テーブルコマンド
ここでは、SQLiteを使用するときにテーブルを処理する方法を学習します。
- SQL作成テーブル
SQLiteでは、CREATETABLEステートメントを使用して新しいテーブルを作成します。テーブルを作成するときに、テーブルに名前を付け、その列と各列のデータ型を定義する必要があります。
構文:
CREATE TABLE table_name( Column1 column_type [constraints] Column2 column_type [constraints] [.....] );
例
CREATE TABLE StudentInfo( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), DEPARTMENTID INTEGER NOT NULL, PHONE TEXT DEFAULT 'UNKNOWN', FOREIGN KEY(DEPARTMENTID) REFERENCES DepartmentInfo(DeptID) );
テーブルが作成されたかどうかは、 .tablesを使用して確認できます。 以下に示すようなコマンド。 DepartmentInfoというテーブルをすでに作成していることに注意してください ここで、DeptIDは主キーです。 Departmentsテーブルには、Studentsテーブルに対する外部キー制約があります。
sqlite> .tables StudentInfo Contacts Emp_Master
- SQLiteドロップテーブル
SQLiteでは、DROP TABLEステートメントを使用して、SQLiteデータベースからテーブルを削除または削除できます。テーブルが削除されると、テーブルに含まれるすべてのデータがデータベースから完全に削除されます。関連するインデックスとトリガーもすべて削除されます。そのテーブルで有効になっている外部キー制約がある場合、それはテーブルの各行に対して同等に削除され、テーブルに関連付けられているトリガーもすべて削除されます。
構文
DROP TABLE [ IF EXISTS ] table_name;
例
DROP TABLE Department; Error: no such table: Department DROP TABLE Company; sqlite> .tables StudentInfo
注: IF EXISTSは、オプションの句です。指定した場合、テーブルの1つが存在しない場合、DROPTABLEステートメントはエラーを発生させません。
また、 SQLiteAlterTableステートメントがあります 、この記事の次のいくつかのセクションで理解します。テーブルを作成したので、データの挿入、削除、変更の方法を確認しましょう。
SQLiteチュートリアル:CRUD操作
- SQLite挿入クエリ
テーブルを作成した後、SQLite Insert Intoコマンドを使用して、指定したテーブルに新しい行を作成できます。 SQLite挿入ステートメントには2つの意味のある形式があります。最初のフォームは、VALUES句を使用して、挿入する値のリストを指定します。
構文
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);
例
INSERT INTO StudentInfo ( ID, NAME, AGE, ADDRESS, DEPARTMENTID, PHONE) VALUES (1,'Dean', 20, 'California', 2, '934*******');>
出力
SELECT *from StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934*******
ここでは、1つの新しい行が作成され、各値がそれぞれの列に記録されます。両方のリストに同じが必要であることに注意してください アイテムの数。ここでは、列のリスト オプションです。 列のリストを指定せずにテーブルにデータを挿入することもできます 。
例
INSERT INTO StudentInfo VALUES ( 2, 'SAM', 22, 'Texas', 2, '976*******');
出力
SELECT *from StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934******* 2 SAM 22 Texas 2 976*******
SQLiteには、複数の行を挿入する機能もあります。 単一のINSERTステートメントで。構文は次のとおりです。
例
INSERT INTO StudentInfo VALUES (3,'John',23,'Norway',1,'923*******'), (4,'Mitch',22,'Houston',3,'934*******');
出力
Select *from StudentInfo; 1|Dean|20|California|2|934******* 2|SAM|22|Texas|2|976******* 3|John|23|Norway|1|923******* 4|Mitch|22|Houston|3|934*******
ご覧のとおり、出力の形式は以前のものとまったく同じではありません。では、SQLiteの出力形式をどのように変更しますか?結果が少し読みやすくなるように、出力をフォーマットしてみましょう。
- フォーマット
。modeを使用して出力モードを変更できます。上記の例では、 .modeを使用しています リスト。結果をリストとして表示します。また、 .headersを使用することもできます 列ヘッダーを表示するかどうかを指定するステートメント。変更を加えたら、 .showを使用して設定を表示できます コマンド。
例
sqlite>.mode 'column' sqlite> .headers on sqlite> .show echo: off eqp: off explain: auto headers: on mode: column nullvalue: "" output: stdout colseparator: "|" rowseparator: "n" stats: off width: filename: StudentDetails.db
出力
SELECT *FROM StudentInfo; ID NAME AGE ADDRESS DEPARTMENT PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934******* 2 SAM 22 Texas 2 976******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934*******
- SQLite Select Query
SQLiteでは、Selectステートメントを使用してテーブルからデータをフェッチし、結果テーブルの形式でデータを返します。これらの結果テーブルは、結果セットとも呼ばれます。 SQLite selectステートメントを使用すると、要件に基づいて簡単な計算または複数の式を実行できます。以前、データを挿入したときにSELECTステートメントを使用しました。
構文
SELECT [ALL | DISTINCT] result [FROM table-list] [WHERE expr]
- DISTINCT – selectステートメントでdistinctキーワードを使用すると、データの個別の行のみが返されます。
- すべて – selectステートメントでALLキーワードを使用すると、重複している場合でもデータのすべての行が返されます。
- FROMテーブルリスト –データを取得するテーブルのリストです。
- どこで表現するか – WHERE式は、テーブルから必要なデータを取得するためのカスタム条件を定義するために使用されます。
例1
SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;
出力
ID NAME ---------- ---------- 1 Dean
例2
Select NAME FROM StudentInfo WHERE DEPARTMENTID = (SELECT DeptID FROM DepartmentInfo WHERE DeptName = 'Psychology');
出力
//fetches people from department whose id is 2 NAME ---------- Dean SAM
- SQLite更新クエリ
SQLiteでは、UPDATEステートメントを使用してテーブル内の既存のレコードを変更できます。 SQLiteのWHERE句を使用して、更新する行を正確に指定できます。 WHERE句によって適用されるフィルタリング条件に応じて、すべての行、一部の行、またはなしを簡単に更新できます。
構文
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
例
UPDATE StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2';
出力
SELECT *FROM StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934******* 2 SAM 22 Texas 4 976******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934*******
- SQLite削除クエリ
SQLiteでは、DELETEステートメントを使用してテーブルからレコードを削除できます。 WHERE句によって適用されるフィルタリング条件に応じて、すべての行、一部の行、またはなしを簡単に削除できます。
例
DELETE FROM DepartmentInfo WHERE DeptName = 'Science';
出力
SELECT *FROM DepartmentInfo; DeptID DeptName ---------- ----------- 1 Mathematics 2 Psychology 3 Sports 4 Music
外部キーによって参照されているレコードを削除しようとすると、エラーが発生します。主キーレコードを削除する前に、まず外部キーレコードを削除する必要があります。学科の科学を削除してみましょう。
例
DELETE FROM DepartmentInfo WHERE DeptName = 'Music'; Error: FOREIGN KEY constraint failed
したがって、主キーを削除する前に、外部キーレコードを削除する必要があります。
DELETE FROM StudentInfo WHERE DEPARTMENTID = 4; sqlite> DELETE FROM DepartmentInfo WHERE DeptName = 'Music'; sqlite> SELECT *FROM DepartmentInfo; DeptID DeptName ---------- ----------- 1 Mathematics 2 Psychology 3 Sports SELECT *FROM StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934*******
これで、SQLiteデータベーステーブルのレコードを編集する方法がわかりました。このSQLiteチュートリアルブログでさらに進んで、SQLiteで最も頻繁に遭遇するさまざまな句と条件について説明しましょう。
SQLiteの句/条件
句を始める前に、SQLiteのSELECTステートメントの完全な構文を次に示します。
構文
SELECT [ALL | DISTINCT] result [FROM table-list] [WHERE expr] [GROUP BY expr-list] [HAVING expr] [compound-op select]* [ORDER BY sort-expr-list] [LIMIT integer [(OFFSET|,) integer]]
注:以下に示すように、StudentInfoテーブルとDepartmentInfoテーブルを更新しました。
//Student Table ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934******* 2 SAM 22 Texas 4 976******* 5 Johny 23 Norway 2 945******* 6 Robin 23 Norway 2 UNKNOWN //Department Details DeptID DeptName ---------- ----------- 1 Mathematics 2 Psychology 3 Sports 4 Music 5 Science
- SQLite WHERE
SQLiteでは、WHERE句を使用して、データベース内のテーブルから必要なデータを取得するための1つ以上の条件を定義することにより、SELECTステートメントに制限を課します。指定された条件が満たされるか真である場合、テーブルから特定の値を返します。前に見たように、WHERE句はSELECTステートメントで使用されるだけでなく、UPDATE、DELETEステートメントなどでも使用されます。
例
SELECT NAME FROM StudentInfo WHERE AGE = 23;NAME ---------- John Johny Robin
SQLiteには、WHERE句で使用できる関係演算子がいくつかあります。
- SQLite GROUP BY
SQLiteでは、GROUP BY句を使用して、指定された1つ以上の列の値が繰り返される単一の行にデータを集約します。この句は、SELECTステートメントのWHERE句とともに使用され、ORDERBY句の前にあります。
構文
SELECT result FROM [table-list] GROUP BY [expr-list]
SELECT NAME, ADDRESS FROM StudentInfo GROUP BY NAME; NAME ADDRESS ---------- ---------- Dean California John Norway Johny Norway Mitch Houston Robin Norway SAM Texas
グループ化プロセスには2つのステップがあることに注意してください。まず、GROUP BY式を使用して、テーブルの行をさまざまなグループに配置します。グループが定義されると、SELECTステートメントはそれらのグループを単一の行にフラット化する方法を定義します。
- SQLite ORDER BY
通常、SQLiteテーブルはデータを不特定の順序で格納し、SQLite selectステートメントを使用してデータをフェッチしている間、同じ不特定の順序でレコードを返します。このような場合、ORDER BY句を使用して、列レコードを昇順または降順でソートできます。以下の例では、アドレスに基づいてデータをグループ化し、降順で並べ替えています。
構文
SELECT expressions FROM tables-list [WHERE conditions] ORDER BY column1, column2,... [ ASC | DESC ];
例
SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS ORDER BY ADDRESS DESC; ADDRESS COUNT(ADDRESS) ---------- -------------- Texas 1 Norway 3 Houston 1 California 1
- SQLite HAVING BY
SQLiteでは、 HAVING 句はWHEREと同じです 句。 HAVING句は、selectステートメントのgroupbyとともに集計が行われた後に適用される追加の条件です。一般的にSQLiteでは、どこで 句は、テーブル内の個々の要素と HAVINGに条件を適用するために使用されます 句は、GroupBy句によって作成されたグループに基づいてフィルター条件を追加するために使用されます。
例
SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS HAVING COUNT(*)>1; ADDRESS COUNT(ADDRESS) ---------- -------------- Norway 3
- SQLite制限句
SQLiteでは、LIMIT句を使用して、selectステートメントによって返されるレコードに制限を設定します。概念を理解するための例を考えてみましょう。
構文
SELECT expressions FROM tables-list [WHERE conditions] LIMIT number_rows OFFSET offset_value;
例
SELECT NAME, ADDRESS FROM StudentInfo LIMIT 4 OFFSET 2; NAME ADDRESS ---------- ---------- Mitch Houston SAM Texas Johny Norway Robin Norway
OFFSETはオプションであり、 offset_value に基づいて、結果セットの先頭でスキップする行数を定義します。 。
- SQLite AND&OR
SQLiteでは、AND&OR演算子を使用して、要件に基づいて、select、insert、update、およびdeleteステートメントで複数の条件を実行します。 SQLite AND演算子は、AND演算子を使用して定義された条件を満たす行またはレコードを返します。
例1
SELECT NAME FROM StudentInfo WHERE AGE = 22 AND ADDRESS = 'Texas'; NAME ---------- SAM
OR条件は、SQLiteステートメントで複数の条件を定義するために使用され、1つの条件のいずれかが満たされた場合、ステートメントから行またはレコードを返します。
例2
SELECT NAME FROM StudentInfo WHERE (AGE = 22 AND ADDRESS = 'Norway') OR ADDRESS = 'Norway'; NAME ---------- John Johny Robin
- SQLiteGLOBオペレーター
SQLiteでは、GLOB演算子を使用して、指定された文字列値が特定のパターンに一致するかどうかを確認します。文字列値がパターン値と一致する場合、 trueを返します LIKE演算子に似ています。また、GLOBは大文字と小文字を区別します。
構文
SELECT * FROM table_name WHERE column_name GLOB 'search-expression'
例
SELECT *FROM StudentInfo WHERE NAME GLOB 'Joh*'; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 3 John 23 Norway 1 923******* 5 Johny 23 Norway 2 945*******
- SQLite Distinct
SQLiteでは、DISTINCTキーワードはSELECTステートメントの結果セットをスキャンし、重複する行を削除します。また、NULL値は重複と見なされるため、NULL値を持つ列でDISTINCT句を使用すると、NULL値の1行のみが保持されます。複数の列にDISTINCTを適用すると、ステートメントは coulnm1の一意の組み合わせを返します。 およびcolumn2。
例
SELECT DISTINCT AGE FROM StudentInfo; AGE ---------- 20 23 22
- SQLiteIN演算子
SQLiteでは、IN演算子を使用して、指定された値が指定された値のリストまたはサブクエリによって返される結果と一致するかどうかを判断します。
例
SELECT NAME FROM StudentInfo WHERE ADDRESS IN ('Texas', 'Houston'); NAME ---------- Mitch SAM
- SQLite UNION&UNION ALL
SQLiteでは、UNION演算子を使用して 2の結果セットを結合します 以上のSELECTステートメントを使用すると、さまざまなSELECTステートメント間の重複行が削除されます。 UNION演算子で使用したSELECTステートメントは、同様のデータ型の結果セットに同じ数のフィールドを持っている必要があることに注意してください。
構文
SELECT expression1, expression2,... expression_n FROM tables [WHERE conditions] UNION / UNION ALL SELECT expression1, expression2,... expression_n FROM tables [WHERE conditions];
例
SELECT DEPARTMENTID FROM StudentInfo UNION SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC; DEPARTMENTID ------------ 1 2 3 4 5
UNION ALL演算子は、2つ以上のSELECTステートメントの結果セットを結合するために使用され、重複を含むすべての行を返します。
例
SELECT DEPARTMENTID FROM StudentInfo UNION ALL SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC; DEPARTMENTID ------------ 1 1 2 2 2 2 3 3 4 4 5
これで、SQLiteを操作するときに使用する必要のある最も基本的なコマンドについて説明しました。このSQLiteチュートリアルを進めて、SQLiteのjoinステートメントを確認しましょう。
SQLiteに参加
SQLiteでは、結合を使用して、データベース内の2つ以上のテーブルのレコードを結合し、要件に基づいてレコードを取得します。 SQLiteで使用できるさまざまなタイプのJOINSは次のとおりです。
- 内部参加 – INNER JOINは、SQLiteステートメントで定義された条件に基づいて、複数のテーブルから一致するレコードのみを結合して返すために使用されます。
- 外部参加 – SQLite外部結合は、内部結合と同じように、複数のテーブルから一致する行を選択します 関係外のその他の行。簡単に言えば、SQLiteOUTERJOINはINNERJOINの追加であると言えます。 一般に、SQL標準には、LEFT、RIGHT、およびFULL外部結合の3種類の外部結合がありますが、SQLiteはLEFTOUTERJOINのみをサポートします。
- クロスジョイン –最初のテーブルの各行を2番目のテーブルのすべての行と照合することにより、行のデカルト積を取得するために使用されます。
- 自己参加 –同じテーブルをそれ自体と結合するために使用されます。自己結合を使用するには、要件に基づいて操作を実行するために、同じテーブルに異なるエイリアス名を作成する必要があります。
概念は、SQLなどの他のリレーショナルデータベースシステムの概念と似ています。したがって、詳細については、SQL結合に関するこの記事を参照してください。
これで、基本的なSQLiteコマンドについて説明しました。高度な概念はここではカバーされていません。したがって、SQLiteの高度な概念に関する別の記事をお楽しみに。 SQLiteが提供しなければならないすべての優れた機能を備えていても、特定の欠点もあります。
SQLiteチュートリアル:SQLiteのデメリット
以下にリストされているのは、SQLiteを使用することのデメリットです。
- クライアント/サーバーアーキテクチャではうまく機能しません。
- SQLiteデータベースのサイズはほとんどの場合2GBに制限されています。
- SQLiteはRIGHTOUTERJOINとFULLOUTERJOINを実装していません。 SQLiteでは、LEFTOUTERJOINのみを実装できます。
- SQLiteのビューは読み取り専用です。ビューでDMLステートメント(挿入、更新、削除)を使用することはできません。
- SQLiteでGRANTおよびREVOKEステートメントを使用することはできません。
これで、このSQLiteチュートリアルは終了です。
MySQLについて詳しく知り、このオープンソースのリレーショナルデータベースについて知りたい場合は、MySQLDBA認定トレーニングをご覧ください。 インストラクター主導のライブトレーニングと実際のプロジェクトの経験が付属しています。このトレーニングは、MySQLを深く理解し、主題をマスターするのに役立ちます。
質問がありますか?このSQLiteチュートリアルのコメントセクションでそれについて言及してください。折り返しご連絡いたします。