<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SQLite on Miura Computer Club</title>
    <link>/tags/sqlite/</link>
    <description>Recent content in SQLite on Miura Computer Club</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja-JP</language>
    <lastBuildDate>Mon, 17 Aug 2026 15:00:00 +0900</lastBuildDate><atom:link href="/tags/sqlite/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>レッスン121</title>
      <link>/lessons/lesson121/</link>
      <pubDate>Mon, 17 Aug 2026 15:00:00 +0900</pubDate>
      
      <guid>/lessons/lesson121/</guid>
      <description>データベース入門 データベースとは、構造を持ったデータの集合のことです。 簡単に言うと、あるルールに従って格納・取り出しができるデータの集まりです。
いろいろな種類のデータベースがありますが、今回はリレーショナルデータベース(RDB)と呼ばれるデータベースの1つであるSQLiteを使ってデータベースの使い方を学びましょう。
リレーショナルデータベース(RDB)とは リレーショナルデータベース(RDB)では、データの格納方法をエクセルやスプレッドシートのように、二次元（行と列）の表形式として事前に定義し、構造化データとして保存します。
RDBはSQLという言語を用いて、データの内容に応じた処理（登録・検索・更新・削除）を行うことができます。
また、複数の表を関係づけることで、情報を効率的に保存したり、複雑な条件での検索が可能になります。
具体的には下のようなアドレス帳のようなものです。
ID 名前 住所 電話番号 1 田中太郎 東京都江東区 1234 2 佐藤花子 宮城県仙台市 5678 3 佐藤三郎 東京都足立区 0123 各行が1つのデータ（レコード）に対応していて、各列（フィールド）がデータの種類を示します。
このような1つの表のことをテーブルと呼びます。
SQLとは SQLとはStructured Query Languageの略で、データベースを操作するためのプログラミング言語です。 データの追加、削除、更新、検索と言った操作を行えます。
以下は検索を行うSQL文の例で「stockというテーブルからpriceというフィールドが1000以下のレコードを取り出して」の意味です。 詳しい説明は後ほど行うので、ここではなんとなくイメージを掴んでもらえると良いです。
SELECT * FROM stock WHERE price &amp;lt;= 1000; SQLite SQLiteは、専用のサーバーを必要とせず、パソコン上でも手軽に利用できるRDBで、小規模なデータ管理で広く利用されています。 SQLiteはデータベース全体を1つのファイルで管理します。 そのため、バックアップや別の環境への移行も、ファイルをコピーするだけで簡単に行えます。
SQLiteのインストール Linux(Debian)ではSQLiteはインストール済みなので、あらためてインストールする必要はありません。 確認のため、ターミナルから以下のコマンドを入力してみてください。
sqlite3 -version バージョン番号が表示されれば、SQLiteがインストール済みです。
Windowsなど、SQLiteがインストールされていない場合は以下のサイトからダウンロードしてください。
https://www.sqlite.org/
上記サイトの「Download」タブからOSに対応したzipファイルをダウンロードし、適当なフォルダ上に解凍し、そのフォルダをPATHに追加し、コマンドラインからsplite3を実行すればSQLiteが起動します。
データベースの作成 今回は果物の在庫表データベースを作ってみて理解を深めましょう。
コマンドラインからcdコマンドでデータベースを作成したいフォルダ（例えば、あらかじめホームディレクトリの下に「sqlite」というフォルダを作成し、そのフォルダ）に移動し、sqlite3 データベース名（新規）を実行してSQLiteにデータベースを作成します。 SQLiteはデータベース全体を1つのファイルで管理するので、「データベース名」がそのまま「ファイル名」になり、フォルダに新しいファイルが作成されます。
以下のようにコマンドラインから実行して、shop.dbというデータベースを作成しましょう。
sqlite3 shop.db すると以下のように表示されます。
SQLite version XXX Enter &amp;#34;.help&amp;#34; for usage hints.</description>
      <content>&lt;h1 id=&#34;データベース入門&#34;&gt;データベース入門&lt;/h1&gt;
&lt;p&gt;データベースとは、&lt;strong&gt;構造を持ったデータの集合&lt;/strong&gt;のことです。
簡単に言うと、&lt;strong&gt;あるルールに従って格納・取り出しができるデータの集まり&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;いろいろな種類のデータベースがありますが、今回は&lt;strong&gt;リレーショナルデータベース(RDB)&lt;strong&gt;と呼ばれるデータベースの1つである&lt;/strong&gt;SQLite&lt;/strong&gt;を使ってデータベースの使い方を学びましょう。&lt;/p&gt;
&lt;h2 id=&#34;リレーショナルデータベースrdbとは&#34;&gt;リレーショナルデータベース(RDB)とは&lt;/h2&gt;
&lt;p&gt;リレーショナルデータベース(RDB)では、データの格納方法をエクセルやスプレッドシートのように、二次元（行と列）の表形式として事前に定義し、構造化データとして保存します。&lt;/p&gt;
&lt;p&gt;RDBは&lt;strong&gt;SQL&lt;/strong&gt;という言語を用いて、&lt;strong&gt;データの内容に応じた&lt;/strong&gt;処理（&lt;strong&gt;登録・検索・更新・削除&lt;/strong&gt;）を行うことができます。&lt;/p&gt;
&lt;p&gt;また、&lt;strong&gt;複数の表を関係づける&lt;/strong&gt;ことで、情報を効率的に保存したり、複雑な条件での検索が可能になります。&lt;/p&gt;
&lt;p&gt;具体的には下のようなアドレス帳のようなものです。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:center&#34;&gt;ID&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;名前&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;住所&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;電話番号&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;1&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;田中太郎&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;東京都江東区&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;1234&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;2&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;佐藤花子&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;宮城県仙台市&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5678&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;3&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;佐藤三郎&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;東京都足立区&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;0123&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各行が1つのデータ（&lt;strong&gt;レコード&lt;/strong&gt;）に対応していて、各列（&lt;strong&gt;フィールド&lt;/strong&gt;）がデータの種類を示します。&lt;/p&gt;
&lt;p&gt;このような1つの表のことを&lt;strong&gt;テーブル&lt;/strong&gt;と呼びます。&lt;/p&gt;
&lt;h3 id=&#34;sqlとは&#34;&gt;SQLとは&lt;/h3&gt;
&lt;p&gt;SQLとは&lt;strong&gt;Structured Query Language&lt;/strong&gt;の略で、データベースを操作するためのプログラミング言語です。
データの&lt;strong&gt;追加&lt;/strong&gt;、&lt;strong&gt;削除&lt;/strong&gt;、&lt;strong&gt;更新&lt;/strong&gt;、&lt;strong&gt;検索&lt;/strong&gt;と言った操作を行えます。&lt;/p&gt;
&lt;p&gt;以下は検索を行うSQL文の例で「&lt;strong&gt;stock&lt;/strong&gt;というテーブルから&lt;strong&gt;price&lt;/strong&gt;というフィールドが&lt;strong&gt;1000以下&lt;/strong&gt;のレコードを取り出して」の意味です。
詳しい説明は後ほど行うので、ここではなんとなくイメージを掴んでもらえると良いです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; stock &lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; price &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1000&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;sqlite&#34;&gt;SQLite&lt;/h2&gt;
&lt;p&gt;SQLiteは、専用のサーバーを必要とせず、パソコン上でも手軽に利用できるRDBで、小規模なデータ管理で広く利用されています。
SQLiteはデータベース全体を1つのファイルで管理します。
そのため、バックアップや別の環境への移行も、ファイルをコピーするだけで簡単に行えます。&lt;/p&gt;
&lt;h3 id=&#34;sqliteのインストール&#34;&gt;SQLiteのインストール&lt;/h3&gt;
&lt;p&gt;Linux(Debian)ではSQLiteはインストール済みなので、あらためてインストールする必要はありません。
確認のため、ターミナルから以下のコマンドを入力してみてください。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite3 -version
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;バージョン番号が表示されれば、SQLiteがインストール済みです。&lt;/p&gt;
&lt;p&gt;Windowsなど、SQLiteがインストールされていない場合は以下のサイトからダウンロードしてください。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.sqlite.org/&#34;&gt;https://www.sqlite.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上記サイトの「Download」タブからOSに対応したzipファイルをダウンロードし、適当なフォルダ上に解凍し、そのフォルダをPATHに追加し、コマンドラインから&lt;code&gt;splite3&lt;/code&gt;を実行すればSQLiteが起動します。&lt;/p&gt;
&lt;h3 id=&#34;データベースの作成&#34;&gt;データベースの作成&lt;/h3&gt;
&lt;p&gt;今回は&lt;strong&gt;果物の在庫表データベース&lt;/strong&gt;を作ってみて理解を深めましょう。&lt;/p&gt;
&lt;p&gt;コマンドラインから&lt;code&gt;cd&lt;/code&gt;コマンドでデータベースを作成したいフォルダ（例えば、あらかじめホームディレクトリの下に「sqlite」というフォルダを作成し、そのフォルダ）に移動し、&lt;code&gt;sqlite3 データベース名（新規）&lt;/code&gt;を実行してSQLiteにデータベースを作成します。
SQLiteはデータベース全体を1つのファイルで管理するので、「データベース名」がそのまま「ファイル名」になり、フォルダに新しいファイルが作成されます。&lt;/p&gt;
&lt;p&gt;以下のようにコマンドラインから実行して、&lt;code&gt;shop.db&lt;/code&gt;というデータベースを作成しましょう。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite3 shop.db
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;すると以下のように表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SQLite version XXX
Enter &amp;#34;.help&amp;#34; for usage hints.
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この操作で、新しいデータベースが作成され、そのデータベースに接続され、&lt;code&gt;sqlite&amp;gt;&lt;/code&gt;というSQLiteのシェルが起動されます。
エクスプローラ等で見てみるとフォルダに「shop.db」という新しいファイルが作成されているのがわかります。&lt;/p&gt;
&lt;p&gt;なお、すでに存在しているデータベースに接続する場合は&lt;code&gt;sqlite3 既存のデータベース名（ファイル名）&lt;/code&gt;を実行します。&lt;/p&gt;
&lt;p&gt;SQL文は&lt;code&gt;sqlite&amp;gt;&lt;/code&gt;というSQLiteのシェルから入力します。SQL文の末尾には「;」を付けてSQL文が終了したことを示します。&lt;/p&gt;
&lt;h4 id=&#34;今回作りたい在庫表テーブル&#34;&gt;今回作りたい在庫表テーブル&lt;/h4&gt;
&lt;p&gt;今回作りたい果物の在庫表は以下のように、4つのフィールドを持っているものとします。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:center&#34;&gt;id&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;name&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;price&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;country&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;1&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;orange&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;100&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;us&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;2&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;apple&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;150&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;japan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;3&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;mango&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;300&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;taiwan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;4&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;orange&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;180&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;japan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;grape&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;500&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;italy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;nameは果実の名前、priceは値段、countryは産地（国名）を表します。
ちなみにIDは、このテーブルにおける&lt;strong&gt;主キー&lt;/strong&gt;と呼ばれるもので、&lt;strong&gt;レコードを一意に区別する&lt;/strong&gt;ためのものです。
そのため&lt;strong&gt;主キー&lt;/strong&gt;においては&lt;strong&gt;同じ値の重複&lt;/strong&gt;と&lt;strong&gt;空の値&lt;/strong&gt;が禁止されています。&lt;/p&gt;
&lt;h4 id=&#34;テーブルの作成削除&#34;&gt;テーブルの作成・削除&lt;/h4&gt;
&lt;p&gt;テーブルを作成するには&lt;code&gt;CREATE TABLE テーブル名 (フィールド名 型、...);&lt;/code&gt;というSQL文を入力します。&lt;/p&gt;
&lt;p&gt;在庫表テーブルの作成には以下のようなSQL文をSQLiteのシェルに入力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TABLE&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	(id INTEGER &lt;span style=&#34;color:#66d9ef&#34;&gt;PRIMARY&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;KEY&lt;/span&gt; AUTOINCREMENT,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	name TEXT,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	price INTEGER,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	country TEXT);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;CREATE TABLE stock&lt;/code&gt;でテーブルの名前をstockと定義しています。&lt;/p&gt;
&lt;p&gt;2行目以降は各フィールドのフィールド名とデータ型を定義しています。
データ型には&lt;strong&gt;NULL&lt;/strong&gt;、&lt;strong&gt;INTEGER&lt;/strong&gt;、&lt;strong&gt;REAL&lt;/strong&gt;、&lt;strong&gt;TEXT&lt;/strong&gt;、&lt;strong&gt;BLOB&lt;/strong&gt;の5種類があります。
通常は以下の3種類を使用します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;INTEGER&lt;/strong&gt;	整数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;REAL&lt;/strong&gt;	実数、小数点のある数値&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TEXT&lt;/strong&gt;	文字列、日本語も可&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2行目の&lt;code&gt;PRIMARY KEY&lt;/code&gt;は、このフィールドが主キーであるという宣言です。
また、&lt;code&gt;AUTOINCREMENT&lt;/code&gt;とあるのは、このフィールドに対し、&lt;strong&gt;新たに追加されたレコードに対して、現在格納されているレコードのうち最大のidに1だけ足したidを与える&lt;/strong&gt;という設定です。
これによって、他のレコードの値と被る（重複する）ことはありません。&lt;/p&gt;
&lt;p&gt;なお、作成したテーブルを削除する場合は&lt;code&gt;DROP TABLE テーブル名;&lt;/code&gt;というSQL文を入力します。&lt;/p&gt;
&lt;h4 id=&#34;テーブル情報の確認&#34;&gt;テーブル情報の確認&lt;/h4&gt;
&lt;p&gt;SQLiteのシェルから&lt;code&gt;.schema テーブル名&lt;/code&gt;コマンドを実行すると作成したテーブル情報を確認することができます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; .&lt;span style=&#34;color:#66d9ef&#34;&gt;schema&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;すると、以下のように表示されます&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TABLE&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(id INTEGER &lt;span style=&#34;color:#66d9ef&#34;&gt;PRIMARY&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;KEY&lt;/span&gt; AUTOINCREMENT,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;name TEXT,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;price INTEGER,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;country TEXT);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;新しいデータレコードを登録する&#34;&gt;新しいデータ（レコード）を登録する&lt;/h4&gt;
&lt;p&gt;新しいデータ（レコード）の登録は&lt;code&gt;INSERT INTO テーブル名 (フィールド名,...) VALUES （値,...);&lt;/code&gt;のSQL文で行えます。&lt;/p&gt;
&lt;p&gt;先ほどの果物の在庫表の1つめの&lt;code&gt;orange, 100, us&lt;/code&gt;を追加してみます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;INSERT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;INTO&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	(name, price, country)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;VALUES&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;orange&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;us&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;これにならって表にある他の果物もすべて追加してください。&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;データレコードの内容を確認する&#34;&gt;データ（レコード）の内容を確認する&lt;/h4&gt;
&lt;p&gt;全てのデータ（レコード）の内容を確認するには以下のSQL文を入力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; stock;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;果物の在庫表すべてが登録できていれば、以下のように表示されるはずです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1|orange|100|us
2|apple|150|japan
3|mango|300|taiwan
4|orange|180|japan
5|grape|500|italy
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;最初のフィールドのidはデータを追加した順に1から1つずつ増えた値が自動的に付与されています。&lt;/p&gt;
&lt;p&gt;この表示が見にくいなと思う場合はSQLiteのシェルに以下のコマンドを入力してください。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .header on
sqlite&amp;gt; .mode column
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;入力後、上記のSELECTコマンドを実行すると以下のようにフィールド名が付与され、インデントで整列されて表示されるようになります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;id          name        price       country   
----------  ----------  ----------  ----------
1           orange      100         us        
2           apple       150         japan     
3           mango       300         taiwan    
4           orange      180         japan     
5           grape       500         italy 
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;データレコードを検索する&#34;&gt;データ（レコード）を検索する&lt;/h4&gt;
&lt;p&gt;先ほどデータ（レコード）内容の確認で使用した、&lt;code&gt;SELECT&lt;/code&gt;というコマンドは&lt;strong&gt;データ（レコード）を取り出す&lt;/strong&gt;ためのものです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SELECT フィールド名1, フィールド名2, ... FROM テーブル名;&lt;/code&gt;というSQL文で指定したテーブルから指定したフィールドの値を取り出すことができます。&lt;/p&gt;
&lt;p&gt;なお、先ほどのデータ（レコード）内容の確認で使用した&lt;b&gt;*はワイルドカード&lt;/b&gt;と呼ばれ、フィールド名の代わりにこれを指定すると&lt;strong&gt;すべてのフィールドの値を取り出すことができます。&lt;/strong&gt;&lt;/p&gt;
&lt;h5 id=&#34;whereによる条件付け&#34;&gt;WHEREによる条件付け&lt;/h5&gt;
&lt;p&gt;作成したテーブルから&lt;strong&gt;日本産の果物&lt;/strong&gt;だけを見たいときはどうすれば良いのでしょうか。
ここで活躍するのが、&lt;strong&gt;WHERE句による条件づけ&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SELECT * FROM stock WHERE 条件;&lt;/code&gt;というSQL文で条件にあうデータ（レコード）だけを検索・出力できます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;日本産の果物だけ&lt;/strong&gt;という条件であれば、以下のようなSQL文になります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; country &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;japan&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下のように、&lt;strong&gt;日本産の果物のデータ（レコード）のみ&lt;/strong&gt;が表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;2|apple|150|japan
4|orange|180|japan
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;SQL文の&lt;code&gt;WHERE country = &#39;japan&#39;&lt;/code&gt;の部分が、&lt;strong&gt;countryフィールドが&amp;rsquo;japan&amp;rsquo;となるような条件づけ&lt;/strong&gt;を行っています。&lt;/p&gt;
&lt;p&gt;例えば、&lt;strong&gt;150円以上の果物を表示&lt;/strong&gt;したいときは、以下のようなSQLコマンドにします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; price &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;150&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;すると、以下のように表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;2|apple|150|japan
3|mango|300|taiwan
4|orange|180|japan
5|grape|500|italy
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;データレコードを更新する&#34;&gt;データ（レコード）を更新する&lt;/h4&gt;
&lt;p&gt;データの更新を行ってみましょう。&lt;/p&gt;
&lt;p&gt;例として、日本産のオレンジの値段を130円に下げたい場合の例です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;UPDATE&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;SET&lt;/span&gt; price &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;130&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;orange&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AND&lt;/span&gt; country &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;japan&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このように&lt;code&gt;UPDATE テーブル名 SET フィールド名 = 新しい値 WHERE 条件;&lt;/code&gt;というSQL文で更新を行います。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SET フィールド名 = 新しい値&lt;/code&gt;（上記例では&lt;code&gt;price = 130&lt;/code&gt;）によって&lt;strong&gt;更新したいフィールド名(price)に新しい値(130)を渡しています。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WHERE 条件&lt;/code&gt;の部分で、上記例では&lt;code&gt;AND&lt;/code&gt;を使って2つの条件(&lt;code&gt;name = &#39;orange&#39;&lt;/code&gt;と&lt;code&gt;country = &#39;japan&#39;&lt;/code&gt;）がどちらも成り立つようなレコードを指定しています。
&lt;code&gt;AND&lt;/code&gt;の他にも&lt;code&gt;OR&lt;/code&gt;（どちらか）や&lt;code&gt;NOT&lt;/code&gt;（でない）などを使用することができます。&lt;/p&gt;
&lt;p&gt;上記SQL文を実行した後、以下のSQL文を実行して、正しく更新されていることを確認してください。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;orange&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AND&lt;/span&gt; country &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;japan&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下のように更新された値が表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;4|orange|130|japan
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;今回の例では&lt;strong&gt;日本産のオレンジ&lt;/strong&gt;という条件にしましたが、たとえば&lt;strong&gt;日本産のオレンジ&lt;/strong&gt;が複数個あった場合は、複数個すべての値段が新しい値に更新されます。
もし、特定のレコードだけ更新したい場合は、条件を&lt;code&gt;id = 更新したいレコードのid&lt;/code&gt;にします。
idは一意（重複しない）なのでidを指定することで特定のレコードのみを更新することができます。&lt;/p&gt;
&lt;h4 id=&#34;データレコードを削除する&#34;&gt;データ（レコード）を削除する&lt;/h4&gt;
&lt;p&gt;作成したデータ（レコード）を削除するには&lt;code&gt;DELETE FROM テーブル名 WHERE 条件;&lt;/code&gt;というSQL文で削除します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;日本産のオレンジ&lt;/strong&gt;を削除したい場合は、以下のようなSQL文を入力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;DELETE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; stock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;WHERE&lt;/span&gt; name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;orange&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AND&lt;/span&gt; country &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;japan&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この処理は削除が必要な時に行う処理ですが、今回は実行しなくて結構です。&lt;/p&gt;
&lt;h4 id=&#34;sqliteのシェルを終了する&#34;&gt;SQLiteのシェルを終了する&lt;/h4&gt;
&lt;p&gt;SQLiteのシェルを終了して、データベースへのアクセスを終了するには&lt;code&gt;.exit&lt;/code&gt;というコマンドを入力します。&lt;/p&gt;
&lt;p&gt;データベースにアクセスし続けていると、他の人（アプリ）がそのデータベースに書き込むことができなくなってしまいます。
データベースへの操作が完了したら、速やかにSQLiteのシェルを終了して、データベースへのアクセスを終了してください。&lt;/p&gt;
&lt;h4 id=&#34;その他の機能&#34;&gt;その他の機能&lt;/h4&gt;
&lt;p&gt;今回は詳細までは触れませんが、SQLiteには以下のような様々な機能があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ビューの作成・削除&lt;/p&gt;
&lt;p&gt;作成済みのテーブルの一部（例えば条件）を新たな仮想的なテーブルにします。
たとえば果物の在庫表でいえば、国ごとにビューという仮想テーブルをつくることができます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;インデックスの作成・削除&lt;/p&gt;
&lt;p&gt;テーブルに多くのフィールドがあったり、大量のデータが格納されている場合、検索に時間がかかる場合があります。
このような場合、適当なフィールドでインデックス（並べ替え）を作っておくことで、検索を早くすることができます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;トリガーの作成・削除&lt;/p&gt;
&lt;p&gt;特定のテーブルのデータが更新されたら、同時に別のテーブルのデータを更新したい場合に使用します。
BEFOREトリガーではデータ更新前にトリガーに記述されたSQL文が実行されます。
AFTERトリガーではデータ更新後にトリガーに記述されたSQL文が実行されます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;データ取得（SELECT）の追加機能&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;取得データをフィールドの値でソートする&lt;/li&gt;
&lt;li&gt;指定した範囲の値を取得する&lt;/li&gt;
&lt;li&gt;指定した値のリストに合致するものを取得する&lt;/li&gt;
&lt;li&gt;パターンマッチングしたものを取得する&lt;/li&gt;
&lt;li&gt;フィールド名に別名を付ける&lt;/li&gt;
&lt;li&gt;重複するデータを削除して取得する&lt;/li&gt;
&lt;li&gt;取得するデータの数と開始位置を指定する&lt;/li&gt;
&lt;li&gt;フィールドの値に対して演算を行った結果を取得する&lt;/li&gt;
&lt;li&gt;フィールドの値に応じて異なる結果を返す条件文を記述する&lt;/li&gt;
&lt;li&gt;データをグループ化して合計や平均などを計算する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;テーブルの結合&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;共通のフィールドに対して同じ値が格納されているデータのみを結合して取得する（内部結合）&lt;/li&gt;
&lt;li&gt;共通のフィールドに対してどちらかのデータがあれば全て結合して取得する（外部結合）&lt;/li&gt;
&lt;li&gt;２つのテーブルのデータの全ての組み合わせを取得する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;関数&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数値の演算関数（合計、平均、最大、最小、四捨五入、絶対値、乱数）&lt;/li&gt;
&lt;li&gt;日付や時刻の取得&lt;/li&gt;
&lt;li&gt;文字列関数（文字数、大文字・小文字変換、置換、部分文字列、先頭・末尾の空白削除）&lt;/li&gt;
&lt;li&gt;その他（データ型の取得など）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;他のアプリとの連携&#34;&gt;他のアプリとの連携&lt;/h2&gt;
&lt;p&gt;ユーザーが直接SQL文を使用して、データベースにアクセスすることはめったにありません。
データベースはアプリケーションを介して利用されることが一般的です。&lt;/p&gt;
&lt;p&gt;たとえば、&lt;strong&gt;果物の在庫表&lt;/strong&gt;の場合、果物店の在庫検索アプリ、果物店の売上管理アプリ、果物店の在庫管理アプリ、果物店の発注管理アプリなど様々なアプリが共通の&lt;strong&gt;果物の在庫表&lt;/strong&gt;情報を必要とします。
このような場合に、共通の&lt;strong&gt;果物の在庫表&lt;/strong&gt;情報を一元的に管理する仕組みが&lt;strong&gt;データベース&lt;/strong&gt;なのです。&lt;/p&gt;
&lt;p&gt;各アプリはSQL文を使って&lt;strong&gt;果物在庫表&lt;/strong&gt;データベースにアクセスし、必要な情報を取得したり、追加したり、変更したりします。&lt;/p&gt;
&lt;p&gt;アプリからデータベースにアクセスする方法について、pythonを例にして以下で説明します。&lt;/p&gt;
&lt;h3 id=&#34;pythonでsqliteを使用する&#34;&gt;pythonでSQLiteを使用する&lt;/h3&gt;
&lt;p&gt;pythonを使ってSQLiteにアクセスする方法は以下のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sqlite3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; sqlite3&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;connect(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;データベース名&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# データベースに接続する&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cur &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;cursor()	&lt;span style=&#34;color:#75715e&#34;&gt;# SQL文を使用するため、データベース・カーソルを作成する&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SQL文&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# SQL文を実行する（INSERTなど結果がない場合）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;res &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SQL文&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# SQL文を実行する（SELECTなど結果がある場合）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;res&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fetchone()	&lt;span style=&#34;color:#75715e&#34;&gt;# 1個の結果を取得する&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;res&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fetchall() &lt;span style=&#34;color:#75715e&#34;&gt;# すべての結果を配列で取得する&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commit()	&lt;span style=&#34;color:#75715e&#34;&gt;# データベースの更新を確定する（更新しない場合はなくてもよい）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()	&lt;span style=&#34;color:#75715e&#34;&gt;# データベース・カーソルを閉じる&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()	&lt;span style=&#34;color:#75715e&#34;&gt;# データベースの接続を閉じる&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;なお、&lt;code&gt;cur.execute(&amp;quot;SQL文&amp;quot;)&lt;/code&gt;でSQL文を実行する際には、SQLiteのシェルから実行する時のように末尾にSQL文の終了を示す「;」を付ける必要はありません。&lt;/p&gt;
&lt;p&gt;たとえば、先ほど作成したshopデータベースのstockテーブルから、全てのデータを取得してprintしてみましょう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sqlite3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; sqlite3&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;connect(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;shop.db&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cur &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;cursor()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;res &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT * FROM stock&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(res&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fetchall())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commit()	&lt;span style=&#34;color:#75715e&#34;&gt;# 更新しないので、なくてもよい&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;shop.dbファイルが置かれている場所で、上記プログラムを実行するとコンソールに以下のように表示されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;orange&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;us&amp;#39;&lt;/span&gt;), (&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;apple&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;150&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;japan&amp;#39;&lt;/span&gt;), (&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;mango&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;taiwan&amp;#39;&lt;/span&gt;), (&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;orange&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;130&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;japan&amp;#39;&lt;/span&gt;), (&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;grape&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;500&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;italy&amp;#39;&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;全てのデータがレコードごとの配列として出力され、各レコードの内容はフィールドごとのタプル（変更できない配列）になっています。
このようにテーブルのデータが二次元の配列として出力されているのがわかります。&lt;/p&gt;
&lt;p&gt;したがって、&lt;code&gt;data = res.fetchall()&lt;/code&gt;とした時、0から始まるi番目のレコードの0から始まるj番目のフィールドのデータは&lt;code&gt;data[i][j]&lt;/code&gt;で取得することができます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cur.execute(&amp;quot;SQL文&amp;quot;)&lt;/code&gt;のSQL文をいろいろなSQL文に変えて、正しく実行され、出力されることを確認してみてください。&lt;/p&gt;
&lt;p&gt;最後にpythonでこのデータベースを使った簡単なアプリを作ってみましょう。&lt;/p&gt;
&lt;h4 id=&#34;在庫検索アプリの作成&#34;&gt;&lt;strong&gt;在庫検索アプリ&lt;/strong&gt;の作成&lt;/h4&gt;
&lt;p&gt;まず、最初のアプリは果実店の店頭に置く&lt;strong&gt;在庫検索アプリ&lt;/strong&gt;です。
果実名と国名を入力すると、在庫があれば、「果実名、値段、国名」を表示し、在庫がなければ「在庫はありません！！」と表示します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;import sqlite3

con = sqlite3.connect(&amp;#34;shop.db&amp;#34;)
cur = con.cursor()
result = cur.execute(&amp;#34;SELECT DISTINCT name FROM stock&amp;#34;)
names = result.fetchall()
result = cur.execute(&amp;#34;SELECT DISTINCT country FROM stock&amp;#34;)
countries = result.fetchall()
for i, name in enumerate(names):
    print(f&amp;#34;{i+1}: {name[0]}&amp;#34;, end=&amp;#34; &amp;#34;)
print(&amp;#34;\n果物名の番号を入力してください： &amp;#34;, end=&amp;#39;&amp;#39;)
name = names[int(input())-1][0]
for i, country in enumerate(countries):
    print(f&amp;#34;{i+1}: {country[0]}&amp;#34;, end=&amp;#34; &amp;#34;)
print(&amp;#34;\n国名の番号を入力してください： &amp;#34;, end=&amp;#39;&amp;#39;)
country = countries[int(input())-1][0]
result = cur.execute(f&amp;#34;SELECT * FROM stock WHERE name = &amp;#39;{name}&amp;#39; AND country = &amp;#39;{country}&amp;#39;&amp;#34;)
fruit = result.fetchone()
if fruit is None:
    print(&amp;#34;在庫はありません！！&amp;#34;)
else:
    print(f&amp;#34;果実名: {fruit[1]}, 値段: {fruit[2]}, 国名: {fruit[3]}&amp;#34;)
con.commit()		# 更新しないのでなくてもよい
cur.close()
con.close()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;データベースに接続した後、&lt;code&gt;SELECT DISTINCT name FROM stock&lt;/code&gt;というSQL文で在庫の中の果実名の一覧を取得しています。
なお、&lt;code&gt;DISTINCT&lt;/code&gt;というのは重複なしに取得するという意味です。&lt;/p&gt;
&lt;p&gt;次に、&lt;code&gt;SELECT DISTINCT country FROM stock&lt;/code&gt;いうSQL文で在庫の中の国名の一覧を取得しています。&lt;/p&gt;
&lt;p&gt;そして、番号付で果実名の一覧を表示し、番号を入力させ、検索したい果実名を&lt;code&gt;name&lt;/code&gt;変数に入れます。&lt;/p&gt;
&lt;p&gt;次に、番号付で国名の一覧を表示し、番号を入力させ、検索したい国名を&lt;code&gt;country&lt;/code&gt;変数に入れます。&lt;/p&gt;
&lt;p&gt;最後に、&lt;code&gt;SELECT * FROM stock WHERE name = &#39;{name}&#39; AND country = &#39;{country}&#39;&lt;/code&gt;というSQL文で検索したい果実名かつ検索したい国名のデータ（レコード）を取得します。&lt;/p&gt;
&lt;p&gt;取得した1個目のデータを取得し、&lt;code&gt;fruit&lt;/code&gt;変数に入れます。
もし、該当するデータがなければ&lt;code&gt;fruit&lt;/code&gt;変数には&lt;code&gt;None&lt;/code&gt;が入るので「在庫がありません！！」と出力し、
該当するデータがあれば、&lt;code&gt;fruit&lt;/code&gt;変数の値を表示しています。（&lt;code&gt;fruit[0]&lt;/code&gt;にid、&lt;code&gt;fruit[1]&lt;/code&gt;に名前、&lt;code&gt;fruit[2]&lt;/code&gt;に値段、&lt;code&gt;fruit[3]&lt;/code&gt;に国名が入っています）&lt;/p&gt;
&lt;p&gt;最後にカーソルとデータベースを閉じます。&lt;/p&gt;
&lt;p&gt;このアプリの実行結果は以下のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1: orange 2: apple 3: mango 4: grape 
果物名の番号を入力してください： 1
1: us 2: japan 3: taiwan 4: italy 
国名の番号を入力してください： 2
果実名: orange, 値段: 130, 国名: japan
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1: orange 2: apple 3: mango 4: grape 
果物名の番号を入力してください： 1
1: us 2: japan 3: taiwan 4: italy 
国名の番号を入力してください： 3
在庫表にありません！！
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;在庫管理アプリの作成&#34;&gt;&lt;strong&gt;在庫管理アプリ&lt;/strong&gt;の作成&lt;/h4&gt;
&lt;p&gt;次に、簡単な&lt;strong&gt;在庫管理アプリ&lt;/strong&gt;を作成してみます。&lt;/p&gt;
&lt;p&gt;このアプリには、以下の機能があります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在庫の一覧表示&lt;/li&gt;
&lt;li&gt;在庫の追加&lt;/li&gt;
&lt;li&gt;在庫の削除&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sqlite3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; sqlite3&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;connect(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;shop.db&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cur &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;cursor()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;items &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;在庫の一覧表示&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;在庫の追加&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;在庫の削除&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i, item &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; enumerate(items):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;i&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;item&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;どの番号のメニューにしますか？ &amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;no &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; int(input())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; no &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT * FROM stock&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    data &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; result&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fetchall()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;id&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;果実名&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;値段&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;国名&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; record &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; data:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;elif&lt;/span&gt; no &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT DISTINCT name FROM stock&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    names &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; result&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fetchall()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    names&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;その他&amp;#34;&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i, name &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; enumerate(names):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;i&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;name[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;果物名の番号を入力してください： &amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; int(input())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; len(names):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;果実名を入力してください： &amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; input()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; names[i&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;][&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;値段を入力してください： &amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    price &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; int(input())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT DISTINCT country FROM stock&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    countries &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; result&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fetchall()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    countries&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;その他&amp;#34;&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i, country &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; enumerate(countries):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;i&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;country[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;国名の番号を入力してください： &amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; int(input())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; len(countries):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;国名を入力してください： &amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        country &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; input()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        country &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; countries[i&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;][&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;INSERT INTO stock (name, price, country) VALUES (&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;, &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;price&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;, &amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;country&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;)&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;elif&lt;/span&gt; no &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT * FROM stock&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    data &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; result&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fetchall()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;id&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;果実名&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;値段&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;国名&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; record &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; data:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;record[&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;削除するレコードのidを入力してください： &amp;#34;&lt;/span&gt;, end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    id &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; int(input())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;execute(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DELETE FROM stock WHERE id = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;id&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commit()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cur&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;con&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実行すると、最初のメニューに従って、在庫の一覧表示、在庫の追加、在庫の削除が行えます。&lt;/p&gt;
&lt;h5 id=&#34;在庫の一覧表示の実行例&#34;&gt;在庫の一覧表示の実行例&lt;/h5&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1: 在庫の一覧表示 2: 在庫の追加 3: 在庫の削除 
どの番号のメニューにしますか？ 1
id	果実名	値段	国名
1	orange	100		us
2	apple	150		japan
3	mango	300		taiwan
4	orange	130		japan
5	grape	500		italy
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id=&#34;在庫の追加の実行例&#34;&gt;在庫の追加の実行例&lt;/h5&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1: 在庫の一覧表示 2: 在庫の追加 3: 在庫の削除 
どの番号のメニューにしますか？ 2
1: orange 2: apple 3: mango 4: grape 5: その他 
果物名の番号を入力してください： 5
果実名を入力してください： banana
値段を入力してください： 200
1: us 2: japan 3: taiwan 4: italy 5: その他 
国名の番号を入力してください： 3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在庫の追加では、果実名と値段と国名を入力します。果実名と国名はそれぞれ在庫にある果実名と国名の一覧およびその他を選択させ、その他を選択した場合は、名称を直接入力します。&lt;/p&gt;
&lt;p&gt;上記の例では、台湾産のバナナ（バナナは在庫表にはない）200円を追加しています。&lt;/p&gt;
&lt;h5 id=&#34;在庫の削除の実行例&#34;&gt;在庫の削除の実行例&lt;/h5&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1: 在庫の一覧表示 2: 在庫の追加 3: 在庫の削除 
どの番号のメニューにしますか？ 3
id	果実名	値段	国名
1	orange	100	us
2	apple	150	japan
3	mango	300	taiwan
4	orange	130	japan
5	grape	500	italy
7	banana	200	taiwan

削除するレコードのidを入力してください： 7
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在庫の削除では在庫の一覧を表示し、削除する在庫をidで選択します。&lt;/p&gt;
&lt;p&gt;上記の例ではさきほど追加したばかりの台湾産のバナナを削除しました。&lt;/p&gt;
&lt;h4 id=&#34;データベースの利点&#34;&gt;データベースの利点&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;在庫検索アプリ&lt;/strong&gt;では、データベースから在庫を検索します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;在庫管理アプリ&lt;/strong&gt;では新しい在庫が増えたらデータベースに追加し、在庫がなくなったらデータベースから削除します。&lt;/p&gt;
&lt;p&gt;このように、&lt;strong&gt;在庫検索アプリ&lt;/strong&gt;と&lt;strong&gt;在庫管理アプリ&lt;/strong&gt;は&lt;strong&gt;果物の在庫表&lt;/strong&gt;という共通のデータベースを使っているので、
別々にアプリを作ってもデータの整合性が確保され、&lt;strong&gt;在庫検索アプリ&lt;/strong&gt;では常に最新の在庫状況が確認できます。
これが、アプリとデータベースを分けておく利点です。&lt;/p&gt;
&lt;p&gt;なお、データの整合性を確保するため、どちらかのアプリがデータベースにアクセスしている間はデータベースへの書き込みはロックされます（読み込みはできます）。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;SQLiteをつかってリレーショナルデータベース(RDB)とSQLの基本を学習しました。
また、pythonからSQLiteを呼び出して使用する方法も学習しました。&lt;/p&gt;
&lt;p&gt;データベース管理システムは別名「ミドルウェア」とも呼ばれ、ユーザーが直接使用することはありませんが、アプリケーションを介していろいろな場面で使用されています。&lt;/p&gt;
&lt;p&gt;pythonなどでアプリケーションを作成する際、「〇〇帳」のようなデータテーブルが必要になったらデータベースの活用を検討してみてください。
複数のアプリとの共通化やデータの整合性（常に最新のデータが得られる）などデータベースを活用することで様々な利点を得られます。&lt;/p&gt;
&lt;p&gt;なお、SQL文については簡単な解説しかしていませんが、その他の機能も含め、興味のある人はぜひ勉強してみてください。
paizaなどの学習サイトでも学ぶこともできます。&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
