<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>devkuma – データベース</title>
    <link>https://www.devkuma.com/jp/tags/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9/</link>
    <image>
      <url>https://www.devkuma.com/jp/tags/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9/logo/180x180.jpg</url>
      <title>データベース</title>
      <link>https://www.devkuma.com/jp/tags/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9/</link>
    </image>
    <description>Recent content in データベース on devkuma</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>jp</language>
    <managingEditor>kc@example.com (kc kim)</managingEditor>
    <webMaster>kc@example.com (kc kim)</webMaster>
    <copyright>The devkuma</copyright>
    
	  <atom:link href="https://www.devkuma.com/jp/tags/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>SQLite | データ型（Data Type） | SQLiteで使用できるデータ型</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/date-type/intro/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/date-type/intro/</guid>
      <description>
        
        
        &lt;p&gt;テーブルに値を保存する列を定義するときは、各列に保存する値に応じてデータ型を指定できます。ここでは、SQLiteの列に指定できるデータ型について説明します。&lt;/p&gt;
&lt;h2 id=&#34;保存される値のデータ型&#34;&gt;保存される値のデータ型&lt;/h2&gt;
&lt;p&gt;多くのデータベースでは列ごとにデータ型を指定し、その列に保存できる値を決定します。SQLite3では、テーブルを定義するときに各列のデータ型を指定する必要はありません。データ型を指定していない列には、さまざまな形式の値を保存できます。&lt;/p&gt;
&lt;p&gt;列のデータ型を指定していなくても、保存された各値にはデータ型があります。SQLiteでは、値を&lt;code&gt;NULL&lt;/code&gt;、&lt;code&gt;INTEGER&lt;/code&gt;、&lt;code&gt;REAL&lt;/code&gt;、&lt;code&gt;TEXT&lt;/code&gt;、&lt;code&gt;BLOB&lt;/code&gt;の5つのストレージクラスに分類します。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;データ型&lt;/th&gt;
					&lt;th&gt;説明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;NULL&lt;/td&gt;
					&lt;td&gt;NULL値&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;INTEGER&lt;/td&gt;
					&lt;td&gt;1、2、3、4、6、または8バイトで保存される符号付き整数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;REAL&lt;/td&gt;
					&lt;td&gt;8バイトで保存される浮動小数点数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;TEXT&lt;/td&gt;
					&lt;td&gt;UTF-8、UTF-16BE、またはUTF-16LEで保存されるテキスト&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;BLOB&lt;/td&gt;
					&lt;td&gt;入力データをそのまま保存するBinary Large Object&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;SQL文での表記方法によって値のデータ型が決まります。たとえば、シングルクォート（&lt;code&gt;&#39;&lt;/code&gt;）で囲んだ値は&lt;code&gt;TEXT&lt;/code&gt;、小数点も指数もない数値は&lt;code&gt;INTEGER&lt;/code&gt;、小数点または指数を含む数値は&lt;code&gt;REAL&lt;/code&gt;になります。&lt;/p&gt;
&lt;h2 id=&#34;列のデータ型&#34;&gt;列のデータ型&lt;/h2&gt;
&lt;p&gt;テーブルを作成するときに列のデータ型を指定できますが、必須ではありません。&lt;/p&gt;
&lt;p&gt;次の例では、&lt;code&gt;id&lt;/code&gt;列を&lt;code&gt;INTEGER&lt;/code&gt;型、&lt;code&gt;name&lt;/code&gt;列を&lt;code&gt;TEXT&lt;/code&gt;型としてテーブルを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;customer&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;SQLite3では、列に&lt;code&gt;TEXT&lt;/code&gt;、&lt;code&gt;NUMERIC&lt;/code&gt;、&lt;code&gt;INTEGER&lt;/code&gt;、&lt;code&gt;REAL&lt;/code&gt;、&lt;code&gt;NONE&lt;/code&gt;の5つの型アフィニティがあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TEXT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NUMERIC
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;INTEGER
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REAL
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NONE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;列にデータ型を指定した場合でも、異なるデータ型の値を保存できます。列の型アフィニティと値のデータ型の組み合わせによって、値が変換されて保存されることがあります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;TEXT&lt;/code&gt;列に&lt;code&gt;INTEGER&lt;/code&gt;または&lt;code&gt;REAL&lt;/code&gt;の値を入れると、&lt;code&gt;TEXT&lt;/code&gt;に変換して保存します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;NUMERIC&lt;/code&gt;列に&lt;code&gt;TEXT&lt;/code&gt;の値を入れると、&lt;code&gt;INTEGER&lt;/code&gt;または&lt;code&gt;REAL&lt;/code&gt;への変換を試みます。成功した場合は変換後の値を保存し、失敗した場合は&lt;code&gt;TEXT&lt;/code&gt;のまま保存します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;34.0&lt;/code&gt;のように整数で表現できる&lt;code&gt;REAL&lt;/code&gt;値、または同等の&lt;code&gt;TEXT&lt;/code&gt;値を&lt;code&gt;INTEGER&lt;/code&gt;列に入れると、&lt;code&gt;INTEGER&lt;/code&gt;に変換して保存します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;REAL&lt;/code&gt;列に&lt;code&gt;INTEGER&lt;/code&gt;値を入れると、&lt;code&gt;REAL&lt;/code&gt;に変換して保存します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;NONE&lt;/code&gt;型の列では変換処理を行いません。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;列にデータ型を指定する方法&#34;&gt;列にデータ型を指定する方法&lt;/h2&gt;
&lt;p&gt;SQLite3の型アフィニティは&lt;code&gt;TEXT&lt;/code&gt;、&lt;code&gt;NUMERIC&lt;/code&gt;、&lt;code&gt;INTEGER&lt;/code&gt;、&lt;code&gt;REAL&lt;/code&gt;、&lt;code&gt;NONE&lt;/code&gt;の5つですが、他のデータベースとの互換性などを考慮して、&lt;code&gt;integer&lt;/code&gt;の代わりに&lt;code&gt;int&lt;/code&gt;と宣言することもできます。列の型アフィニティは次の規則で決まります。&lt;/p&gt;
&lt;p&gt;宣言したデータ型に&lt;code&gt;INT&lt;/code&gt;という文字列が含まれる場合は&lt;code&gt;INTEGER&lt;/code&gt;になります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;customer&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;-- integerの代わりにintを使用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;宣言したデータ型に&lt;code&gt;CHAR&lt;/code&gt;、&lt;code&gt;CLOB&lt;/code&gt;、&lt;code&gt;TEXT&lt;/code&gt;のいずれかが含まれる場合は&lt;code&gt;TEXT&lt;/code&gt;になります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;customer&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;varchar&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;-- textの代わりにvarcharを使用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;宣言したデータ型に&lt;code&gt;BLOB&lt;/code&gt;が含まれる場合、またはデータ型を指定しない場合は&lt;code&gt;NONE&lt;/code&gt;になります。&lt;/p&gt;
&lt;p&gt;宣言したデータ型に&lt;code&gt;REAL&lt;/code&gt;、&lt;code&gt;FLOA&lt;/code&gt;、&lt;code&gt;DOUB&lt;/code&gt;のいずれかが含まれる場合は&lt;code&gt;REAL&lt;/code&gt;になります。&lt;/p&gt;
&lt;p&gt;上記のいずれにも該当しない場合は&lt;code&gt;NUMERIC&lt;/code&gt;になります。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データ型 | 保存された値のデータ型を確認する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/stored-value-types/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/stored-value-types/</guid>
      <description>
        
        
        &lt;p&gt;カラムに型を指定した場合と指定しない場合で、値がどの型として保存されるかを比較します。保存値は最終的に&lt;code&gt;NULL&lt;/code&gt;、&lt;code&gt;INTEGER&lt;/code&gt;、&lt;code&gt;REAL&lt;/code&gt;、&lt;code&gt;TEXT&lt;/code&gt;、&lt;code&gt;BLOB&lt;/code&gt;の5つに分類されます。&lt;/p&gt;
&lt;h2 id=&#34;カラムにデータ型を指定しない場合&#34;&gt;カラムにデータ型を指定しない場合&lt;/h2&gt;
&lt;p&gt;型を指定しない2つのカラムを持つテーブルを作成します。この場合は&lt;code&gt;NONE&lt;/code&gt;アフィニティとなり、値は自動変換されずに保存されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sqlite3 test.sqlite3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SQLite version 3.19.3 2017-06-27 16:48:08
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Enter &amp;#34;.help&amp;#34; for usage hints.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table test (val1, val2);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3行を追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;null&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;51&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;14&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Good Morning&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;e&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test values(null, 51);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test values(3.14, &amp;#39;devkuma&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test values(&amp;#39;Good Morning&amp;#39;, 1.3e-2);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;.mode&lt;/code&gt;と&lt;code&gt;.headers&lt;/code&gt;を変更します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from test;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|51
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3.14|devkuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Good Morning|0.013
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .mode column
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .header on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from test;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;val1        val2      
&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;            51        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3.14        devkuma   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Good Morni  0.013     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;typeof()&lt;/code&gt;を使い、各値と保存クラスを表示します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;typeof&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;),&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;typeof&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select val1, typeof(val1), val2, typeof(val2) from test;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;val1        typeof(val1)  val2        typeof(val2)
&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;            null          51          integer     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3.14        real          devkuma     text        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Good Morni  text          0.013       real        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;NULL&lt;/code&gt;は&lt;code&gt;NULL&lt;/code&gt;、整数は&lt;code&gt;INTEGER&lt;/code&gt;、文字列は&lt;code&gt;TEXT&lt;/code&gt;、浮動小数点数は&lt;code&gt;REAL&lt;/code&gt;として保存されます。保存型は追加した値に従います。&lt;/p&gt;
&lt;h2 id=&#34;カラムにデータ型を指定する場合&#34;&gt;カラムにデータ型を指定する場合&lt;/h2&gt;
&lt;p&gt;次に、カラムの宣言型が保存値にどう影響するかを確認します。&lt;/p&gt;
&lt;p&gt;第1カラムを&lt;code&gt;TEXT&lt;/code&gt;、第2カラムを&lt;code&gt;NUMERIC&lt;/code&gt;にしたテーブルを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;numeric&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table test2 (val1 text, val2 numeric);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3行を追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Summer&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Summer&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;48&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;48&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;72&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;72&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;39&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;24&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;39&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;24&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;0.17&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;0.17&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;null&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;null&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test2 values(&amp;#39;Summer&amp;#39;, &amp;#39;Summer&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test2 values(48, 48);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test2 values(&amp;#39;72&amp;#39;, &amp;#39;72&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test2 values(39.24, 39.24);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test2 values(&amp;#39;0.17&amp;#39;, &amp;#39;0.17&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test2 values(null, null);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;typeof&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;),&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;typeof&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select val1, typeof(val1), val2, typeof(val2) from test2;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;val1        typeof(val1)  val2        typeof(val2)
&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;Summer      text          Summer      text        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;48          text          48          integer     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;72          text          72          integer     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;39.24       text          39.24       real        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0.17        text          0.17        real        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            null                      null        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;TEXT&lt;/code&gt;カラムでは文字列はそのまま保存され、整数と実数は&lt;code&gt;TEXT&lt;/code&gt;へ変換されます。&lt;code&gt;NULL&lt;/code&gt;は変換されません。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;NUMERIC&lt;/code&gt;カラムでは文字列を&lt;code&gt;INTEGER&lt;/code&gt;または&lt;code&gt;REAL&lt;/code&gt;へ変換し、失敗した場合は&lt;code&gt;TEXT&lt;/code&gt;のまま保存します。&lt;code&gt;NULL&lt;/code&gt;は変換されません。&lt;/p&gt;
&lt;p&gt;この例から、宣言型によって値が変換されて保存される場合があることが分かります。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データ型（Data Type） | 文字列のエスケープ処理</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/string-escape/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/string-escape/</guid>
      <description>
        
        
        &lt;p&gt;SQLiteのテーブルに保存する文字列はシングルクォート（&lt;code&gt;&#39;&lt;/code&gt;）で囲みます。文字列にシングルクォートが含まれる場合は、エスケープ処理が必要です。ここでは、文字列をエスケープする方法について説明します。&lt;/p&gt;
&lt;h2 id=&#34;文字列のエスケープ処理&#34;&gt;文字列のエスケープ処理&lt;/h2&gt;
&lt;p&gt;SQLiteで文字列を記述するには、次のように値をシングルクォート（&lt;code&gt;&#39;&lt;/code&gt;）で囲みます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#4e9a06&#34;&gt;&amp;#39;文字列&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;&amp;quot;&lt;/code&gt;）で囲んだものは識別子になります。文字列が必要な場所に識別子を記述すると文字列のように扱われることがありますが、文字列はシングルクォートで囲む必要があります。&lt;/p&gt;
&lt;p&gt;シングルクォートは文字列の区切り文字として使われるため、文字列内のシングルクォートはエスケープしなければなりません。&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;val&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; drop table test;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table test (val text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt;
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;I&amp;#39;m a student.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次の文を実行してもすぐにはエラーにならず、SQL文が完結していないため入力待ちになります。文字列の開始位置と終了位置を判別できないためです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;I&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;m&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;a&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;student&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test values(&amp;#39;I&amp;#39;m a student.&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   ...&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   ...&amp;gt; &amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Error: near &amp;#34;m&amp;#34;: syntax error
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;文字列内のシングルクォートをエスケープするには、その直前にシングルクォートをもう1つ記述します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;I&amp;#39;&amp;#39;m a student.&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into test values(&amp;#39;I&amp;#39;&amp;#39;m a student.&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from test;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;I&amp;#39;m a student.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;シングルクォートを含む文字列は、エスケープしないと正しく保存できません。文字列内のシングルクォートは必ずエスケープしてください。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル | テーブルを作成する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%83%9D%EC%84%B1/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%83%9D%EC%84%B1/</guid>
      <description>
        
        
        &lt;p&gt;テーブルは、データベース内で実際の値を保存する場所です。1つのデータベースに複数のテーブルを作成できます。ここでは、テーブルの作成方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;create-table文でテーブルを作成する&#34;&gt;CREATE TABLE文でテーブルを作成する&lt;/h2&gt;
&lt;p&gt;SQLiteでテーブルを作成する基本構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (列名1, 列名2, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブル名は任意に指定できますが、&lt;code&gt;sqlite_&lt;/code&gt;で始まる名前はSQLite自身が使用するため指定できません。&lt;/p&gt;
&lt;p&gt;テーブルには少なくとも1つの列が必要です。複数の列はカンマで区切ります。&lt;/p&gt;
&lt;p&gt;次の文は、&lt;code&gt;id&lt;/code&gt;列と&lt;code&gt;name&lt;/code&gt;列を持つ&lt;code&gt;customer&lt;/code&gt;テーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table customer (id, name);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; 
sqlite&amp;gt; create table customer (id, name);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上のようにコマンドが完了すれば、テーブルは作成されています。&lt;/p&gt;
&lt;h2 id=&#34;列にデータ型を指定してテーブルを作成する&#34;&gt;列にデータ型を指定してテーブルを作成する&lt;/h2&gt;
&lt;p&gt;SQLiteでは、列のデータ型を指定せずにテーブルを作成できますが、指定することもできます。詳細は&lt;a href=&#34;https://www.devkuma.com/books/pages/1270&#34;&gt;SQLiteのデータ型&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (列名1 データ型, 列名2 データ型, ...)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;列名の後ろに空白を置き、その列のデータ型を指定します。&lt;/p&gt;
&lt;p&gt;次の文は、&lt;code&gt;INTEGER&lt;/code&gt;型の&lt;code&gt;id&lt;/code&gt;列と&lt;code&gt;TEXT&lt;/code&gt;型の&lt;code&gt;name&lt;/code&gt;列を持つ&lt;code&gt;customer2&lt;/code&gt;テーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table customer2 (id integer, name text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; 
sqlite&amp;gt; create table customer2 (id integer, name text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上のようにコマンドが完了すれば、テーブルは作成されています。&lt;/p&gt;
&lt;h2 id=&#34;データベース内のテーブル一覧を確認する&#34;&gt;データベース内のテーブル一覧を確認する&lt;/h2&gt;
&lt;p&gt;SQLiteの&lt;code&gt;.tables&lt;/code&gt;コマンドを使います。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.tables
.tables? TABLE?
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数を省略するとすべてのテーブルを表示し、名前のパターンを指定すると一致するテーブルを表示します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.tables
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .tables
customer   customer2  test       test2    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このページで作成した&lt;code&gt;customer&lt;/code&gt;と&lt;code&gt;customer2&lt;/code&gt;が表示されています。&lt;/p&gt;
&lt;p&gt;名前またはパターンも指定できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.tables customer
.tables customer%
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .tables customer
customer
sqlite&amp;gt; 
sqlite&amp;gt; .tables customer%
customer   customer2
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;最初のコマンドは正確なテーブル名を指定し、2番目はパーセント記号（&lt;code&gt;%&lt;/code&gt;）で指定したパターンに一致する名前を検索しています。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル（Table） | テーブルスキーマ（構造）の確認</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%8A%A4%ED%82%A4%EB%A7%88-%EA%B5%AC%EC%A1%B0-%ED%99%95%EC%9D%B8/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%8A%A4%ED%82%A4%EB%A7%88-%EA%B5%AC%EC%A1%B0-%ED%99%95%EC%9D%B8/</guid>
      <description>
        
        
        &lt;p&gt;テーブルの作成に使用された&lt;code&gt;CREATE&lt;/code&gt;文を確認する方法について説明します。&lt;code&gt;sqlite_master&lt;/code&gt;テーブルを検索する方法と、&lt;code&gt;.schema&lt;/code&gt;コマンドを使用する方法があります。&lt;/p&gt;
&lt;h2 id=&#34;sqlite_masterテーブルを検索する&#34;&gt;sqlite_masterテーブルを検索する&lt;/h2&gt;
&lt;p&gt;最初の方法では&lt;code&gt;sqlite_master&lt;/code&gt;テーブルを使用します。次のSQL文を実行します。見やすくするため、例では先に&lt;code&gt;.mode&lt;/code&gt;コマンドで出力モードを&lt;code&gt;line&lt;/code&gt;に変更しています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from sqlite_master;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from sqlite_master;
table|customer|customer|2|CREATE TABLE customer (id, name)
table|customer2|customer2|3|CREATE TABLE customer2 (id integer, name text)
sqlite&amp;gt; 
sqlite&amp;gt; .mode line
sqlite&amp;gt; 
sqlite&amp;gt; select * from sqlite_master;
    type = table
    name = customer
tbl_name = customer
rootpage = 2
     sql = CREATE TABLE customer (id, name)

    type = table
    name = customer2
tbl_name = customer2
rootpage = 3
     sql = CREATE TABLE customer2 (id integer, name text)
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上記のようにデータを取得できます。&lt;/p&gt;
&lt;p&gt;現在は2つのテーブルが作成されているため、&lt;code&gt;sqlite_master&lt;/code&gt;テーブルには2行が表示されます。各行の&lt;code&gt;name&lt;/code&gt;列にはテーブル名、&lt;code&gt;sql&lt;/code&gt;列にはテーブル作成時の&lt;code&gt;CREATE TABLE&lt;/code&gt;文が格納されています。&lt;code&gt;sqlite_master&lt;/code&gt;を検索することで、各テーブルがどのように作成されたかを確認できます。&lt;/p&gt;
&lt;p&gt;特定のテーブルの&lt;code&gt;CREATE TABLE&lt;/code&gt;文を確認するには、&lt;code&gt;WHERE&lt;/code&gt;句を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from sqlite_master where type=&amp;#39;table&amp;#39; and name=&amp;#39;customer&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from sqlite_master where type=&amp;#39;table&amp;#39; and name=&amp;#39;customer&amp;#39;;
    type = table
    name = customer
tbl_name = customer
rootpage = 2
     sql = CREATE TABLE customer (id, name)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定したテーブルの行だけが取得されました。&lt;/p&gt;
&lt;h2 id=&#34;schemaコマンドを使用する&#34;&gt;.schemaコマンドを使用する&lt;/h2&gt;
&lt;p&gt;スキーマ情報だけを確認する場合は、SQLiteの&lt;code&gt;.schema&lt;/code&gt;コマンドも使用できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.schema
.schema ?TABLE?
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数を省略すると、すべてのテーブルとインデックスのスキーマ情報を表示します。テーブル名を指定すると、一致するテーブルと関連オブジェクトのスキーマ情報を表示します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.schema&lt;/code&gt;を次のように実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.schema
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .schema
CREATE TABLE customer (id, name);
CREATE TABLE customer2 (id integer, name text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;現在のデータベースにある2つのテーブルの&lt;code&gt;CREATE&lt;/code&gt;文が表示されます。&lt;code&gt;.schema&lt;/code&gt;コマンドでも、テーブルがどのように作成されたかを確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル | テーブル名の変更とカラムの追加・削除</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/alter-table/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/alter-table/</guid>
      <description>
        
        
        &lt;p&gt;既存テーブルの名前を変更し、カラムを追加または削除する方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;テーブル名を変更する&#34;&gt;テーブル名を変更する&lt;/h2&gt;
&lt;p&gt;既存テーブルの名前を変更するには&lt;code&gt;ALTER TABLE&lt;/code&gt;を使います。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ALTER TABLE テーブル名 RENAME TO 新しいテーブル名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;たとえば&lt;code&gt;table_old&lt;/code&gt;を&lt;code&gt;table_new&lt;/code&gt;へ変更します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;alter table table_old rename to table_new;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.tables&lt;/code&gt;で現在のテーブルを確認します。この例には&lt;code&gt;customer&lt;/code&gt;と&lt;code&gt;customer2&lt;/code&gt;があります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .table
customer   customer2
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;customer2&lt;/code&gt;を&lt;code&gt;user&lt;/code&gt;へ変更します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;alter table customer2 rename to user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; 
sqlite&amp;gt; alter table customer2 rename to user;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;再度&lt;code&gt;.tables&lt;/code&gt;を実行し、一覧が&lt;code&gt;customer&lt;/code&gt;と&lt;code&gt;user&lt;/code&gt;になったことを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .table
customer  user    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;カラムを追加する&#34;&gt;カラムを追加する&lt;/h2&gt;
&lt;p&gt;既存テーブルにカラムを追加するには&lt;code&gt;ALTER TABLE&lt;/code&gt;を使います。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ALTER TABLE テーブル名 ADD COLUMN カラム名 [データ型];
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;この例で使用しているSQLiteではカラムの追加はできますが、&lt;code&gt;DROP COLUMN&lt;/code&gt;は使用できません。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;新しいカラムはテーブルの末尾に追加され、次の条件を満たす必要があります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;PRIMARY KEY&lt;/code&gt;または&lt;code&gt;UNIQUE&lt;/code&gt;制約は設定できません。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DEFAULT&lt;/code&gt;に&lt;code&gt;CURRENT_TIME&lt;/code&gt;、&lt;code&gt;CURRENT_DATE&lt;/code&gt;、&lt;code&gt;CURRENT_TIMESTAMP&lt;/code&gt;は指定できません。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NOT NULL&lt;/code&gt;を設定する場合は、&lt;code&gt;NULL&lt;/code&gt;以外の既定値が必要です。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;たとえば&lt;code&gt;mytable&lt;/code&gt;に&lt;code&gt;new_column&lt;/code&gt;を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;alter table mytable add column new_column;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;既存の&lt;code&gt;user&lt;/code&gt;テーブルに&lt;code&gt;TEXT&lt;/code&gt;型の&lt;code&gt;address&lt;/code&gt;を追加します。まず&lt;code&gt;.schema&lt;/code&gt;で現在のスキーマを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.schema user
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .schema user
CREATE TABLE IF NOT EXISTS &amp;#34;user&amp;#34; (id integer, name text);
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;user&lt;/code&gt;に&lt;code&gt;address&lt;/code&gt;を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;alter table user add column address text;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; 
sqlite&amp;gt; alter table user add column address text;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;再度&lt;code&gt;.schema&lt;/code&gt;を実行し、&lt;code&gt;address&lt;/code&gt;が追加されたことを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.schema user
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .schema user
CREATE TABLE IF NOT EXISTS &amp;#34;user&amp;#34; (id integer, name text, address text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;カラムを削除する&#34;&gt;カラムを削除する&lt;/h2&gt;
&lt;p&gt;古いSQLiteでは&lt;code&gt;DROP COLUMN&lt;/code&gt;を使用できません。代わりに&lt;code&gt;DROP TABLE&lt;/code&gt;と&lt;code&gt;ALTER TABLE RENAME&lt;/code&gt;を使います。&lt;/p&gt;
&lt;p&gt;置き換え用のテーブルを作成し、必要なデータを移す方法です。&lt;/p&gt;
&lt;p&gt;まず&lt;code&gt;.schema&lt;/code&gt;で現在の&lt;code&gt;user&lt;/code&gt;スキーマを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .schema user
CREATE TABLE IF NOT EXISTS &amp;#34;user&amp;#34; (id integer, name text, address text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;user2&lt;/code&gt;を作成し、&lt;code&gt;user&lt;/code&gt;のデータをコピーします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user2 (id integer, name text);
sqlite&amp;gt; 
sqlite&amp;gt; insert into user2 (id, name) select id, name from user;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;元の&lt;code&gt;user&lt;/code&gt;を削除し、&lt;code&gt;user2&lt;/code&gt;を&lt;code&gt;user&lt;/code&gt;へ変更します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; drop table user;
sqlite&amp;gt; 
sqlite&amp;gt; alter table user2 rename to user;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;再度&lt;code&gt;.schema&lt;/code&gt;を実行し、&lt;code&gt;address&lt;/code&gt;がなくなったことを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .schema user
CREATE TABLE IF NOT EXISTS &amp;#34;user&amp;#34; (id integer, name text);
&lt;/code&gt;&lt;/pre&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル（Table） | テーブルの削除</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%82%AD%EC%A0%9C/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%82%AD%EC%A0%9C/</guid>
      <description>
        
        
        &lt;p&gt;作成済みのテーブルを削除する方法について説明します。&lt;/p&gt;
&lt;h2 id=&#34;作成済みテーブルの削除&#34;&gt;作成済みテーブルの削除&lt;/h2&gt;
&lt;p&gt;作成済みのテーブルを削除するには、&lt;code&gt;DROP TABLE&lt;/code&gt;文を使用します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;DROP TABLE テーブル名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルを削除すると、そのテーブルに関連付けられたインデックスとトリガーも削除されます。&lt;/p&gt;
&lt;p&gt;たとえば、&lt;code&gt;mytable&lt;/code&gt;テーブルを削除するには次のように実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;drop table mytable;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルの削除によってデータベースに生じた未使用領域を解放するには、&lt;code&gt;VACUUM&lt;/code&gt;文を実行する必要があります。&lt;code&gt;VACUUM&lt;/code&gt;については、&lt;a href=&#34;https://www.devkuma.com/books/pages/1269&#34;&gt;空き領域の整理（VACUUM）&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;p&gt;それでは、実際にテーブルを削除してみましょう。まずSQLiteの&lt;code&gt;.tables&lt;/code&gt;コマンドを使用し、&lt;code&gt;customer&lt;/code&gt;テーブルと&lt;code&gt;user&lt;/code&gt;テーブルが存在することを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.tables
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .table
customer  user    
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;user&lt;/code&gt;テーブルを削除します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;drop table user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; drop table user;
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.tables&lt;/code&gt;コマンドを再度実行し、&lt;code&gt;user&lt;/code&gt;テーブルが削除されたことを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .table
customer    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;結果から、&lt;code&gt;user&lt;/code&gt;テーブルが削除されたことを確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル（Table） | NOT NULL制約</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/not-null-%EC%A0%9C%EC%95%BD-%EC%A1%B0%EA%B1%B4/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/not-null-%EC%A0%9C%EC%95%BD-%EC%A1%B0%EA%B1%B4/</guid>
      <description>
        
        
        &lt;p&gt;列に&lt;code&gt;NULL&lt;/code&gt;を保存できないようにするには、その列に&lt;code&gt;NOT NULL&lt;/code&gt;制約を設定します。ここでは、&lt;code&gt;NOT NULL&lt;/code&gt;制約の使い方について説明します。&lt;/p&gt;
&lt;h2 id=&#34;not-null制約とは&#34;&gt;NOT NULL制約とは&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;NOT NULL&lt;/code&gt;制約を設定した列には&lt;code&gt;NULL&lt;/code&gt;を保存できません。列に&lt;code&gt;NOT NULL&lt;/code&gt;制約を設定する構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (列名 NOT NULL, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;実際に制約を設定してみましょう。次の文は、&lt;code&gt;name&lt;/code&gt;列に&lt;code&gt;NOT NULL&lt;/code&gt;制約を設定したテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (name text not null, address text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (name text not null, address text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次にデータを追加します。&lt;code&gt;address&lt;/code&gt;列には&lt;code&gt;NULL&lt;/code&gt;を保存できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;dekuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;kimkc&amp;#39;, null);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;dekuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;kimkc&amp;#39;, null);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;列には&lt;code&gt;NOT NULL&lt;/code&gt;制約が設定されているため、&lt;code&gt;NULL&lt;/code&gt;を保存しようとすると&lt;code&gt;Error: NOT NULL constraint failed: user.name&lt;/code&gt;というエラーメッセージが表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (null, &amp;#39;Busan&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (null, &amp;#39;Busan&amp;#39;);
Error: NOT NULL constraint failed: user.name
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;NOT NULL&lt;/code&gt;制約が設定された列の値を省略した場合も、自動的に&lt;code&gt;NULL&lt;/code&gt;を保存しようとするため同じエラーが発生します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user (address) values (&amp;#39;Daejeon&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user (address) values (&amp;#39;Daejeon&amp;#39;);
Error: NOT NULL constraint failed: user.name
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;データの追加時に必ず値が必要な列には、&lt;code&gt;NOT NULL&lt;/code&gt;制約を設定してください。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル | UNIQUE制約</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/unique-constraint/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/unique-constraint/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;UNIQUE&lt;/code&gt;制約を設定すると、カラムに重複した値が保存されるのを防げます。ここでは、&lt;code&gt;UNIQUE&lt;/code&gt;制約の使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;unique制約とは&#34;&gt;UNIQUE制約とは&lt;/h2&gt;
&lt;p&gt;カラムに&lt;code&gt;UNIQUE&lt;/code&gt;制約を設定すると、重複する値を保存できません。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (カラム名 UNIQUE, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のテーブルを作成します。&lt;code&gt;id&lt;/code&gt;カラムには&lt;code&gt;UNIQUE&lt;/code&gt;制約が設定されています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer unique, name text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer unique, name text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;いくつかの行を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (1, &amp;#39;devkuma&amp;#39;);
insert into user values (2, &amp;#39;kimkc&amp;#39;);
insert into user values (4, &amp;#39;araikuma&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;);
sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;);
sqlite&amp;gt; insert into user values (4, &amp;#39;araikuma&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;既存の行と同じ&lt;code&gt;id&lt;/code&gt;を追加すると、&lt;code&gt;Error: UNIQUE constraint failed: user.id&lt;/code&gt;と表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (2, &amp;#39;happykuma&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (2, &amp;#39;happykuma&amp;#39;);
Error: UNIQUE constraint failed: user.id
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この制約により、カラムへの重複値の保存を防げます。&lt;/p&gt;
&lt;p&gt;ただし、&lt;code&gt;UNIQUE&lt;/code&gt;制約があっても複数の&lt;code&gt;NULL&lt;/code&gt;値は保存できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (null, &amp;#39;mykuma&amp;#39;);
insert into user values (null, &amp;#39;yourkuma&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (null, &amp;#39;mykuma&amp;#39;);
sqlite&amp;gt; insert into user values (null, &amp;#39;yourkuma&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;NULL&lt;/code&gt;を許可しない場合は、&lt;code&gt;NOT NULL&lt;/code&gt;制約も設定します。&lt;/p&gt;
&lt;h2 id=&#34;複数カラムの組み合わせにunique制約を設定する&#34;&gt;複数カラムの組み合わせにUNIQUE制約を設定する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;UNIQUE&lt;/code&gt;制約は、複数カラムの組み合わせにも設定できます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (カラム名1, カラム名2, ... , UNIQUE (カラム名1, カラム名2, ...));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;2つのカラムに制約を設定した場合、各カラム単独の重複は許可されますが、同じ値の組み合わせは保存できません。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;no&lt;/code&gt;と&lt;code&gt;unit&lt;/code&gt;の組み合わせに&lt;code&gt;UNIQUE&lt;/code&gt;制約を設定したテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table employee (no integer, unit text, name text, unique (no, unit));
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table employee (no integer, unit text, name text, unique (no, unit));
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;いくつかの行を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into employee values (1, &amp;#39;Sales&amp;#39;, &amp;#39;devkuma&amp;#39;);
insert into employee values (4, &amp;#39;Dev&amp;#39;, &amp;#39;kimkc&amp;#39;);
insert into employee values (2, &amp;#39;Office&amp;#39;, &amp;#39;araikuma&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into employee values (1, &amp;#39;Sales&amp;#39;, &amp;#39;devkuma&amp;#39;);
sqlite&amp;gt; insert into employee values (4, &amp;#39;Dev&amp;#39;, &amp;#39;kimkc&amp;#39;);
sqlite&amp;gt; insert into employee values (2, &amp;#39;Office&amp;#39;, &amp;#39;araikuma&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;no&lt;/code&gt;だけ、または&lt;code&gt;unit&lt;/code&gt;だけが既存行と同じ行を追加します。組み合わせ全体は異なるため、エラーになりません。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into employee values (4, &amp;#39;Design&amp;#39;, &amp;#39;mykuma&amp;#39;);
insert into employee values (7, &amp;#39;Sales&amp;#39;, &amp;#39;yourkuma&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into employee values (4, &amp;#39;Design&amp;#39;, &amp;#39;mykuma&amp;#39;);
sqlite&amp;gt; insert into employee values (7, &amp;#39;Sales&amp;#39;, &amp;#39;yourkuma&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;既存行と同じ&lt;code&gt;no&lt;/code&gt;と&lt;code&gt;unit&lt;/code&gt;の組み合わせを追加すると、&lt;code&gt;Error: UNIQUE constraint failed: employee.no, employee.unit&lt;/code&gt;と表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into employee values (2, &amp;#39;Office&amp;#39;, &amp;#39;blackkuma&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into employee values (2, &amp;#39;Office&amp;#39;, &amp;#39;blackkuma&amp;#39;);
Error: UNIQUE constraint failed: employee.no, employee.unit
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このように、単一カラムだけでなく複数カラムの組み合わせにも&lt;code&gt;UNIQUE&lt;/code&gt;制約を設定できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル | DEFAULT制約</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/default-constraint/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/default-constraint/</guid>
      <description>
        
        
        &lt;p&gt;行を追加するときにカラム値を省略すると、通常は&lt;code&gt;NULL&lt;/code&gt;が保存されます。&lt;code&gt;DEFAULT&lt;/code&gt;制約を使うと、代わりに既定値を保存できます。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;default制約とは&#34;&gt;DEFAULT制約とは&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;DEFAULT&lt;/code&gt;制約を設定すると、追加時にカラム値を省略した場合の既定値を指定できます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (カラム名 DEFAULT 値, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;既定値には&lt;code&gt;NULL&lt;/code&gt;、数値、文字列を指定できます。&lt;/p&gt;
&lt;p&gt;次のテーブルを作成します。&lt;code&gt;name&lt;/code&gt;と&lt;code&gt;price&lt;/code&gt;にはそれぞれ&lt;code&gt;DEFAULT&lt;/code&gt;制約があります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table product (id integer, name text default &amp;#39;no name&amp;#39;, price integer default 0);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table product (id integer, name text default &amp;#39;no name&amp;#39;, price integer default 0);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;まず、各カラムの値を明示して行を追加します。指定した値がそのまま保存されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into product values (1, &amp;#39;PC&amp;#39;, 75000);
insert into product values (4, &amp;#39;Desk&amp;#39;, 18000);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into product values (1, &amp;#39;PC&amp;#39;, 75000);
sqlite&amp;gt; insert into product values (4, &amp;#39;Desk&amp;#39;, 18000);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;を省略すると、既定値の&lt;code&gt;no name&lt;/code&gt;が保存されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into product (id, price) values (6, 18000);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into product (id, price) values (6, 18000);
sqlite&amp;gt; 
sqlite&amp;gt; .mode column
sqlite&amp;gt; .header on
sqlite&amp;gt; 
sqlite&amp;gt; select * from product;
id          name        price     
----------  ----------  ----------
4           Desk        18000     
1           PC          75000     
6           no name     18000     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;同様に&lt;code&gt;price&lt;/code&gt;を省略すると、既定値の&lt;code&gt;0&lt;/code&gt;が保存されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into product (id, name) values (8, &amp;#39;Chair&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into product (id, name) values (8, &amp;#39;Chair&amp;#39;);
sqlite&amp;gt; 
sqlite&amp;gt; select * from product;
id          name        price     
----------  ----------  ----------
4           Desk        18000     
1           PC          75000     
6           no name     18000     
8           Chair       0         
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このように&lt;code&gt;DEFAULT&lt;/code&gt;制約を使うと、値を省略した場合に&lt;code&gt;NULL&lt;/code&gt;ではなく指定した既定値を保存できます。&lt;/p&gt;
&lt;h2 id=&#34;追加日時を既定値にする&#34;&gt;追加日時を既定値にする&lt;/h2&gt;
&lt;p&gt;次の値を既定値にすると、行を追加した時点の日付や時刻をカラムに保存できます。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;指定値&lt;/th&gt;
					&lt;th&gt;形式&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CURRENT_TIME&lt;/td&gt;
					&lt;td&gt;HH : MM : SS&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CURRENT_DATE&lt;/td&gt;
					&lt;td&gt;YYYY-MM-DD&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CURRENT_TIMESTAMP&lt;/td&gt;
					&lt;td&gt;YYYY-MM-DD HH : MM : SS&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;em&gt;タイムゾーンはUTCです。&lt;/em&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;date_time&lt;/code&gt;の既定値に&lt;code&gt;CURRENT_TIMESTAMP&lt;/code&gt;を指定したテーブルを作成します。&lt;/p&gt;
&lt;p&gt;create table user (id integer, name text, date_time default CURRENT_TIMESTAMP);&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer, name text, date_time default CURRENT_TIMESTAMP);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;date_time&lt;/code&gt;を省略して行を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user (id, name) values (1, &amp;#39;devkuma&amp;#39;);
insert into user (id, name) values (3, &amp;#39;kimkc&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user (id, name) values (1, &amp;#39;devkuma&amp;#39;);
sqlite&amp;gt; insert into user (id, name) values (3, &amp;#39;kimkc&amp;#39;);
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
id          name        date_time          
----------  ----------  -------------------
1           devkuma     2019-10-22 14:43:07
3           kimkc       2019-10-22 14:43:08
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;date_time&lt;/code&gt;に各行を追加した日時が保存されていることを確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | テーブル | CHECK制約</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/check-constraint/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/check-constraint/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;CHECK&lt;/code&gt;制約を使うと、カラムに保存する値が条件を満たすか検証できます。ここでは、&lt;code&gt;CHECK&lt;/code&gt;制約の使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;check制約とは&#34;&gt;CHECK制約とは&lt;/h2&gt;
&lt;p&gt;カラムに&lt;code&gt;CHECK&lt;/code&gt;制約を設定すると、追加する値が指定した条件を満たすか確認できます。カラム単位の構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (カラム名 CHECK (条件式), ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件式には、0以上の値だけを許可するなど、カラムに保存できる値の条件を記述します。&lt;/p&gt;
&lt;p&gt;複数のカラムを組み合わせた条件には、次のテーブル単位の形式を使用できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE TABLE テーブル名 (カラム名1, カラム名2, ..., CHECK (条件式));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のテーブルを作成します。&lt;code&gt;old&lt;/code&gt;カラムには&lt;code&gt;CHECK&lt;/code&gt;制約があり、18より大きい整数だけを保存できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text, old integer check (old&amp;gt; 18));
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer, name text, old integer check (old&amp;gt; 18));
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;old&lt;/code&gt;の値が条件を満たす行は問題なく追加できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (1, &amp;#39;devkuma&amp;#39;, 19);
insert into user values (4, &amp;#39;kimkc&amp;#39;, 21);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;qlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, 19);
sqlite&amp;gt; insert into user values (4, &amp;#39;kimkc&amp;#39;, 21);
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
id          name        old       
----------  ----------  ----------
1           devkuma     19        
4           kimkc       21        
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件を満たさない&lt;code&gt;old&lt;/code&gt;の値を追加すると、&lt;code&gt;Error: CHECK constraint failed: user&lt;/code&gt;と表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (7, &amp;#39;araikuma&amp;#39;, 16);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (7, &amp;#39;araikuma&amp;#39;, 16);
Error: CHECK constraint failed: user
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このように&lt;code&gt;CHECK&lt;/code&gt;制約でカラムに保存できる値を制限できます。&lt;/p&gt;
&lt;h2 id=&#34;andとorで複雑な条件を定義する&#34;&gt;ANDとORで複雑な条件を定義する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;AND&lt;/code&gt;や&lt;code&gt;OR&lt;/code&gt;を使うと、より複雑な条件式を記述できます。次の例では&lt;code&gt;old&lt;/code&gt;を18より大きく30未満の値に制限します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text,
  old integer check (old &amp;gt; 18 and old &amp;lt; 30));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次の例では&lt;code&gt;gender&lt;/code&gt;を&lt;code&gt;man&lt;/code&gt;または&lt;code&gt;woman&lt;/code&gt;に制限します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text,
  gender text check (gender = &amp;#39;man&amp;#39; or gender = &amp;#39;woman&amp;#39;));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;複数のカラムを使う条件にはテーブル単位の制約を使用します。この例では、&lt;code&gt;gender&lt;/code&gt;が&lt;code&gt;woman&lt;/code&gt;または&lt;code&gt;old&lt;/code&gt;が20より大きい行を追加できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (name text, old integer, gender text,
  check (gender = &amp;#39;woman&amp;#39; or old&amp;gt; 20));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;最後の例のテーブルを実際に作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (name text, old integer, gender text, check (gender = &amp;#39;woman&amp;#39; or old&amp;gt; 20));
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;データを追加します。性別が&lt;code&gt;woman&lt;/code&gt;、または年齢が20より大きい行は正常に追加されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values ( &amp;#39;dekuma&amp;#39;, 16, &amp;#39;woman&amp;#39;);
insert into user values ( &amp;#39;kimkc&amp;#39;, 31, &amp;#39;man&amp;#39;);
insert into user values ( &amp;#39;araikuma&amp;#39;, 24, &amp;#39;woman&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values ( &amp;#39;dekuma&amp;#39;, 16, &amp;#39;woman&amp;#39;);
sqlite&amp;gt; insert into user values ( &amp;#39;kimkc&amp;#39;, 31, &amp;#39;man&amp;#39;);
sqlite&amp;gt; insert into user values ( &amp;#39;araikuma&amp;#39;, 24, &amp;#39;woman&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;CHECK&lt;/code&gt;条件を満たさない行を追加すると、&lt;code&gt;Error: CHECK constraint failed: user&lt;/code&gt;と表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;happykuma&amp;#39;, 15, &amp;#39;man&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;happykuma&amp;#39;, 15, &amp;#39;man&amp;#39;);
Error: CHECK constraint failed: user
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このように&lt;code&gt;AND&lt;/code&gt;や&lt;code&gt;OR&lt;/code&gt;を組み合わせて複雑な&lt;code&gt;CHECK&lt;/code&gt;制約を定義できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | ビュー | ビューを作成する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/create-view/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/create-view/</guid>
      <description>
        
        
        &lt;p&gt;ビューは選択カラムと検索条件で定義する仮想テーブルです。ここではビューの作成と利用方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;ビューを作成する&#34;&gt;ビューを作成する&lt;/h2&gt;
&lt;p&gt;次の構文でビューを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;CREATE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;VIEW&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;ビュー名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;AS&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;SELECT文&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;AS&lt;/code&gt;の後に、元テーブルのカラムと条件を指定する&lt;code&gt;SELECT&lt;/code&gt;文を書きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;create view myview as select name, price from product where price&amp;gt; 3000;
&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;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table user (id integer, name text, address text, old integer);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;23&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kimkc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Busan&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;19&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;araikuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;38&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;happykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;24&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;mykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Daejeon&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;18&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;, 23);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Busan&amp;#39;, 19);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (3, &amp;#39;araikuma&amp;#39;, &amp;#39;Seoul&amp;#39;, 38);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (4, &amp;#39;happykuma&amp;#39;, &amp;#39;Seoul&amp;#39;, 24);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (5, &amp;#39;mykuma&amp;#39;, &amp;#39;Daejeon&amp;#39;, 18);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;seouluser&lt;/code&gt;というビューを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;view&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;seouluser&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;as&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create view seouluser as select id, name from user where address = &amp;#39;Seoul&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このビューは&lt;code&gt;address&lt;/code&gt;が&lt;code&gt;Seoul&lt;/code&gt;の行について、&lt;code&gt;user&lt;/code&gt;の&lt;code&gt;id&lt;/code&gt;と&lt;code&gt;name&lt;/code&gt;を公開します。データ自体は保持しません。&lt;/p&gt;
&lt;p&gt;ビューを検索します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;tokyouser&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from seouluser;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1|devkuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3|araikuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4|happykuma
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ビューはテーブルと同様に検索でき、元の&lt;code&gt;SELECT&lt;/code&gt;と同じ結果になります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Tokyo&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select id, name from user where address = &amp;#39;Seoul&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1|devkuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3|araikuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4|happykuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ビューを使うと必要なデータを簡単に検索できます。&lt;/p&gt;
&lt;h2 id=&#34;ビューが返すデータ&#34;&gt;ビューが返すデータ&lt;/h2&gt;
&lt;p&gt;ビューが保存するのは検索定義だけで、データ自体ではありません。検索のたびに元テーブルの現在のデータを読むため、元データが変わると結果も変わります。&lt;/p&gt;
&lt;p&gt;現在の元データを確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1|devkuma|Seoul|23
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2|kimkc|Busan|19
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3|araikuma|Seoul|38
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4|happykuma|Seoul|24
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5|mykuma|Daejeon|18
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;seouluser&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from seouluser;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1|devkuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3|araikuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4|happykuma
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;6&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;yourkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39; Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;17&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (6, &amp;#39;yourkuma&amp;#39;, &amp;#39; Seoul&amp;#39;, 17);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from seouluser;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1|devkuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3|araikuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4|happykuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;6|yourkuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ビューは独自のデータを持たず、常に元テーブルを参照します。&lt;/p&gt;
&lt;h2 id=&#34;ビュー経由の追加更新削除&#34;&gt;ビュー経由の追加・更新・削除&lt;/h2&gt;
&lt;p&gt;このビューは検索できますが、追加、削除、更新はできません。&lt;/p&gt;
&lt;p&gt;変更を試みると&lt;code&gt;Error: cannot modify seouluser because it is a view&lt;/code&gt;になります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;seouluser&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;8&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into seouluser values (8, &amp;#39;kuma&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Error: cannot modify seouluser because it is a view
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ビューの一覧を確認する&#34;&gt;ビューの一覧を確認する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.tables&lt;/code&gt;はテーブルとビューの両方を表示します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.tables
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;seouluser  user     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;sqlite_master&lt;/code&gt;を検索すると、ビュー名と定義SQLを取得できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;sql&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;sqlite_master&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;view&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select name, sql from sqlite_master where type = &amp;#39;view&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;seouluser|CREATE VIEW seouluser as select id, name from user where address = &amp;#39;Seoul&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | ビュー（View） | ビューの削除</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/drop-view/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/drop-view/</guid>
      <description>
        
        
        &lt;p&gt;作成済みのビューを削除する方法について説明します。&lt;/p&gt;
&lt;h2 id=&#34;ビューの削除&#34;&gt;ビューの削除&lt;/h2&gt;
&lt;p&gt;作成済みのビューを削除するには、次の構文を使用します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;DROP&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;VIEW&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;ビュー名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;ビューを削除する前に、SQLiteの&lt;code&gt;.tables&lt;/code&gt;コマンドを実行して作成済みのビューとテーブルを確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.tables
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;seouluser  user     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;seouluser&lt;/code&gt;ビューを削除します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;drop&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;view&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;seouluser&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; drop view seouluser;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;.tables&lt;/code&gt;コマンドを再度実行し、&lt;code&gt;seouluser&lt;/code&gt;ビューが削除されたことを確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.tables
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;結果から、&lt;code&gt;seouluser&lt;/code&gt;ビューが削除されたことを確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | インデックス（Index） | インデックスの意味とメリット・デメリット</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/index-intro/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/index-intro/</guid>
      <description>
        
        
        &lt;p&gt;テーブルに多数の列や大量のデータが含まれている場合、特定のデータを検索するのに時間がかかることがあります。このような場合、適切な列にインデックスを作成すると検索を高速化できます。ここでは、インデックスの概要と、使用する場合のメリット・デメリットについて説明します。&lt;/p&gt;
&lt;h2 id=&#34;インデックスとは&#34;&gt;インデックスとは&lt;/h2&gt;
&lt;p&gt;インデックスとは、検索条件として頻繁に使用する列の値を取り出し、見つけやすいように整理したものです。たとえば、次の4つの列を持つテーブルがあるとします。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;id&lt;/th&gt;
					&lt;th&gt;name&lt;/th&gt;
					&lt;th&gt;address&lt;/th&gt;
					&lt;th&gt;old&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1&lt;/td&gt;
					&lt;td&gt;devkuma&lt;/td&gt;
					&lt;td&gt;Seoul&lt;/td&gt;
					&lt;td&gt;23&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2&lt;/td&gt;
					&lt;td&gt;kimkc&lt;/td&gt;
					&lt;td&gt;Busan&lt;/td&gt;
					&lt;td&gt;19&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3&lt;/td&gt;
					&lt;td&gt;araikuma&lt;/td&gt;
					&lt;td&gt;Seoul&lt;/td&gt;
					&lt;td&gt;38&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;4&lt;/td&gt;
					&lt;td&gt;mykuma&lt;/td&gt;
					&lt;td&gt;Daejeon&lt;/td&gt;
					&lt;td&gt;18&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;5&lt;/td&gt;
					&lt;td&gt;yourkuma&lt;/td&gt;
					&lt;td&gt;Seoul&lt;/td&gt;
					&lt;td&gt;17&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;6&lt;/td&gt;
					&lt;td&gt;happykuma&lt;/td&gt;
					&lt;td&gt;Seoul&lt;/td&gt;
					&lt;td&gt;24&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;name&lt;/code&gt;列の値を検索する場合、データは名前順に並んでいないため、保存された行を順番に調べることになります。この程度のデータ量なら問題ありませんが、数百万件のデータが保存されている場合、先頭から探す方法は非常に非効率です。&lt;/p&gt;
&lt;p&gt;このような場合、インデックスを作成すると検索速度を向上できます。簡単に言えば、インデックスは対象列のデータを高速に検索できる形に加工して保存したものです。たとえば、&lt;code&gt;name&lt;/code&gt;列を対象にしたインデックスは次のようになります。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;id&lt;/th&gt;
					&lt;th&gt;name&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;3&lt;/td&gt;
					&lt;td&gt;araikuma&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;1&lt;/td&gt;
					&lt;td&gt;devkuma&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2&lt;/td&gt;
					&lt;td&gt;kimkc&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;6&lt;/td&gt;
					&lt;td&gt;happykuma&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;4&lt;/td&gt;
					&lt;td&gt;mykuma&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;5&lt;/td&gt;
					&lt;td&gt;yourkuma&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;このインデックスは&lt;code&gt;id&lt;/code&gt;列と&lt;code&gt;name&lt;/code&gt;列の値だけを保持し、&lt;code&gt;name&lt;/code&gt;列の値を昇順に並べて保存しています。元のテーブルよりデータ量が少なく、すでに並べ替えられているため、より高速に検索できます。&lt;/p&gt;
&lt;p&gt;検索を高速化する仕組みには、B-tree方式や関数を利用する方式などさまざまな方法があります。重要なのは、インデックスが検索に必要なデータだけを、検索に適した状態でテーブルとは別に保存するという点です。&lt;/p&gt;
&lt;h2 id=&#34;インデックスのメリットとデメリット&#34;&gt;インデックスのメリットとデメリット&lt;/h2&gt;
&lt;p&gt;インデックスは便利ですが、メリットだけではありません。テーブルとは別に独自のデータを保持するため、テーブルにデータを追加するとインデックスも更新されます。また、並び順も維持する必要があるため、データ追加時の処理速度は低下します。&lt;/p&gt;
&lt;p&gt;データ量が少ないテーブルや、値の種類が少ない列にインデックスを作成しても、大きな効果は期待できません。検索にほとんど使用しない列にインデックスを作成する意味もありません。&lt;/p&gt;
&lt;p&gt;インデックスは検索に有用ですが、データ追加時の負荷が増えるというデメリットもあります。必要性を十分に検討してから作成してください。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | インデックス | インデックスを作成する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/create-index/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/create-index/</guid>
      <description>
        
        
        &lt;p&gt;SQLiteでインデックスを作成する方法と、データベース内のインデックスを一覧表示する方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;create-index文でインデックスを作成する&#34;&gt;CREATE INDEX文でインデックスを作成する&lt;/h2&gt;
&lt;p&gt;構文は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;CREATE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;INDEX&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;インデックス名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ON&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;列名&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;列名&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インデックスはテーブルの列を対象とします。1つの列だけでなく、複数列の組み合わせにも作成できます。&lt;/p&gt;
&lt;p&gt;例で使用するテーブルを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table user (name text, old integer, address text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;28&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kimkc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;22&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Busan&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;araikuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;32&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;happykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;23&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;mykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;23&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Daejeon&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;devkuma&amp;#39;, 28, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;kimkc&amp;#39;, 22, &amp;#39;Busan&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;araikuma&amp;#39;, 32, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;happykuma&amp;#39;, 23, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;mykuma&amp;#39;, 23, &amp;#39;Daejeon&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;列に&lt;code&gt;nameindex&lt;/code&gt;というインデックスを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;nameindex&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;on&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create index nameindex on user (name);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これでインデックスが作成されました。&lt;/p&gt;
&lt;h2 id=&#34;インデックスを使ったデータ検索&#34;&gt;インデックスを使ったデータ検索&lt;/h2&gt;
&lt;p&gt;インデックスによって検索が高速になる場合がありますが、インデックスの有無によってクエリの書き方が変わることはありません。SQLiteはクエリ実行時に適切なインデックスを自動的に使用します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user where name = &amp;#39;devkuma&amp;#39;;
devkuma|28|Seoul
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;クエリでインデックスを明示的に指定する必要はありません。&lt;/p&gt;
&lt;h2 id=&#34;データベース内のインデックスを一覧表示する&#34;&gt;データベース内のインデックスを一覧表示する&lt;/h2&gt;
&lt;p&gt;SQLiteの&lt;code&gt;.indices&lt;/code&gt;コマンドを使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.indices
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.indices? TABLE?
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.indices
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .indices
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nameindex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt;
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .indices user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nameindex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;2番目のコマンドでは、&lt;code&gt;user&lt;/code&gt;テーブルを対象とする&lt;code&gt;nameindex&lt;/code&gt;が表示されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | インデックス | UNIQUEインデックスを作成する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/create-unique-index/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/create-unique-index/</guid>
      <description>
        
        
        &lt;p&gt;通常のインデックスには重複する値を含められますが、UNIQUEインデックスは対象列の重複を禁止します。ここでは、UNIQUEインデックスの使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;uniqueインデックスの作成&#34;&gt;UNIQUEインデックスの作成&lt;/h2&gt;
&lt;p&gt;構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE UNIQUE INDEX インデックス名 ON テーブル名 (列名1, 列名2, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;対象列に重複する値があると、UNIQUEインデックスは作成できません。作成後は、既存のインデックス値と重複する行を追加できません。&lt;/p&gt;
&lt;p&gt;複数列のインデックスでは、個々の列に重複があっても、対象列全体の値の組み合わせが一意であれば作成できます。&lt;/p&gt;
&lt;p&gt;例で使用するテーブルを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table user (name text, old integer, address text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;28&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kimkc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;22&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Busan&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;araikuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;32&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;happykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;23&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;devkuma&amp;#39;, 28, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;kimkc&amp;#39;, 22, &amp;#39;Busan&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;araikuma&amp;#39;, 32, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;happykuma&amp;#39;, 23, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;列には現在重複がないため、UNIQUEインデックスを作成できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unique&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;nameindex&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;on&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create unique index nameindex on user (name);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;UNIQUEインデックスが作成されました。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;既存のインデックス値と重複する値は追加できません。次の文は&lt;code&gt;devkuma&lt;/code&gt;が既に存在するためエラーになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;18&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Busan&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (&amp;#39;devkuma&amp;#39;, 18, &amp;#39;Busan&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Error: UNIQUE constraint failed: user.name
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;UNIQUEインデックスの対象列には複数の&lt;code&gt;NULL&lt;/code&gt;値を保存できます。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;address&lt;/code&gt;列には重複する値があるため、その列にUNIQUEインデックスを作成するとエラーになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unique&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;nameindex2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;on&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create unique index nameindex2 on user (address);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Error: UNIQUE constraint failed: user.address
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;primary-key制約およびunique制約との関係&#34;&gt;PRIMARY KEY制約およびUNIQUE制約との関係&lt;/h2&gt;
&lt;p&gt;テーブルの列に&lt;a href=&#34;https://www.devkuma.com/books/pages/1279&#34;&gt;PRIMARY KEY制約&lt;/a&gt;や&lt;a href=&#34;https://www.devkuma.com/books/pages/1283&#34;&gt;UNIQUE制約&lt;/a&gt;を設定できます。&lt;/p&gt;
&lt;p&gt;これらの制約はUNIQUEインデックスと同様に動作します。SQLiteの公式ドキュメントによると、&lt;code&gt;INTEGER PRIMARY KEY&lt;/code&gt;と&lt;code&gt;WITHOUT ROWID&lt;/code&gt;テーブルの主キーを除き、UNIQUE制約とPRIMARY KEY制約は通常UNIQUEインデックスで実装されます。次のスキーマは論理的に同等です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.sqlite.org/lang_createtable.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SQLite Query Language: CREATE TABLE&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;CREATE TABLE t1(a, b UNIQUE);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CREATE TABLE t1(a, b PRIMARY KEY);&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CREATE TABLE t1(a, b);&lt;br&gt;
CREATE UNIQUE INDEX t1b ON t1(b);&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;PRIMARY KEY制約は1つのテーブルに1つしか設定できませんが、UNIQUE制約とUNIQUEインデックスは複数設定できます。動作は似ていますが設計上の意図が異なるため、目的に合う方法を選択してください。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | インデックス | インデックスのスキーマ（構造）を確認する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/index-schema/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/index-schema/</guid>
      <description>
        
        
        &lt;p&gt;作成済みのインデックスがどの&lt;code&gt;CREATE INDEX&lt;/code&gt;文で作成されたかを確認する方法を説明します。&lt;code&gt;sqlite_master&lt;/code&gt;テーブルを照会する方法と&lt;code&gt;.schema&lt;/code&gt;コマンドを使う方法があります。&lt;/p&gt;
&lt;h2 id=&#34;sqlite_masterテーブルから照会する&#34;&gt;sqlite_masterテーブルから照会する&lt;/h2&gt;
&lt;p&gt;次のSQL文を実行します。例では見やすくするため、&lt;code&gt;.mode&lt;/code&gt;コマンドで表示モードを&lt;code&gt;line&lt;/code&gt;に変更します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;sqlite_master&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from sqlite_master;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;table|user|user|2|CREATE TABLE user (name text, old integer, address text, colunm name)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;index|nameindex|user|3|CREATE UNIQUE INDEX nameindex on user (name)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .mode line
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from sqlite_master;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    type = table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name = user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     sql = CREATE TABLE user (name text, old integer, address text)
&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;    type = index
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name = nameindex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     sql = CREATE UNIQUE INDEX nameindex on user (name)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    type = index
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name = nameindex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     sql = CREATE UNIQUE INDEX nameindex on user (name)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インデックスの場合、&lt;code&gt;type&lt;/code&gt;は&lt;code&gt;index&lt;/code&gt;です。&lt;code&gt;name&lt;/code&gt;列にインデックス名、&lt;code&gt;tbl_name&lt;/code&gt;列に対象テーブル名、&lt;code&gt;sql&lt;/code&gt;列に作成時のSQL文が表示されます。&lt;/p&gt;
&lt;p&gt;インデックスだけを表示するには&lt;code&gt;WHERE&lt;/code&gt;句を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;sqlite_master&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from sqlite_master where type = &amp;#39;index&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    type = index
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name = nameindex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     sql = CREATE UNIQUE INDEX nameindex on user (name)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;schemaコマンドを使って照会する&#34;&gt;.schemaコマンドを使って照会する&lt;/h2&gt;
&lt;p&gt;SQLiteの&lt;code&gt;.schema&lt;/code&gt;コマンドでもスキーマ情報を確認できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.schema
.schema? TABLE?
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数を省略すると、すべてのテーブルとインデックスのスキーマ情報を表示します。テーブル名を指定すると、そのテーブルまたは一致するインデックス名に関連する情報を表示します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.schema
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .schema
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE user (name text, old integer, address text, colunm name);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE UNIQUE INDEX nameindex on user (name);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;現在のデータベースにあるテーブルとインデックスの&lt;code&gt;CREATE&lt;/code&gt;文が表示されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | インデックス（Index） | インデックスの削除</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/drop-index/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/drop-index/</guid>
      <description>
        
        
        &lt;p&gt;作成済みのインデックスを削除する方法について説明します。&lt;/p&gt;
&lt;h2 id=&#34;作成済みインデックスの削除&#34;&gt;作成済みインデックスの削除&lt;/h2&gt;
&lt;p&gt;作成済みのインデックスを削除するには、&lt;code&gt;DROP INDEX&lt;/code&gt;文を使用します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;DROP INDEX インデックス名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;実際にインデックスを削除してみましょう。削除する前に、SQLiteの&lt;code&gt;.indices&lt;/code&gt;コマンドを使用して作成済みのインデックスを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.indices
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .indices
nameindex
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;nameindex&lt;/code&gt;インデックスを削除するには、次のように実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;drop index nameindex;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; drop index nameindex;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.indices&lt;/code&gt;コマンドを再度実行し、&lt;code&gt;nameindex&lt;/code&gt;インデックスが削除されたことを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.indices
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .indices
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;結果が空になり、&lt;code&gt;nameindex&lt;/code&gt;インデックスが削除されたことを確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | トリガー（Trigger） | トリガーのスキーマを確認する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/trigger-schema/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/trigger-schema/</guid>
      <description>
        
        
        &lt;p&gt;トリガーの作成に使われた&lt;code&gt;CREATE&lt;/code&gt;文を確認する2つの方法、&lt;code&gt;sqlite_master&lt;/code&gt;テーブルを検索する方法と&lt;code&gt;.schema&lt;/code&gt;コマンドを使う方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;sqlite_masterテーブルを検索する&#34;&gt;sqlite_masterテーブルを検索する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sqlite_master&lt;/code&gt;テーブルを検索します。先にlineモードへ切り替えると結果を読みやすくできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;sqlite_master&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .mode line
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from sqlite_master;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    type = table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name = product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     sql = CREATE TABLE product (id integer, name text)
&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;    type = table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name = history
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = history
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     sql = CREATE TABLE history (user text, name text, sales integer)
&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;    type = trigger
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name = updateproduct
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     sql = CREATE TRIGGER updateproduct update of name on product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;begin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;update history set name = new.name where name = old.name;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;トリガーの場合、&lt;code&gt;type&lt;/code&gt;は&lt;code&gt;trigger&lt;/code&gt;です。&lt;code&gt;name&lt;/code&gt;にはトリガー名、&lt;code&gt;tbl_name&lt;/code&gt;には対象テーブル名、&lt;code&gt;sql&lt;/code&gt;にはトリガーを作成したSQL文が表示されます。トリガーだけを表示するには&lt;code&gt;WHERE&lt;/code&gt;句を追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;sqlite_master&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;trigger&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;type = trigger
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;name = updateproduct
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tbl_name = product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rootpage = 0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sql = CREATE TRIGGER updateproduct update of name on product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;begin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;update history set name = new.name where name = old.name;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;schemaコマンドで確認する&#34;&gt;.schemaコマンドで確認する&lt;/h2&gt;
&lt;p&gt;&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.schema
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.schema? TABLE?
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .schema
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE product (id integer, name text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE history (user text, name text, sales integer);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TRIGGER updateproduct update of name on product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;begin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;update history set name = new.name where name = old.name;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;現在のデータベースにある2つのテーブルと1つのトリガーの&lt;code&gt;CREATE&lt;/code&gt;文を確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | トリガー | トリガーを削除する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/drop-trigger/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/drop-trigger/</guid>
      <description>
        
        
        &lt;p&gt;トリガーを削除する方法を説明します。トリガーは直接削除できるほか、関連するテーブルが削除されたときにも自動的に削除されます。&lt;/p&gt;
&lt;h2 id=&#34;作成済みのトリガーを削除する&#34;&gt;作成済みのトリガーを削除する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;DROP TRIGGER&lt;/code&gt;文を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;DROP&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;TRIGGER&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;トリガー名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;.schema&lt;/code&gt;コマンドでトリガーを確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.schema
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .schema
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE product (id integer, name text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE history (user text, name text, sales integer);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TRIGGER updateproduct update of name on product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;begin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;update history set name = new.name where name = old.name;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;updateproduct&lt;/code&gt;トリガーを削除します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;drop&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;trigger&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;updateproduct&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; drop trigger updateproduct;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.schema
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .schema
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE product (id integer, name text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE history (user text, name text, sales integer);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;updateproduct&lt;/code&gt;トリガーが表示されなくなりました。&lt;/p&gt;
&lt;h2 id=&#34;トリガーが設定されたテーブルを削除する&#34;&gt;トリガーが設定されたテーブルを削除する&lt;/h2&gt;
&lt;p&gt;テーブルを削除すると、そのトリガーも自動的に削除されます。&lt;/p&gt;
&lt;p&gt;&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.schema
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.schema
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE product (id integer, name text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE history (user text, name text, sales integer);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TRIGGER updateproduct update of name on product
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;begin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;update history set name = new.name where name = old.name;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;前の例でトリガーが削除されている場合は、表示されたスキーマから再作成してください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;updateproduct&lt;/code&gt;トリガーは&lt;code&gt;product&lt;/code&gt;テーブルに設定されています。テーブルを削除し、&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;drop&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; drop table product;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .schema
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CREATE TABLE history (user text, name text, sales integer);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;product&lt;/code&gt;テーブルを削除すると、&lt;code&gt;updateproduct&lt;/code&gt;トリガーも自動的に削除されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの追加・更新・削除 | 別のテーブルから取得したデータを追加する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/insert-select/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/insert-select/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;INSERT&lt;/code&gt;文で明示的に指定した値を追加するほかに、&lt;code&gt;SELECT&lt;/code&gt;文で別のテーブルから取得した行も追加できます。ここでは、その方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;別のテーブルから取得したデータを追加する&#34;&gt;別のテーブルから取得したデータを追加する&lt;/h2&gt;
&lt;p&gt;構文は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;INSERT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;INTO&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;SQL文&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;INSERT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;INTO&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;C1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;C2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;C3&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;WHERE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;条件式&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この例では、テーブル1に3つの列が定義されている必要があります。&lt;/p&gt;
&lt;p&gt;追加先の列も指定できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;INSERT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;INTO&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;列名&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;列名&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;SQL文&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;INSERT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;INTO&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;N1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;N2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;N3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;C1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;C2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;C3&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;WHERE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;条件式&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;24&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kimkc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;31&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;araikuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;18&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;happykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;25&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;mykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;19&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table user (id integer, name text, old integer);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, 24);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, 31);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (3, &amp;#39;araikuma&amp;#39;, 18);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (4, &amp;#39;happykuma&amp;#39;, 25);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (5, &amp;#39;mykuma&amp;#39;, 19);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;olduser&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table olduser (id integer, name text, address text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;user&lt;/code&gt;テーブルから&lt;code&gt;old&lt;/code&gt;列が20より大きい行を選択し、&lt;code&gt;id&lt;/code&gt;列と&lt;code&gt;name&lt;/code&gt;列の値を&lt;code&gt;olduser&lt;/code&gt;テーブルに追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;olduser&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into olduser (id, name) select id, name from user where old&amp;gt; 20;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;olduser&lt;/code&gt;テーブルを照会して、追加された行を確認します。例では比較のために先に&lt;code&gt;user&lt;/code&gt;テーブルを照会しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;olduser&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        old       
&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;1           devkuma     24        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           kimkc       31        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           araikuma    18        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4           happykuma   25        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5           mykuma      19        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from olduser;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        address   
&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;1           devkuma               
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           kimkc                 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4           happykuma      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;old&lt;/code&gt;列が20より大きいソース行だけが追加されました。&lt;code&gt;olduser&lt;/code&gt;の&lt;code&gt;address&lt;/code&gt;列の値は指定していないため、デフォルト値の&lt;code&gt;NULL&lt;/code&gt;が保存されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの追加・更新・削除 | データの更新（UPDATE）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/update/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/update/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;UPDATE&lt;/code&gt;文を使って、テーブルに保存されているデータを新しい値に更新する方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;テーブルのデータを更新する&#34;&gt;テーブルのデータを更新する&lt;/h2&gt;
&lt;p&gt;保存済みのデータを更新するには、次の形式で&lt;code&gt;UPDATE&lt;/code&gt;文を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;UPDATE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;SET&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;WHERE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;条件式&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;WHERE&lt;/code&gt;句で更新対象の行を指定します。条件に一致する行が複数あれば、すべて一括で更新されます。&lt;code&gt;WHERE&lt;/code&gt;句を省略すると、テーブルの全行が対象になります。&lt;code&gt;SET&lt;/code&gt;句では更新するカラムと新しい値を指定し、複数のカラムを同時に更新することもできます。&lt;/p&gt;
&lt;p&gt;テーブルを作成し、サンプルデータを追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;flag&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Sales&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Yes&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kimkc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Office&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;No&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;araikuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Office&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Yes&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;happykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Tech&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Yes&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;mykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Sales&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;No&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;id&lt;/code&gt;が3の行の&lt;code&gt;name&lt;/code&gt;を更新し、結果を確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;update&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;set&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;raccoon&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        unit        flag
&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;3           raccoon     Office      Yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次に、&lt;code&gt;unit&lt;/code&gt;が&lt;code&gt;Office&lt;/code&gt;の複数行をまとめて&lt;code&gt;Desk&lt;/code&gt;に更新します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;update&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;set&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Desk&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Office&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1  devkuma    Sales  Yes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2  kimkc      Desk   No
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3  raccoon    Desk   Yes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4  happykuma  Tech   Yes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5  mykuma     Sales  No
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最後に、&lt;code&gt;WHERE&lt;/code&gt;句を省略して全行の&lt;code&gt;flag&lt;/code&gt;を更新します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;update&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;set&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;flag&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;unknown&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;employee&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1  devkuma    Sales  unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2  kimkc      Desk   unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3  raccoon    Desk   unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4  happykuma  Tech   unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5  mykuma     Sales  unknown
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの追加・更新・削除 | データの削除（DELETE）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/delete/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/delete/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;DELETE&lt;/code&gt;文を使用して、テーブルに保存されているデータを削除する方法について説明します。&lt;/p&gt;
&lt;h2 id=&#34;テーブルのデータを削除する&#34;&gt;テーブルのデータを削除する&lt;/h2&gt;
&lt;p&gt;テーブルからデータを削除するには、&lt;code&gt;DELETE&lt;/code&gt;文を使用します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;DELETE FROM テーブル名 WHERE 条件式;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;削除する行を&lt;code&gt;WHERE&lt;/code&gt;句の条件式で指定します。条件に一致する行が複数ある場合は、まとめて削除されます。&lt;code&gt;WHERE&lt;/code&gt;句を省略すると、テーブル内のすべての行が削除されます。&lt;/p&gt;
&lt;p&gt;実際に試してみましょう。次のテーブルを作成し、データを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text, old integer);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (1, &amp;#39;devkuma&amp;#39;, 32);
insert into user values (2, &amp;#39;kimkc&amp;#39;, 15);
insert into user values (3, &amp;#39;araikuma&amp;#39;, 18);
insert into user values (4, &amp;#39;happykuma&amp;#39;, 24);
insert into user values (5, &amp;#39;mykuma&amp;#39;, 19);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer, name text, old integer);
sqlite&amp;gt; 
sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, 32);
sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, 15);
sqlite&amp;gt; insert into user values (3, &amp;#39;araikuma&amp;#39;, 18);
sqlite&amp;gt; insert into user values (4, &amp;#39;happykuma&amp;#39;, 24);
sqlite&amp;gt; insert into user values (5, &amp;#39;mykuma&amp;#39;, 19);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;まず、&lt;code&gt;old&lt;/code&gt;列の値が20未満の行を削除し、テーブルを検索して削除されたことを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;delete from user where old &amp;lt; 20;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; delete from user where old &amp;lt; 20;
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
id          name        old       
----------  ----------  ----------
1           devkuma     32        
4           happykuma   24        
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次に、テーブル内のすべてのデータを削除します。次の文を実行すると、すべての行が削除されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;delete from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; delete from user;
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | SELECT文でデータを取得する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/select/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/select/</guid>
      <description>
        
        
        &lt;p&gt;テーブルに保存されたデータは&lt;code&gt;SELECT&lt;/code&gt;文で取得します。ここでは基本的な構文を説明します。&lt;/p&gt;
&lt;h2 id=&#34;select文でデータを取得する&#34;&gt;SELECT文でデータを取得する&lt;/h2&gt;
&lt;p&gt;テーブルのデータを取得するには&lt;code&gt;SELECT&lt;/code&gt;を使います。基本構文は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;FROM&lt;/code&gt;の後にテーブル名、&lt;code&gt;SELECT&lt;/code&gt;の後に取得するカラムを記述します。複数のカラムはカンマで区切ります。&lt;/p&gt;
&lt;p&gt;条件を指定しない場合はすべての行を取得します。条件に合う行だけを取得するには&lt;code&gt;WHERE&lt;/code&gt;句を使います。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table user (id integer, name text, address text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kimkc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Busan&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;araikuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;happykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;mykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Daejeon&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Busan&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (3, &amp;#39;araikuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (4, &amp;#39;happykuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into user values (5, &amp;#39;mykuma&amp;#39;, &amp;#39;Daejeon&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;user&lt;/code&gt;テーブルの&lt;code&gt;id&lt;/code&gt;と&lt;code&gt;name&lt;/code&gt;を取得します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select id, name from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1|devkuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2|kimkc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3|araikuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4|happykuma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5|mykuma
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;SQLite CLIコマンドで結果の表示形式を変更できます。以降の例では次の設定を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.header on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.mode column
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .header on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .mode column
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select id, name from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name      
&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;1           devkuma   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           kimkc     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           araikuma  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4           happykuma 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5           mykuma    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;すべてのカラムを取得する&#34;&gt;すべてのカラムを取得する&lt;/h2&gt;
&lt;p&gt;すべてのカラムを取得するには、&lt;code&gt;SELECT&lt;/code&gt;に各カラムを列挙できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select id, name, address from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        address   
&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;1           devkuma     Seoul     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           kimkc       Busan     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           araikuma    Seoul     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4           happykuma   Seoul     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5           mykuma      Daejeon   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;また、アスタリスク（&lt;code&gt;*&lt;/code&gt;）を使うと、すべてのカラムをテーブル順に取得できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;*&lt;/code&gt;を使って&lt;code&gt;user&lt;/code&gt;テーブルを検索します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        address   
&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;1           devkuma     Seoul     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           kimkc       Busan     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           araikuma    Seoul     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4           happykuma   Seoul     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5           mykuma      Daejeon   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;rowid&lt;/code&gt;のような特殊値は&lt;code&gt;*&lt;/code&gt;に含まれません。必要な場合は、アスタリスクとは別に指定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rowid&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;rowid&lt;/code&gt;も含まれます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select *, rowid from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        address     rowid     
&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;1           devkuma     Seoul       1         
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           kimkc       Busan       2         
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           araikuma    Seoul       3         
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4           happykuma   Seoul       4         
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5           mykuma      Daejeon     5         
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | ORDER BYで行を並べ替える</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/order-by/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/order-by/</guid>
      <description>
        
        
        &lt;p&gt;検索結果を指定カラムで並べ替えるには&lt;code&gt;ORDER BY&lt;/code&gt;句を使います。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;order-by句で並べ替える&#34;&gt;ORDER BY句で並べ替える&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt;で&lt;code&gt;ORDER BY&lt;/code&gt;を使うと、指定カラムを基準に並べ替えられます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名 ORDER BY カラム名 [ASC|DESC];
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;ORDER BY&lt;/code&gt;の後にカラムと方向を指定します。昇順は&lt;code&gt;ASC&lt;/code&gt;、降順は&lt;code&gt;DESC&lt;/code&gt;で、省略時は昇順です。&lt;/p&gt;
&lt;p&gt;複数カラムはカンマで区切ります。最初のカラムで並べ替え、同値の行を次のカラムで並べ替えます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名
  ORDER BY カラム名1 [ASC|DESC], カラム名2 [ASC|DESC] ...;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (name text, old integer, address text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (name text, old integer, address text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;devkuma&amp;#39;, 39, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;kimkc&amp;#39;, 34, &amp;#39;Busan&amp;#39;);
insert into user values (&amp;#39;araikuma&amp;#39;, 26, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;happykuma&amp;#39;, 19, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;mykuma&amp;#39;, 27, &amp;#39;Daejeon&amp;#39;);
insert into user values (&amp;#39;yourkuma&amp;#39;, 28, &amp;#39;Gwangju&amp;#39;);
insert into user values (&amp;#39;raccoon&amp;#39;, 31, &amp;#39;Busan&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;devkuma&amp;#39;, 39, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;kimkc&amp;#39;, 34, &amp;#39;Busan&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;araikuma&amp;#39;, 26, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;happykuma&amp;#39;, 19, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;mykuma&amp;#39;, 27, &amp;#39;Daejeon&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;yourkuma&amp;#39;, 28, &amp;#39;Gwangju&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;raccoon&amp;#39;, 31, &amp;#39;Busan&amp;#39;);
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;まず明示的に並べ替えずに検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
name        old         address   
----------  ----------  ----------
devkuma     39          Seoul     
kimkc       34          Busan     
araikuma    26          Seoul     
happykuma   19          Seoul     
mykuma      27          Daejeon   
yourkuma    28          Gwangju   
raccoon     31          Busan     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;old&lt;/code&gt;を昇順で並べ替えます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user order by old asc;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;old&lt;/code&gt;が小さい順に表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user order by old asc;
name        old         address   
----------  ----------  ----------
happykuma   19          Seoul     
araikuma    26          Seoul     
mykuma      27          Daejeon   
yourkuma    28          Gwangju   
raccoon     31          Busan     
kimkc       34          Busan     
devkuma     39          Seoul     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次に&lt;code&gt;old&lt;/code&gt;を降順で並べ替えます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user order by old desc;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user order by old desc;
name        old         address   
----------  ----------  ----------
devkuma     39          Seoul     
kimkc       34          Busan     
raccoon     31          Busan     
yourkuma    28          Gwangju   
mykuma      27          Daejeon   
araikuma    26          Seoul     
happykuma   19          Seoul     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;old&lt;/code&gt;が大きい順に表示されます。&lt;/p&gt;
&lt;p&gt;このように指定カラムで昇順または降順に並べ替えられます。&lt;/p&gt;
&lt;h2 id=&#34;複数カラムで並べ替える&#34;&gt;複数カラムで並べ替える&lt;/h2&gt;
&lt;p&gt;まず&lt;code&gt;address&lt;/code&gt;だけで並べ替えます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user order by address asc;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user order by address asc;
name        old         address   
----------  ----------  ----------
kimkc       34          Busan     
raccoon     31          Busan     
mykuma      27          Daejeon   
yourkuma    28          Gwangju   
devkuma     39          Seoul     
araikuma    26          Seoul     
happykuma   19          Seoul     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次に&lt;code&gt;address&lt;/code&gt;で並べ替え、同じ住所の行を&lt;code&gt;old&lt;/code&gt;で並べ替えます。&lt;code&gt;ORDER BY&lt;/code&gt;に記述する順序が優先順位になります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user order by address asc, old asc;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user order by address asc, old asc;
name        old         address   
----------  ----------  ----------
raccoon     31          Busan     
kimkc       34          Busan     
mykuma      27          Daejeon   
yourkuma    28          Gwangju   
happykuma   19          Seoul     
araikuma    26          Seoul     
devkuma     39          Seoul     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;結果は最初に&lt;code&gt;address&lt;/code&gt;、次に&lt;code&gt;old&lt;/code&gt;で並んでいます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | 指定した値の範囲と比較する（BETWEEN句）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/between/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/between/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;BETWEEN&lt;/code&gt;句を使うと、カラム値が指定した範囲内にあるかどうかを条件式で判定できます。ここでは、その書き方を説明します。&lt;code&gt;WHERE&lt;/code&gt;句の基本については、&lt;a href=&#34;https://www.devkuma.com/jp/docs/sqlite/where/&#34;&gt;検索条件を設定する（WHERE句）&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;between句を使った条件式&#34;&gt;BETWEEN句を使った条件式&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;BETWEEN&lt;/code&gt;は両端の値も範囲に含みます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;WHERE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;BETWEEN&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;AND&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;WHERE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;AND&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;NOT BETWEEN&lt;/code&gt;を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;WHERE&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;NOT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;BETWEEN&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;AND&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;devkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;39&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kimkc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;34&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Busan&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;araikuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;26&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;happykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;19&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Seoul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;mykuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;27&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Daejeon&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;yourkuma&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;28&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Gwangju&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;raccoon&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;31&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Busan&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;devkuma     39  Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kimkc       34  Busan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;araikuma    26  Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;happykuma   19  Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mykuma      27  Daejeon
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yourkuma    28  Gwangju
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;raccoon     31  Busan
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次のクエリは、&lt;code&gt;old&lt;/code&gt;が20以上30以下の行を返します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;between&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;and&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;araikuma    26  Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mykuma      27  Daejeon
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yourkuma    28  Gwangju
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;NOT&lt;/code&gt;を追加すると、その範囲外の行が返されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;where&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;old&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;not&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;between&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;and&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;devkuma     39  Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kimkc       34  Busan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;happykuma   19  Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;raccoon     31  Busan
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | 値の一覧と比較する（IN句）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/in/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/in/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;IN&lt;/code&gt;句を使うと、カラム値が一覧内のいずれかと一致するか判定できます。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;p&gt;条件付き検索については&lt;code&gt;WHERE&lt;/code&gt;句の記事を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;in句を使った条件式&#34;&gt;IN句を使った条件式&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;IN&lt;/code&gt;に値の一覧を指定して一致を判定します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名 WHERE カラム IN (値1, 値2, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;カラム値が一覧のいずれかと一致すると行を取得します。これは等価比較を&lt;code&gt;OR&lt;/code&gt;で結ぶ場合と同じです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名 WHERE カラム = 値1 OR カラム = 値2 OR ...;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;NOT IN&lt;/code&gt;を使うと一覧に含まれない行を取得できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名 WHERE カラム NOT IN (値1, 値2, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (name text, old integer, address text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (name text, old integer, address text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;devkuma&amp;#39;, 39, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;kimkc&amp;#39;, 34, &amp;#39;Busan&amp;#39;);
insert into user values (&amp;#39;araikuma&amp;#39;, 26, &amp;#39;Paju&amp;#39;);
insert into user values (&amp;#39;happykuma&amp;#39;, 19, &amp;#39;Paju&amp;#39;);
insert into user values (&amp;#39;mykuma&amp;#39;, 27, &amp;#39;Daejeon&amp;#39;);
insert into user values (&amp;#39;yourkuma&amp;#39;, 28, &amp;#39;Seongnam&amp;#39;);
insert into user values (&amp;#39;raccoon&amp;#39;, 31, &amp;#39;Suwon&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;devkuma&amp;#39;, 39, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;kimkc&amp;#39;, 34, &amp;#39;Busan&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;araikuma&amp;#39;, 26, &amp;#39;Paju&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;happykuma&amp;#39;, 19, &amp;#39;Paju&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;mykuma&amp;#39;, 27, &amp;#39;Daejeon&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;yourkuma&amp;#39;, 28, &amp;#39;Seongnam&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;raccoon&amp;#39;, 31, &amp;#39;Suwon&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件なしで検索すると次の結果になります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
name        old         address   
----------  ----------  ----------
devkuma     39          Seoul     
kimkc       34          Busan     
araikuma    26          Paju      
happykuma   19          Paju      
mykuma      27          Daejeon   
yourkuma    28          Seongnam  
raccoon     31          Suwon     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;address&lt;/code&gt;が&lt;code&gt;Paju&lt;/code&gt;、&lt;code&gt;Seongnam&lt;/code&gt;、&lt;code&gt;Suwon&lt;/code&gt;のいずれかに一致する行を検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user where address in (&amp;#39;Paju&amp;#39;, &amp;#39;Seongnam&amp;#39;, &amp;#39;Suwon&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user where address in (&amp;#39;Paju&amp;#39;, &amp;#39;Seongnam&amp;#39;, &amp;#39;Suwon&amp;#39;);
name        old         address   
----------  ----------  ----------
araikuma    26          Paju      
happykuma   19          Paju      
yourkuma    28          Seongnam  
raccoon     31          Suwon     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件に一致する行だけが返されます。&lt;/p&gt;
&lt;h2 id=&#34;別のテーブルから取得した値と比較する&#34;&gt;別のテーブルから取得した値と比較する&lt;/h2&gt;
&lt;p&gt;値を直接列挙する代わりに、サブクエリで別テーブルから一覧を取得できます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名 WHERE カラム IN (SELECT カラム名 FROM テーブル名);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;サブクエリは1カラムだけを返す必要があります。その結果のいずれかと一致する行を取得します。&lt;/p&gt;
&lt;p&gt;次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table gyeonggi (id integer, region text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table gyeonggi (id integer, region text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into gyeonggi values (1, &amp;#39;Paju&amp;#39;);
insert into gyeonggi values (2, &amp;#39;Seongnam&amp;#39;);
insert into gyeonggi values (3, &amp;#39;Suwon&amp;#39;);
insert into gyeonggi values (4, &amp;#39;Gimpo&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into gyeonggi values (1, &amp;#39;Paju&amp;#39;);
sqlite&amp;gt; insert into gyeonggi values (2, &amp;#39;Seongnam&amp;#39;);
sqlite&amp;gt; insert into gyeonggi values (3, &amp;#39;Suwon&amp;#39;);
sqlite&amp;gt; insert into gyeonggi values (4, &amp;#39;Gimpo&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;address&lt;/code&gt;が&lt;code&gt;gyeonggi&lt;/code&gt;テーブルの&lt;code&gt;region&lt;/code&gt;と一致する&lt;code&gt;user&lt;/code&gt;行を検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user where address in (select region from gyeonggi);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user where address in (select region from gyeonggi);
name        old         address   
----------  ----------  ----------
araikuma    26          Paju      
happykuma   19          Paju      
yourkuma    28          Seongnam  
raccoon     31          Suwon     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件に一致する行だけが返されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | NULL値の行を検索する（IS NULL）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/is-null/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/is-null/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;IS NULL&lt;/code&gt;句を使うと、カラムに&lt;code&gt;NULL&lt;/code&gt;が格納されているかどうかを判定できます。ここでは、&lt;code&gt;IS NULL&lt;/code&gt;を使った条件式の書き方を説明します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WHERE&lt;/code&gt;句については、&lt;a href=&#34;https://www.devkuma.com/jp/docs/sqlite/where/&#34;&gt;検索条件を設定する（WHERE句）&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;is-null句を使った条件式&#34;&gt;IS NULL句を使った条件式&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;IS NULL&lt;/code&gt;を使うと、カラム値が&lt;code&gt;NULL&lt;/code&gt;かどうかを判定できます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名 WHERE カラム名 IS NULL;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;カラム値が&lt;code&gt;NULL&lt;/code&gt;の行だけを取得します。&lt;code&gt;IS NULL&lt;/code&gt;の代わりに&lt;code&gt;ISNULL&lt;/code&gt;も使用できます。&lt;/p&gt;
&lt;p&gt;カラム値が&lt;code&gt;NULL&lt;/code&gt;ではない行を検索するには、&lt;code&gt;IS NOT NULL&lt;/code&gt;を使います。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名, ... FROM テーブル名 WHERE カラム名 IS NOT NULL;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;カラム値が&lt;code&gt;NULL&lt;/code&gt;ではない行だけを取得します。SQLiteでは&lt;code&gt;NOTNULL&lt;/code&gt;と&lt;code&gt;NOT NULL&lt;/code&gt;も使用できます。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;実際に試してみます。次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text, address text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer, name text, address text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;INSERT&lt;/code&gt;文でテーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
insert into user values (2, &amp;#39;kimkc&amp;#39;, null);
insert into user values (3, &amp;#39;araikuma&amp;#39;, &amp;#39;Busan&amp;#39;);
insert into user values (4, &amp;#39;happykuma&amp;#39;, &amp;#39;Daejeon&amp;#39;);
insert into user values (5, &amp;#39;mykuma&amp;#39;, null);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, null);
sqlite&amp;gt; insert into user values (3, &amp;#39;araikuma&amp;#39;, &amp;#39;Busan&amp;#39;);
sqlite&amp;gt; insert into user values (4, &amp;#39;happykuma&amp;#39;, &amp;#39;Daejeon&amp;#39;);
sqlite&amp;gt; insert into user values (5, &amp;#39;mykuma&amp;#39;, null);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件を指定せずに検索すると、次の結果になります。&lt;code&gt;address&lt;/code&gt;カラムに&lt;code&gt;NULL&lt;/code&gt;を含む行があります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
id          name        address   
----------  ----------  ----------
1           devkuma     Seoul     
2           kimkc                 
3           araikuma    Busan     
4           happykuma   Daejeon   
5           mykuma                
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;IS NULL&lt;/code&gt;を使い、&lt;code&gt;address&lt;/code&gt;が&lt;code&gt;NULL&lt;/code&gt;の行だけを検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user where address is null;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user where address is null;
id          name        address   
----------  ----------  ----------
2           kimkc                 
5           mykuma                
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;address&lt;/code&gt;が&lt;code&gt;NULL&lt;/code&gt;の行だけを取得できました。&lt;/p&gt;
&lt;p&gt;次に&lt;code&gt;IS NOT NULL&lt;/code&gt;を使い、&lt;code&gt;address&lt;/code&gt;が&lt;code&gt;NULL&lt;/code&gt;ではない行を検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user where address is not null;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user where address is not null;
id          name        address   
----------  ----------  ----------
1           devkuma     Seoul     
3           araikuma    Busan     
4           happykuma   Daejeon   
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;address&lt;/code&gt;が&lt;code&gt;NULL&lt;/code&gt;ではない行だけを取得できました。&lt;/p&gt;
&lt;p&gt;等価演算子（&lt;code&gt;=&lt;/code&gt;）でカラム値と&lt;code&gt;NULL&lt;/code&gt;を比較しても、正しい結果は得られません。次の&lt;code&gt;SELECT&lt;/code&gt;文を実行してみます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user where address = null;
select * from user where address = NULL;
select * from user where address = &amp;#39;&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user where address = null;
sqlite&amp;gt; select * from user where address = NULL;
sqlite&amp;gt; select * from user where address = &amp;#39;&amp;#39;;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;どのクエリも行を返しません。値が&lt;code&gt;NULL&lt;/code&gt;かどうかを調べるには&lt;code&gt;IS NULL&lt;/code&gt;を使用します。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | カラムに別名を付ける（AS句）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/as/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/as/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt;文でデータを検索するとき、&lt;code&gt;AS&lt;/code&gt;句を使うと元の名前とは異なるカラム名で結果を表示できます。ここでは、カラムに別名を付ける方法を説明します。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2 id=&#34;as句でカラムに別名を付ける&#34;&gt;AS句でカラムに別名を付ける&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;AS&lt;/code&gt;句を使うと、&lt;code&gt;SELECT&lt;/code&gt;の結果に表示するカラム名を変更できます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT カラム名 AS 別名 ... FROM テーブル名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;カラム名の後に&lt;code&gt;AS&lt;/code&gt;を記述し、別名を指定します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;実際に試してみます。次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table product (name text, num integer, price integer);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table product (name text, num integer, price integer);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;INSERT&lt;/code&gt;文でテーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into product values (&amp;#39;Mouse&amp;#39;, 10, 2500);
insert into product values (&amp;#39;Printer&amp;#39;, 4, 8200);
insert into product values (&amp;#39;NotePC&amp;#39;, 6, 54000);
insert into product values (&amp;#39;Display&amp;#39;, 5, 18000);
insert into product values (&amp;#39;Desk&amp;#39;, 8, 27000);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into product values (&amp;#39;Mouse&amp;#39;, 10, 2500);
sqlite&amp;gt; insert into product values (&amp;#39;Printer&amp;#39;, 4, 8200);
sqlite&amp;gt; insert into product values (&amp;#39;NotePC&amp;#39;, 6, 54000);
sqlite&amp;gt; insert into product values (&amp;#39;Display&amp;#39;, 5, 18000);
sqlite&amp;gt; insert into product values (&amp;#39;Desk&amp;#39;, 8, 27000);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このテーブルをそのまま検索すると、次の結果になります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select name, num, price from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select name, num, price from product;
name        num         price     
----------  ----------  ----------
Mouse       10          2500      
Printer     4           8200      
NotePC      6           54000     
Display     5           18000     
Desk        8           27000     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;AS&lt;/code&gt;句を使い、&lt;code&gt;price&lt;/code&gt;カラムを&lt;code&gt;value&lt;/code&gt;という名前で表示します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select name, num, price as value from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select name, num, price as value from product;
name        num         value     
----------  ----------  ----------
Mouse       10          2500      
Printer     4           8200      
NotePC      6           54000     
Display     5           18000     
Desk        8           27000     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;結果のカラム名が&lt;code&gt;value&lt;/code&gt;になっていることを確認できます。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt;文では、カラム値を使った演算結果も取得できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select name, num, price, num * price from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select name, num, price, num * price from product;
name        num         price       num * price
----------  ----------  ----------  -----------
Mouse       10          2500        25000      
Printer     4           8200        32800      
NotePC      6           54000       324000     
Display     5           18000       90000      
Desk        8           27000       216000     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;既定では式の&lt;code&gt;num * price&lt;/code&gt;が結果のカラム名になります。この式に&lt;code&gt;AS&lt;/code&gt;を使って&lt;code&gt;value&lt;/code&gt;という別名を付けます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select name, num, price, num * price as value from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select name, num, price, num * price as value from product;
name        num         price       value     
----------  ----------  ----------  ----------
Mouse       10          2500        25000     
Printer     4           8200        32800     
NotePC      6           54000       324000    
Display     5           18000       90000     
Desk        8           27000       216000    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このように、演算結果にも分かりやすいカラム名を設定できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | DISTINCTで重複を除外する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/distinct/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/distinct/</guid>
      <description>
        
        
        &lt;p&gt;検索結果に重複値が含まれる場合、&lt;code&gt;DISTINCT&lt;/code&gt;で除外できます。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;distinctで重複を除外する&#34;&gt;DISTINCTで重複を除外する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt;の結果から重複を除くには&lt;code&gt;DISTINCT&lt;/code&gt;を使います。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT DISTINCT カラム名, ... FROM テーブル名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;重複は元の行全体ではなく、選択したカラムで判定されます。1カラムなら同じ値、複数なら同じ値の組み合わせが除外されます。&lt;/p&gt;
&lt;p&gt;重複を含めるには&lt;code&gt;ALL&lt;/code&gt;を使います。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT ALL カラム名, ... FROM テーブル名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;どちらも省略した場合は&lt;code&gt;ALL&lt;/code&gt;と同じため、通常は記述不要です。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table product (id integer, name text, color text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table product (id integer, name text, color text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into product values (1, &amp;#39;Mouse&amp;#39;, &amp;#39;White&amp;#39;);
insert into product values (2, &amp;#39;Pen&amp;#39;, &amp;#39;Green&amp;#39;);
insert into product values (3, &amp;#39;Mouse&amp;#39;, &amp;#39;Black&amp;#39;);
insert into product values (4, &amp;#39;NotePC&amp;#39;, &amp;#39;Black&amp;#39;);
insert into product values (5, &amp;#39;Display&amp;#39;, &amp;#39;Yellow&amp;#39;);
insert into product values (6, &amp;#39;Mouse&amp;#39;, &amp;#39;White&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into product values (1, &amp;#39;Mouse&amp;#39;, &amp;#39;White&amp;#39;);
sqlite&amp;gt; insert into product values (2, &amp;#39;Pen&amp;#39;, &amp;#39;Green&amp;#39;);
sqlite&amp;gt; insert into product values (3, &amp;#39;Mouse&amp;#39;, &amp;#39;Black&amp;#39;);
sqlite&amp;gt; insert into product values (4, &amp;#39;NotePC&amp;#39;, &amp;#39;Black&amp;#39;);
sqlite&amp;gt; insert into product values (5, &amp;#39;Display&amp;#39;, &amp;#39;Yellow&amp;#39;);
sqlite&amp;gt; insert into product values (6 &amp;#39;Mouse&amp;#39;, &amp;#39;White&amp;#39;);
Error: near &amp;#34;&amp;#39;Mouse&amp;#39;&amp;#34;: syntax error
sqlite&amp;gt; insert into product values (6, &amp;#39;Mouse&amp;#39;, &amp;#39;White&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;まず&lt;code&gt;product&lt;/code&gt;の&lt;code&gt;name&lt;/code&gt;を重複を含めて検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select name from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select name from product;
name      
----------
Mouse     
Pen       
Mouse     
NotePC    
Display   
Mouse     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次に&lt;code&gt;DISTINCT&lt;/code&gt;を付けて&lt;code&gt;name&lt;/code&gt;を検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select distinct name from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select distinct name from product;
name      
----------
Mouse     
Pen       
NotePC    
Display   
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;重複する&lt;code&gt;name&lt;/code&gt;が除外されました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;color&lt;/code&gt;についても&lt;code&gt;DISTINCT&lt;/code&gt;の有無を比較します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select color from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select color from product;
color     
----------
White     
Green     
Black     
Black     
Yellow    
White     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select distinct color from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select distinct color from product;
color     
----------
White     
Green     
Black     
Yellow    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;DISTINCT&lt;/code&gt;により重複する&lt;code&gt;color&lt;/code&gt;が除外されました。&lt;/p&gt;
&lt;h2 id=&#34;複数カラムの重複を除外する&#34;&gt;複数カラムの重複を除外する&lt;/h2&gt;
&lt;p&gt;複数カラムでは、選択値の組み合わせが同じ行を除外します。次の例では&lt;code&gt;name&lt;/code&gt;と&lt;code&gt;color&lt;/code&gt;に適用します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select distinct name, color from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;qlite&amp;gt; select distinct name, color from product;
name        color     
----------  ----------
Mouse       White     
Pen         Green     
Mouse       Black     
NotePC      Black     
Display     Yellow    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;個々の値は重複していても、両方の値が同じ行だけが除外されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | カラム値の四則演算結果を取得する</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EA%B0%92%EC%97%90-%EC%82%AC%EC%B9%99-%EC%97%B0%EC%82%B0%EC%9D%98-%EA%B2%B0%EA%B3%BC-%EC%A1%B0%ED%9A%8C/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EA%B0%92%EC%97%90-%EC%82%AC%EC%B9%99-%EC%97%B0%EC%82%B0%EC%9D%98-%EA%B2%B0%EA%B3%BC-%EC%A1%B0%ED%9A%8C/</guid>
      <description>
        
        
        &lt;p&gt;データを検索するとき、1つまたは複数のカラム値に四則演算を適用した結果を取得できます。ここでは、その方法を説明します。&lt;/p&gt;
&lt;h2 id=&#34;カラムに対する四則演算&#34;&gt;カラムに対する四則演算&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;演算子&lt;/th&gt;
					&lt;th&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;a + b&lt;/td&gt;
					&lt;td&gt;aにbを加える&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;a - b&lt;/td&gt;
					&lt;td&gt;aからbを引く&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;a * b&lt;/td&gt;
					&lt;td&gt;aにbを掛ける&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;a / b&lt;/td&gt;
					&lt;td&gt;aをbで割る&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;a % b&lt;/td&gt;
					&lt;td&gt;aをbで割った余りを返す&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt;文では、次のように演算子を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;演算子&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;値&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;sale&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;report&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;count&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;report&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;sale&lt;/code&gt;の3倍、次の例は&lt;code&gt;price&lt;/code&gt;と&lt;code&gt;count&lt;/code&gt;を掛けた値を行ごとに返します。&lt;/p&gt;
&lt;p&gt;テーブルを作成し、サンプルデータを追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;discount&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Mouse&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;7&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2500&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;NotePC&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;65000&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;12000&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Display&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;35000&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Printer&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;8000&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2000&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Keyboard&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10000&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;price&lt;/code&gt;から&lt;code&gt;discount&lt;/code&gt;を引きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;discount&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;name        num         price       discount    price - discount
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Mouse       7           2500        0           2500
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NotePC      2           65000       12000       53000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Display     4           35000       0           35000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Printer     5           8000        2000        6000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Keyboard    4           10000       0           10000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;演算式は結果カラムの既定名になります。分かりやすい名前を付けるには&lt;code&gt;AS&lt;/code&gt;句を使います。詳細は&lt;a href=&#34;https://www.devkuma.com/jp/docs/sqlite/as/&#34;&gt;検索結果のカラムに別名を付ける（AS句）&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;discount&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;as&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;result&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;name        num         price       discount    result
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Mouse       7           2500        0           2500
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NotePC      2           65000       12000       53000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Display     4           35000       0           35000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Printer     5           8000        2000        6000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Keyboard    4           10000       0           10000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの検索 | CASE式で条件に応じた値を返す</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/case/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/case/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;CASE&lt;/code&gt;式は条件やカラム値に応じて異なる値を返します。ここでは2つの形式を説明します。&lt;/p&gt;
&lt;h2 id=&#34;case式で条件分岐する&#34;&gt;CASE式で条件分岐する&lt;/h2&gt;
&lt;p&gt;主な形式は2つあります。最初の形式は条件を評価し、最初に真となった結果を返します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT
  CASE
    WHEN 条件1 THEN 結果1
    WHEN 条件2 THEN 結果2
    ELSE 結果3
  END
FROM テーブル名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件1が真なら結果1、そうでなく条件2が真なら結果2、すべて偽なら&lt;code&gt;ELSE&lt;/code&gt;の結果を返します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table exam (name text, result integer);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table exam (name text, result integer);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into exam values (&amp;#39;devkuma&amp;#39;, 85);
insert into exam values (&amp;#39;kimkc&amp;#39;, 54);
insert into exam values (&amp;#39;araikuma&amp;#39;, 78);
insert into exam values (&amp;#39;happykuma&amp;#39;, 98);
insert into exam values (&amp;#39;mykuma&amp;#39;, 48);
insert into exam values (&amp;#39;raccoon&amp;#39;, 68);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into exam values (&amp;#39;devkuma&amp;#39;, 85);
sqlite&amp;gt; insert into exam values (&amp;#39;kimkc&amp;#39;, 54);
sqlite&amp;gt; insert into exam values (&amp;#39;araikuma&amp;#39;, 78);
sqlite&amp;gt; insert into exam values (&amp;#39;happykuma&amp;#39;, 98);
sqlite&amp;gt; insert into exam values (&amp;#39;mykuma&amp;#39;, 48);
sqlite&amp;gt; insert into exam values (&amp;#39;raccoon&amp;#39;, 68);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;result&lt;/code&gt;に応じて3種類の値を返し、結果カラムを&lt;code&gt;judgment&lt;/code&gt;とします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select
  name, result, 
  case
    when result &amp;gt; 80 then &amp;#39;Pass&amp;#39;
    when result &amp;gt; 60 then &amp;#39;ReTest&amp;#39;
    else &amp;#39;Fail&amp;#39;
  end as judgment
from exam;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select
   ...&amp;gt;   name, result, 
   ...&amp;gt;   case
   ...&amp;gt;     when result &amp;gt; 80 then &amp;#39;Pass&amp;#39;
   ...&amp;gt;     when result &amp;gt; 60 then &amp;#39;ReTest&amp;#39;
   ...&amp;gt;     else &amp;#39;Fail&amp;#39;
   ...&amp;gt;   end as judgment
   ...&amp;gt; from exam;
name        result      judgment  
----------  ----------  ----------
devkuma     85          Pass      
kimkc       54          Fail      
araikuma    78          ReTest    
happykuma   98          Pass      
mykuma      48          Fail      
raccoon     68          ReTest    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件に応じた値が返されました。&lt;/p&gt;
&lt;h2 id=&#34;case式で値を比較する&#34;&gt;CASE式で値を比較する&lt;/h2&gt;
&lt;p&gt;2つ目の形式は式を複数の値と順番に比較します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT
  CASE 式
    WHEN 値1 THEN 結果1
    WHEN 値2 THEN 結果2
    ELSE 結果3
  END
FROM テーブル名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;値1なら結果1、値2なら結果2、どれにも一致しなければ&lt;code&gt;ELSE&lt;/code&gt;の結果を返します。&lt;/p&gt;
&lt;p&gt;条件1が真なら結果1、そうでなく条件2が真なら結果2、すべて偽なら&lt;code&gt;ELSE&lt;/code&gt;の結果を返します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table company (name text, address text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table company (name text, address text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルにデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into company values (&amp;#39;A_Electric&amp;#39;, &amp;#39;Seoul&amp;#39;);
insert into company values (&amp;#39;B_Motor&amp;#39;, &amp;#39;California&amp;#39;);
insert into company values (&amp;#39;C_Mobile&amp;#39;, &amp;#39;Suwon&amp;#39;);
insert into company values (&amp;#39;D_Shipping&amp;#39;, &amp;#39;Beijing&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into company values (&amp;#39;A_Electric&amp;#39;, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into company values (&amp;#39;B_Motor&amp;#39;, &amp;#39;California&amp;#39;);
sqlite&amp;gt; insert into company values (&amp;#39;C_Mobile&amp;#39;, &amp;#39;Suwon&amp;#39;);
sqlite&amp;gt; insert into company values (&amp;#39;D_Shipping&amp;#39;, &amp;#39;Beijing&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;address&lt;/code&gt;に応じた結果を返し、結果カラムを&lt;code&gt;Sales&lt;/code&gt;とします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select
  name, address, 
  case address
    when &amp;#39;California&amp;#39; then &amp;#39;America&amp;#39;
    when &amp;#39;Seoul&amp;#39; then &amp;#39;Korea&amp;#39;
    when &amp;#39;Beijing&amp;#39; then &amp;#39;China&amp;#39;
    else &amp;#39;Unknown&amp;#39;
  end as country
from company;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select
   ...&amp;gt;   name, address, 
   ...&amp;gt;   case address
   ...&amp;gt;     when &amp;#39;California&amp;#39; then &amp;#39;America&amp;#39;
   ...&amp;gt;     when &amp;#39;Seoul&amp;#39; then &amp;#39;Korea&amp;#39;
   ...&amp;gt;     when &amp;#39;Beijing&amp;#39; then &amp;#39;China&amp;#39;
   ...&amp;gt;     else &amp;#39;Unknown&amp;#39;
   ...&amp;gt;   end as country
   ...&amp;gt; from company;
name        address     country   
----------  ----------  ----------
A_Electric  Seoul       Korea     
B_Motor     California  America   
C_Mobile    Suwon       Unknown   
D_Shipping  Beijing     China     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;条件に応じた値が返されました。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの結合 | 外部結合（OUTER JOIN）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/outer-join/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/outer-join/</guid>
      <description>
        
        
        &lt;p&gt;外部結合は一致する行に加えて、一方にしかない行も取得します。ここでは&lt;code&gt;LEFT OUTER JOIN&lt;/code&gt;を説明します。&lt;/p&gt;
&lt;h2 id=&#34;外部結合&#34;&gt;外部結合&lt;/h2&gt;
&lt;p&gt;外部結合は指定カラムの値を照合し、内部結合とは異なり一致しない行も返します。&lt;/p&gt;
&lt;p&gt;図では左テーブルの部門IDと右テーブルのIDを照合します。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/sqlite/outter_join.png&#34; alt=&#34;外部結合&#34;&gt;&lt;/p&gt;
&lt;p&gt;右側に一致するIDがなくても左側の行を取得します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;LEFT OUTER JOIN&lt;/code&gt;は左側、&lt;code&gt;RIGHT OUTER JOIN&lt;/code&gt;は右側、&lt;code&gt;FULL OUTER JOIN&lt;/code&gt;は両側の一致しない行を保持します。&lt;/p&gt;
&lt;p&gt;この例で使用しているSQLiteは&lt;code&gt;LEFT OUTER JOIN&lt;/code&gt;だけをサポートし、&lt;code&gt;RIGHT&lt;/code&gt;と&lt;code&gt;FULL OUTER JOIN&lt;/code&gt;はエラーになります。&lt;/p&gt;
&lt;h2 id=&#34;left-outer-joinの使い方&#34;&gt;LEFT OUTER JOINの使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt;と&lt;code&gt;LEFT OUTER JOIN&lt;/code&gt;を組み合わせます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT テーブル名. カラム名, ... FROM テーブル名1
  LEFT OUTER JOIN テーブル名2
  ON テーブル名1.カラム名1 = テーブル名2.カラム名2;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;簡略化すると次の形式です。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT (取得カラム) FROM テーブル名1
  LEFT OUTER JOIN テーブル名2 ON (結合条件);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;必要に応じて取得カラムを&lt;code&gt;テーブル名.カラム名&lt;/code&gt;で修飾します。
 
結合条件は&lt;code&gt;テーブル1.カラム1 = テーブル2.カラム2&lt;/code&gt;と記述します。&lt;/p&gt;
&lt;p&gt;左外部結合は一致する行に加え、&lt;code&gt;FROM&lt;/code&gt;直後のテーブルにしかない行も返します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;employee&lt;/code&gt;と&lt;code&gt;dept&lt;/code&gt;テーブルを作成し、サンプルデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table employee (id integer, name text, dept_id integer);

insert into employee values (1, &amp;#39;dekuma&amp;#39;, 1);
insert into employee values (2, &amp;#39;kimkc&amp;#39;, 3);
insert into employee values (3, &amp;#39;araikuma&amp;#39;, 1);
insert into employee values (4, &amp;#39;happykuma&amp;#39;, 2);
insert into employee values (5, &amp;#39;mykuma&amp;#39;, 4);
insert into employee values (6, &amp;#39;raccoon&amp;#39;, 3);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table employee (id integer, name text, dept_id integer);
sqlite&amp;gt; 
sqlite&amp;gt; insert into employee values (1, &amp;#39;dekuma&amp;#39;, 1);
sqlite&amp;gt; insert into employee values (2, &amp;#39;kimkc&amp;#39;, 3);
sqlite&amp;gt; insert into employee values (3, &amp;#39;araikuma&amp;#39;, 1);
sqlite&amp;gt; insert into employee values (4, &amp;#39;happykuma&amp;#39;, 2);
sqlite&amp;gt; insert into employee values (5, &amp;#39;mykuma&amp;#39;, 4);
sqlite&amp;gt; insert into employee values (6, &amp;#39;raccoon&amp;#39;, 3);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table dept (id integer, name text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into dept values (1, &amp;#39;Sales&amp;#39;);
insert into dept values (2, &amp;#39;Manage&amp;#39;);
insert into dept values (3, &amp;#39;Dev&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table dept (id integer, name text);
sqlite&amp;gt; 
sqlite&amp;gt; insert into dept values (1, &amp;#39;Sales&amp;#39;);
sqlite&amp;gt; insert into dept values (2, &amp;#39;Manage&amp;#39;);
sqlite&amp;gt; insert into dept values (3, &amp;#39;Dev&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;まず&lt;code&gt;employee&lt;/code&gt;に&lt;code&gt;dept&lt;/code&gt;を左外部結合します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from employee left outer join dept on employee.dept_id = dept.id;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from employee left outer join dept on employee.dept_id = dept.id;
id          name        dept_id     id          name      
----------  ----------  ----------  ----------  ----------
1           dekuma      1           1           Sales     
2           kimkc       3           3           Dev       
3           araikuma    1           1           Sales     
4           happykuma   2           2           Manage    
5           mykuma      4                                 
6           raccoon     3           3           Dev       
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;外部結合では&lt;code&gt;FROM&lt;/code&gt;直後のテーブルの不一致行を保持するため、テーブル順で結果が変わります。順序を逆にします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from dept left outer join employee on dept.id = employee.dept_id;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from employee left outer join employee on dept.id = employee.dept_id;
id          name        id          name        dept_id    
----------  ----------  ----------  ----------  ----------
1           Sales       1           dekuma      1         
1           Sales       3           araikuma    1         
2           Manage      4           happykuma   2         
3           Dev         2           kimkc       3         
3           Dev         6           raccoon     3         
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;dept&lt;/code&gt;だけにある行がないため、結果は内部結合と同じです。&lt;/p&gt;
&lt;h2 id=&#34;取得するカラムを指定する&#34;&gt;取得するカラムを指定する&lt;/h2&gt;
&lt;p&gt;カラム指定は内部結合と同じです。両テーブルにある名前は修飾し、一方だけならテーブル名を省略できます。&lt;/p&gt;
&lt;p&gt;外部結合でもカラムを指定します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select employee.id, employee.name, dept.name from employee
  left outer join dept on employee.dept_id = dept.id;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select employee.id, employee.name, dept.name from employee
   ...&amp;gt;   left outer join dept on employee.dept_id = dept.id;
id          name        name      
----------  ----------  ----------
1           dekuma      Sales     
2           kimkc       Dev       
3           araikuma    Sales     
4           happykuma   Manage    
5           mykuma                
6           raccoon     Dev       
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの結合 | クロス結合（CROSS JOIN）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/cross-join/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/cross-join/</guid>
      <description>
        
        
        &lt;p&gt;クロス結合は、2つのテーブルにある行のすべての組み合わせを取得します。ここでは、&lt;code&gt;CROSS JOIN&lt;/code&gt;句の使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;クロス結合&#34;&gt;クロス結合&lt;/h2&gt;
&lt;p&gt;クロス結合は、2つのテーブルにある行のすべての組み合わせを返します。&lt;/p&gt;
&lt;p&gt;左側の各行に対して右側のすべての行を順番に組み合わせ、左側の全行について繰り返します。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/sqlite/cross_join.png&#34; alt=&#34;cross_join&#34;&gt;&lt;/p&gt;
&lt;p&gt;左側に&lt;code&gt;n&lt;/code&gt;行、右側に&lt;code&gt;m&lt;/code&gt;行ある場合、結果は&lt;code&gt;n × m&lt;/code&gt;行になります。非常に大きな結果になる場合があるため注意してください。&lt;/p&gt;
&lt;h2 id=&#34;cross-join句の使い方&#34;&gt;CROSS JOIN句の使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;SELECT&lt;/code&gt;文と&lt;code&gt;CROSS JOIN&lt;/code&gt;句を組み合わせて、2つのテーブルをクロス結合できます。構文は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#f8f8f8&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;CROSS&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;JOIN&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#f8f8f8&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ON&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;カラム&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;取得カラム&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;FROM&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#f8f8f8&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;CROSS&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;JOIN&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;テーブル&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ON&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;結合条件&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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;ON&lt;/code&gt;句も指定できますが、通常&lt;code&gt;CROSS JOIN&lt;/code&gt;は結合条件なしで使うため、以降の例では省略します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;商品を登録する&lt;code&gt;product&lt;/code&gt;テーブルと色を登録する&lt;code&gt;color&lt;/code&gt;テーブルを作成し、サンプルデータを追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Desk&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Cabinet&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Chair&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table product (id integer, name text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into product values (1, &amp;#39;Desk&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into product values (2, &amp;#39;Cabinet&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into product values (3, &amp;#39;Chair&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;table&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;integer&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Red&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Blue&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#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:#204a87;font-weight:bold&#34;&gt;insert&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;into&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;White&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;);&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; create table color (id integer, name text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into color values (1, &amp;#39;Red&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into color values (2, &amp;#39;Blue&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; insert into color values (3, &amp;#39;White&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cross&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;join&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from product cross join color;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        id          name      
&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;1           Desk        1           Red       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1           Desk        2           Blue      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1           Desk        3           White     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           Cabinet     1           Red       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           Cabinet     2           Blue      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           Cabinet     3           White     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           Chair       1           Red       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           Chair       2           Blue      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           Chair       3           White     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;product&lt;/code&gt;の各行と&lt;code&gt;color&lt;/code&gt;のすべての行が組み合わされていることを確認できます。&lt;/p&gt;
&lt;h2 id=&#34;取得するカラムを指定する&#34;&gt;取得するカラムを指定する&lt;/h2&gt;
&lt;p&gt;カラムの指定方法は内部結合と同じです。両方のテーブルに同名カラムがある場合は&lt;code&gt;テーブル名.カラム名&lt;/code&gt;と記述し、一方だけにある名前はテーブル名を省略できます。&lt;/p&gt;
&lt;p&gt;クロス結合でも実際にカラムを指定してみます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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:#204a87;font-weight:bold&#34;&gt;select&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;product&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cross&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;join&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select product.id, product.name, color.name from product cross join color;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id          name        name      
&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;1           Desk        Red       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1           Desk        Blue      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1           Desk        White     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           Cabinet     Red       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           Cabinet     Blue      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2           Cabinet     White     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           Chair       Red       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           Chair       Blue      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3           Chair       White     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの結合 | 自然結合（NATURALキーワード）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/natural/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/natural/</guid>
      <description>
        
        
        &lt;p&gt;内部結合や外部結合では通常、結合条件にカラムを指定します。&lt;code&gt;NATURAL&lt;/code&gt;キーワードを使うと、両方のテーブルにある同名カラムが自動的に使われます。ここでは自然結合を説明します。&lt;/p&gt;
&lt;h2 id=&#34;自然結合の使い方&#34;&gt;自然結合の使い方&lt;/h2&gt;
&lt;p&gt;内部結合または外部結合に&lt;code&gt;NATURAL&lt;/code&gt;を指定します。構文は次のとおりです。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;内部結合の場合&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT テーブル名.カラム名, ... FROM テーブル1
   NATURAL INNER JOIN テーブル2;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;外部結合の場合&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT テーブル名.カラム名, ... FROM テーブル1
   NATURAL LEFT OUTER JOIN テーブル2;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;自然結合では同名カラムが自動的に比較されるため、結合条件は不要です。それ以外は対応する内部結合や外部結合と同じです。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;employee&lt;/code&gt;テーブルと&lt;code&gt;dept&lt;/code&gt;テーブルを作成します。どちらにも&lt;code&gt;dept_id&lt;/code&gt;カラムがあり、サンプルデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table employee (id integer, name text, dept_id integer);

insert into employee values (1, &amp;#39;dekuma&amp;#39;, 1);
insert into employee values (2, &amp;#39;kimkc&amp;#39;, 3);
insert into employee values (3, &amp;#39;araikuma&amp;#39;, 1);
insert into employee values (4, &amp;#39;happykuma&amp;#39;, 2);
insert into employee values (5, &amp;#39;mykuma&amp;#39;, 4);
insert into employee values (6, &amp;#39;raccoon&amp;#39;, 3);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table employee (id integer, name text, dept_id integer);
sqlite&amp;gt; 
sqlite&amp;gt; insert into employee values (1, &amp;#39;dekuma&amp;#39;, 1);
sqlite&amp;gt; insert into employee values (2, &amp;#39;kimkc&amp;#39;, 3);
sqlite&amp;gt; insert into employee values (3, &amp;#39;araikuma&amp;#39;, 1);
sqlite&amp;gt; insert into employee values (4, &amp;#39;happykuma&amp;#39;, 2);
sqlite&amp;gt; insert into employee values (5, &amp;#39;mykuma&amp;#39;, 4);
sqlite&amp;gt; insert into employee values (6, &amp;#39;raccoon&amp;#39;, 3);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table dept(dept_id integer, deptname text);

insert into dept values(1, &amp;#39;Sales&amp;#39;);
insert into dept values(2, &amp;#39;Manage&amp;#39;);
insert into dept values(3, &amp;#39;Dev&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table dept(dept_id integer, deptname text);
sqlite&amp;gt; 
sqlite&amp;gt; insert into dept values(1, &amp;#39;Sales&amp;#39;);
sqlite&amp;gt; insert into dept values(2, &amp;#39;Manage&amp;#39;);
sqlite&amp;gt; insert into dept values(3, &amp;#39;Dev&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;まず自然内部結合を実行します。両テーブルに&lt;code&gt;dept_id&lt;/code&gt;があるため、このカラムで結合されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from employee natural inner join dept;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from employee natural inner join dept;
id          name        dept_id     deptname  
----------  ----------  ----------  ----------
1           dekuma      1           Sales     
2           kimkc       3           Dev       
3           araikuma    1           Sales     
4           happykuma   2           Manage    
6           raccoon     3           Dev       
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;NATURAL&lt;/code&gt;を使うと、同名カラムは結果に1つだけ表示されます。&lt;/p&gt;
&lt;p&gt;これは明示的な&lt;code&gt;ON&lt;/code&gt;条件を使った内部結合と同じです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from employee inner join dept on employee.dept_id = dept.dept_id;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from employee inner join dept on employee.dept_id = dept.dept_id; 
id          name        dept_id     dept_id     deptname  
----------  ----------  ----------  ----------  ----------
1           dekuma      1           1           Sales     
2           kimkc       3           3           Dev       
3           araikuma    1           1           Sales     
4           happykuma   2           2           Manage    
6           raccoon     3           3           Dev       
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次に自然外部結合を実行します。この場合も共通の&lt;code&gt;dept_id&lt;/code&gt;で結合されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from employee natural left outer join employee;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from employee natural left outer join employee;
id          name        dept_id    
----------  ----------  ----------
1           dekuma      1         
2           kimkc       3         
3           araikuma    1         
4           happykuma   2         
5           mykuma      4         
6           raccoon     3         
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これは明示的な&lt;code&gt;ON&lt;/code&gt;条件を使った外部結合と同じです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from employee left outer join dept on employee.dept_id = dept.dept_id;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from employee left outer join dept on employee.dept_id = dept.dept_id;
id          name        dept_id     dept_id     deptname  
----------  ----------  ----------  ----------  ----------
1           dekuma      1           1           Sales     
2           kimkc       3           3           Dev       
3           araikuma    1           1           Sales     
4           happykuma   2           2           Manage    
5           mykuma      4                                 
6           raccoon     3           3           Dev       
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | データの結合 | 同じテーブルを結合する（SELF JOIN）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/self-join/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/self-join/</guid>
      <description>
        
        
        &lt;p&gt;内部結合や外部結合では通常複数のテーブルを結合しますが、テーブルをそれ自身と結合することもできます。これを自己結合（SELF JOIN）と呼びます。&lt;/p&gt;
&lt;h2 id=&#34;自己結合の使い方&#34;&gt;自己結合の使い方&lt;/h2&gt;
&lt;p&gt;自己結合は同じテーブルに対して内部結合または外部結合を行います。同じテーブルを2回使用するため、それぞれに別の別名を指定します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT 別名1.列名, ...
  FROM テーブル名 別名1 INNER JOIN テーブル名 別名2
  ON 別名1.列名 = 別名2.列名;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;FROM&lt;/code&gt;の後と&lt;code&gt;JOIN&lt;/code&gt;の後のテーブルは同じです。別名によって、結合条件や結果で重複する列名を区別できます。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例で使用するテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table employee (id integer, name text, boss_id integer);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table employee (id integer, name text, boss_id integer);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into employee values (1, &amp;#39;devkuma&amp;#39;, 3);
insert into employee values (2, &amp;#39;kimkc&amp;#39;, 4);
insert into employee values (3, &amp;#39;araikuma&amp;#39;, 5);
insert into employee values (4, &amp;#39;happykuma&amp;#39;, 3);
insert into employee values (5, &amp;#39;raccoon&amp;#39;, 0);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into employee values (1, &amp;#39;devkuma&amp;#39;, 3);
sqlite&amp;gt; insert into employee values (2, &amp;#39;kimkc&amp;#39;, 4);
sqlite&amp;gt; insert into employee values (3, &amp;#39;araikuma&amp;#39;, 5);
sqlite&amp;gt; insert into employee values (4, &amp;#39;happykuma&amp;#39;, 3);
sqlite&amp;gt; insert into employee values (5, &amp;#39;raccoon&amp;#39;, 0);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;employee&lt;/code&gt;テーブルには、識別番号の&lt;code&gt;id&lt;/code&gt;、従業員名の&lt;code&gt;name&lt;/code&gt;、上司の識別番号の&lt;code&gt;boss_id&lt;/code&gt;があります。上司も同じテーブルに保存され、&lt;code&gt;boss_id&lt;/code&gt;は別の行の&lt;code&gt;id&lt;/code&gt;を参照します。&lt;/p&gt;
&lt;p&gt;自己結合で上司の名前を取得します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select staff.id, staff.name, boss.name from employee staff
  left outer join employee boss
  on staff.boss_id = boss.id;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select staff.id, staff.name, boss.name from employee staff
   ...&amp;gt;   left outer join employee boss
   ...&amp;gt;   on staff.boss_id = boss.id;
id          name        name      
----------  ----------  ----------
1           devkuma     araikuma  
2           kimkc       happykuma 
3           araikuma    raccoon   
4           happykuma   araikuma  
5           raccoon               
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;AS&lt;/code&gt;句で結果列に別名を付けることもできます。詳細は&lt;a href=&#34;https://www.devkuma.com/books/pages/1314&#34;&gt;取得したデータの列に別名を設定する（AS句）&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select staff.id, staff.name, boss.name as bossname
  from employee staff
  left outer join employee boss
  on staff.boss_id = boss.id;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select staff.id, staff.name, boss.name as bossname
   ...&amp;gt;   from employee staff
   ...&amp;gt;   left outer join employee boss
   ...&amp;gt;   on staff.boss_id = boss.id;
id          name        bossname  
----------  ----------  ----------
1           devkuma     araikuma  
2           kimkc       happykuma 
3           araikuma    raccoon   
4           happykuma   araikuma  
5           raccoon               
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この例は外部結合を使いましたが、同じ手法を内部結合にも適用できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | 現在の設定内容を確認する（.showコマンド）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%EA%B0%81-%ED%95%AD%EB%AA%A9%EC%9D%98-%ED%98%84%EC%9E%AC-%EC%84%A4%EC%A0%95-%EB%82%B4%EC%9A%A9%EC%9D%84-%ED%99%95%EC%9D%B8--show-%EB%AA%85%EB%A0%B9/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%EA%B0%81-%ED%95%AD%EB%AA%A9%EC%9D%98-%ED%98%84%EC%9E%AC-%EC%84%A4%EC%A0%95-%EB%82%B4%EC%9A%A9%EC%9D%84-%ED%99%95%EC%9D%B8--show-%EB%AA%85%EB%A0%B9/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;.show&lt;/code&gt;コマンドを実行すると、出力先や区切り文字など、さまざまな設定項目の現在値を確認できます。ここでは、&lt;code&gt;.show&lt;/code&gt;コマンドの使い方について説明します。&lt;/p&gt;
&lt;h2 id=&#34;showコマンドの使い方&#34;&gt;.showコマンドの使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.show&lt;/code&gt;を実行すると、各設定項目の現在値が表示されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.show
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;実際に確認してみましょう。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.show
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: &amp;#34;&amp;#34;
      output: stdout
colseparator: &amp;#34;|&amp;#34;
rowseparator: &amp;#34;\n&amp;#34;
       stats: off
       width: 
    filename: mydb.sqlite3
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.show&lt;/code&gt;で確認できる設定項目と現在値は上記のとおりです。&lt;/p&gt;
&lt;p&gt;次に、&lt;code&gt;mode&lt;/code&gt;の設定を変更します。&lt;code&gt;mode&lt;/code&gt;の変更には&lt;a href=&#34;https://www.devkuma.com/books/pages/1328&#34;&gt;.modeコマンド&lt;/a&gt;を使用します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.mode html
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode html
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.show&lt;/code&gt;を再度実行して設定内容を確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.show
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode html
sqlite&amp;gt; 
sqlite&amp;gt; .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: html
   nullvalue: &amp;#34;&amp;#34;
      output: stdout
colseparator: &amp;#34;|&amp;#34;
rowseparator: &amp;#34;\n&amp;#34;
       stats: off
       width: 
    filename: mydb.sqlite3
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;mode&lt;/code&gt;の値が変更されたことを確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | SELECT結果にカラム名を表示する（.headers）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/headers-command/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/headers-command/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;.headers&lt;/code&gt;コマンドはSELECT結果にカラム名を表示するか設定します。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;headersコマンドの使い方&#34;&gt;.headersコマンドの使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.headers&lt;/code&gt;でカラム名のヘッダーを表示または非表示にします。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.headers on|off
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.headers on&lt;/code&gt;で表示し、&lt;code&gt;.headers off&lt;/code&gt;で非表示にします。&lt;code&gt;.header&lt;/code&gt;も使用できます。&lt;/p&gt;
&lt;p&gt;現在の設定は&lt;code&gt;.show&lt;/code&gt;で確認できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.show
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: &amp;#34;&amp;#34;
      output: stdout
colseparator: &amp;#34;|&amp;#34;
rowseparator: &amp;#34;\n&amp;#34;
       stats: off
       width: 
    filename: mydb.sqlite3
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;headers&lt;/code&gt;が&lt;code&gt;off&lt;/code&gt;の場合、ヘッダーは表示されません。&lt;/p&gt;
&lt;p&gt;既定設定で検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
1|devkuma|Seoul
2|kimkc|Busan
3|araikuma|Seoul
4|happykuma|Seoul
5|mykuma|Daejeon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;データだけが表示されます。ヘッダーを有効にして再度検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.headers on
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .headers on
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
id|name|address
1|devkuma|Seoul
2|kimkc|Busan
3|araikuma|Seoul
4|happykuma|Seoul
5|mykuma|Daejeon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;先頭行にカラム名が表示されました。&lt;/p&gt;
&lt;p&gt;次に出力モードを変更してヘッダー表示を確認します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mode = csv :&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode csv
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
id,name,address
1,devkuma,Seoul
2,kimkc,Busan
3,araikuma,Seoul
4,happykuma,Seoul
5,mykuma,Daejeon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;mode = column :&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode column
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
id          name        address   
----------  ----------  ----------
1           devkuma     Seoul     
2           kimkc       Busan     
3           araikuma    Seoul     
4           happykuma   Seoul     
5           mykuma      Daejeon   
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;mode = html :&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
&amp;lt;TR&amp;gt;&amp;lt;TH&amp;gt;id&amp;lt;/TH&amp;gt;
&amp;lt;TH&amp;gt;name&amp;lt;/TH&amp;gt;
&amp;lt;TH&amp;gt;address&amp;lt;/TH&amp;gt;
&amp;lt;/TR&amp;gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;1&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;devkuma&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;Seoul&amp;lt;/TD&amp;gt;
&amp;lt;/TR&amp;gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;2&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;kimkc&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;Busan&amp;lt;/TD&amp;gt;
&amp;lt;/TR&amp;gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;3&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;araikuma&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;Seoul&amp;lt;/TD&amp;gt;
&amp;lt;/TR&amp;gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;4&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;happykuma&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;Seoul&amp;lt;/TD&amp;gt;
&amp;lt;/TR&amp;gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;5&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;mykuma&amp;lt;/TD&amp;gt;
&amp;lt;TD&amp;gt;Daejeon&amp;lt;/TD&amp;gt;
&amp;lt;/TR&amp;gt;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;mode = tabs :&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode tabs
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
id	name	address
1	devkuma	Seoul
2	kimkc	Busan
3	araikuma	Seoul
4	happykuma	Seoul
5	mykuma	Daejeon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;mode = tcl :&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode tcl
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
&amp;#34;id&amp;#34; &amp;#34;name&amp;#34; &amp;#34;address&amp;#34;
&amp;#34;1&amp;#34; &amp;#34;devkuma&amp;#34; &amp;#34;Seoul&amp;#34;
&amp;#34;2&amp;#34; &amp;#34;kimkc&amp;#34; &amp;#34;Busan&amp;#34;
&amp;#34;3&amp;#34; &amp;#34;araikuma&amp;#34; &amp;#34;Seoul&amp;#34;
&amp;#34;4&amp;#34; &amp;#34;happykuma&amp;#34; &amp;#34;Seoul&amp;#34;
&amp;#34;5&amp;#34; &amp;#34;mykuma&amp;#34; &amp;#34;Daejeon&amp;#34;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ヘッダーは現在の出力モードに合わせて表示されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | SELECT結果の区切り文字を変更する（.separatorコマンド）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/select-%E6%96%87%EC%9C%BC%EB%A1%9C-%EA%B2%B0%EA%B3%BC%EB%A5%BC-%ED%91%9C%EC%8B%9C%ED%95%A0-%EB%95%8C-%EA%B5%AC%EB%B6%84-%EA%B8%B0%ED%98%B8-%EB%B3%80%EA%B2%BD--separator-%EB%AA%85%EB%A0%B9/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/select-%E6%96%87%EC%9C%BC%EB%A1%9C-%EA%B2%B0%EA%B3%BC%EB%A5%BC-%ED%91%9C%EC%8B%9C%ED%95%A0-%EB%95%8C-%EA%B5%AC%EB%B6%84-%EA%B8%B0%ED%98%B8-%EB%B3%80%EA%B2%BD--separator-%EB%AA%85%EB%A0%B9/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;.separator&lt;/code&gt;コマンドを実行すると、&lt;code&gt;SELECT&lt;/code&gt;文の結果を表示するときに使う既定の区切り文字を変更できます。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;separatorコマンドの使い方&#34;&gt;.separatorコマンドの使い方&lt;/h2&gt;
&lt;p&gt;区切り文字は、クエリ結果の値を区切るほか、&lt;code&gt;.import&lt;/code&gt;コマンドでファイルを読み込むときのフィールド区切りにも使われます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.separator COL? ROW?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;第1引数にはカラムの区切り文字を指定します。省略可能な第2引数には行の区切り文字を指定します。カラム区切りの初期値は&lt;code&gt;|&lt;/code&gt;で、1文字だけでなく文字列も指定できます。現在の設定は&lt;code&gt;.show&lt;/code&gt;で確認できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .show
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        echo: off
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         eqp: off
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     explain: auto
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     headers: off
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        mode: list
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   nullvalue: &amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      output: stdout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;colseparator: &amp;#34;|&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rowseparator: &amp;#34;\n&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       stats: off
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       width:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    filename: mydb.sqlite3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;初期設定では、値が&lt;code&gt;|&lt;/code&gt;で区切られます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1|devkuma|Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2|kimkc|Busan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3|araikuma|Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4|happykuma|Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5|mykuma|Daejeon
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .separator ,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1,devkuma,Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2,kimkc,Busan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3,araikuma,Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4,happykuma,Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5,mykuma,Daejeon
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .separator /-/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1/-/devkuma/-/Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2/-/kimkc/-/Busan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3/-/araikuma/-/Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4/-/happykuma/-/Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5/-/mykuma/-/Daejeon
&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;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; .separator &amp;#34;, &amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sqlite&amp;gt; select * from user;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1, devkuma, Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2, kimkc, Busan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3, araikuma, Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4, happykuma, Seoul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5, mykuma, Daejeon
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | columnモードで列幅を指定する（.widthコマンド）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/width-command/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/width-command/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;.mode column&lt;/code&gt;が有効なとき、&lt;code&gt;.width&lt;/code&gt;コマンドで各カラムの表示幅を設定できます。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;widthコマンドの使い方&#34;&gt;.widthコマンドの使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.width&lt;/code&gt;コマンドは各カラムの表示幅を設定します。&lt;code&gt;.mode&lt;/code&gt;で&lt;code&gt;column&lt;/code&gt;モードにした場合に使用できます。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.width NUM NUM ...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;各引数にはカラム幅を文字数で指定します。複数の幅は空白で区切ります。&lt;/p&gt;
&lt;p&gt;引数を1つだけ指定すると、最初のカラムだけが変更されます。また、幅に関係なくカラム間には2文字分の空白が入ります。&lt;/p&gt;
&lt;p&gt;実際に試します。columnモードに切り替え、既定の設定でデータを表示します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.mode column
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;qlite&amp;gt; .mode column
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
1           devkuma     Seoul     
2           kimkc       Busan     
3           araikuma    Seoul     
4           happykuma   Seoul     
5           mykuma      Daejeon   
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;既定のカラム幅は10文字で、カラム間にはさらに2文字分の空白が入ります。&lt;/p&gt;
&lt;p&gt;最初のカラムだけを4文字幅に設定し、&lt;code&gt;SELECT&lt;/code&gt;文を実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.width 4
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
1     devkuma     Seoul     
2     kimkc       Busan     
3     araikuma    Seoul     
4     happykuma   Seoul     
5     mykuma      Daejeon   
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;最初のカラムは4文字幅になり、残りは既定の10文字幅のままです。&lt;/p&gt;
&lt;p&gt;次に、最初のカラムを4文字、2番目を6文字に設定します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.width 4 6
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .width 4 6
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
1     devkum  Seoul     
2     kimkc   Busan     
3     araiku  Seoul     
4     happyk  Seoul     
5     mykuma  Daejeon   
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;最初のカラムは4文字、2番目は6文字になり、残りは既定の10文字幅です。&lt;/p&gt;
&lt;h2 id=&#34;データが指定幅を超える場合&#34;&gt;データが指定幅を超える場合&lt;/h2&gt;
&lt;p&gt;値がカラム幅を超える場合、超過した文字は切り詰めて表示されます。&lt;/p&gt;
&lt;p&gt;次の例では、最初と2番目のカラムを4文字幅に設定します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.width 4 4
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .width 4 4
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
1     devk  Seoul     
2     kimk  Busan     
3     arai  Seoul     
4     happ  Seoul     
5     myku  Daejeon   
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;2番目のカラムには4文字を超える値がありますが、表示は4文字で切り詰められます。保存されている値には影響しません。&lt;/p&gt;
&lt;h2 id=&#34;データを右揃えで表示する&#34;&gt;データを右揃えで表示する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.width&lt;/code&gt;に負の値を指定すると、データを右揃えで表示できます。&lt;/p&gt;
&lt;p&gt;次の&lt;code&gt;.width&lt;/code&gt;コマンドで幅を指定し、右揃えに設定します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.width -4 -10
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
   1     devkuma  Seoul     
   2       kimkc  Busan     
   3    araikuma  Seoul     
   4   happykuma  Seoul     
   5      mykuma  Daejeon   
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;各カラムが指定幅の中で右揃えになっていることを確認できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | CSVファイルからデータを取り込む（.importコマンド）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/import-csv/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/import-csv/</guid>
      <description>
        
        
        &lt;p&gt;SQLiteではCSVファイルを読み込み、そのデータをテーブルに取り込めます。ここでは、&lt;code&gt;.import&lt;/code&gt;コマンドの使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;importコマンドの使い方&#34;&gt;.importコマンドの使い方&lt;/h2&gt;
&lt;p&gt;データファイルをテーブルに取り込むには&lt;code&gt;.import&lt;/code&gt;を使います。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.import FILE TABLE
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;第1引数にファイル名、第2引数に取り込み先のテーブル名を指定します。ファイルは絶対パス、またはSQLite CLIを起動したディレクトリからの相対パスで指定します。&lt;/p&gt;
&lt;p&gt;既存テーブルと新規テーブルでは取り込み方法が異なります。&lt;/p&gt;
&lt;h2 id=&#34;既存テーブルに取り込む&#34;&gt;既存テーブルに取り込む&lt;/h2&gt;
&lt;p&gt;まず、取り込み先のテーブルを作成し、既存データを数行追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text, address text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Busan&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer, name text, address text);
sqlite&amp;gt; 
sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;);
sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Busan&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のCSVデータを作成し、現在のディレクトリに&lt;code&gt;userdata.csv&lt;/code&gt;として保存します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;3,araikuma,Seoul
4,happykuma,Seoul
5,mykuma,Daejeon
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.mode&lt;/code&gt;でCSVモードに切り替えてから、ファイルを&lt;code&gt;user&lt;/code&gt;テーブルに取り込みます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.mode csv
.import ./userdata.csv user
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode csv
sqlite&amp;gt; .import ./userdata.csv user
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;取り込み後に&lt;code&gt;user&lt;/code&gt;テーブルを検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
1,devkuma,Seoul
2,kimkc,Busan
3,araikuma,Seoul
4,happykuma,Seoul
5,mykuma,Daejeon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;取り込んだ行が既存データの後に追加されています。&lt;/p&gt;
&lt;h2 id=&#34;新しいテーブルに取り込む&#34;&gt;新しいテーブルに取り込む&lt;/h2&gt;
&lt;p&gt;取り込み先が存在しない場合、SQLiteは新しいテーブルを作成し、CSVの先頭行をカラム名として使用します。&lt;/p&gt;
&lt;p&gt;次のCSVデータを作成し、現在のディレクトリに&lt;code&gt;userdata2.csv&lt;/code&gt;として保存します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;id,name,address
1,devkuma,Seoul
2,kimkc,Busan
3,araikuma,Seoul
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CSVモードに切り替え、ファイルを新しい&lt;code&gt;user2&lt;/code&gt;テーブルに取り込みます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.mode csv
.import ./userdata2.csv user2
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode csv
sqlite&amp;gt; .import ./userdata2.csv user2
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;user2&lt;/code&gt;が作成され、取り込んだデータが保存されます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.schema&lt;/code&gt;で作成されたテーブルを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.schema user2
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .schema user2
CREATE TABLE user2(
  &amp;#34;id&amp;#34; TEXT,
  &amp;#34;name&amp;#34; TEXT,
  &amp;#34;address&amp;#34; TEXT
);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CSVの先頭行がカラム名になり、すべてのカラム型は&lt;code&gt;TEXT&lt;/code&gt;です。&lt;/p&gt;
&lt;p&gt;次に&lt;code&gt;user2&lt;/code&gt;テーブルを検索します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user2;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user2;
1,devkuma,Seoul
2,kimkc,Busan
3,araikuma,Seoul
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CSVの2行目以降がテーブルデータとして保存されています。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | データベースのダンプ（.dump）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/dump-command/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/dump-command/</guid>
      <description>
        
        
        &lt;p&gt;データベースのスキーマとデータをSQL文として出力することをダンプと呼びます。ここでは&lt;code&gt;.dump&lt;/code&gt;の使い方を説明します。&lt;/p&gt;
&lt;p&gt;ダンプからデータベースを再構築するには&lt;code&gt;.read&lt;/code&gt;コマンドを使用します。&lt;/p&gt;
&lt;h2 id=&#34;dumpの使い方&#34;&gt;.dumpの使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.dump&lt;/code&gt;でSQLiteデータベースを出力します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.dump? TABLE? ...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数なしならデータベース全体、テーブル名を指定するとそのテーブルだけを出力します。&lt;/p&gt;
&lt;p&gt;サンプルのテーブルとデータを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (name text, old integer, address text);
 
insert into user values (&amp;#39;devkuma&amp;#39;, 28, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;kimkc&amp;#39;, 22, &amp;#39;Busan&amp;#39;);
insert into user values (&amp;#39;araikuma&amp;#39;, 32, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;happykuma&amp;#39;, 23, &amp;#39;Seoul&amp;#39;);
insert into user values (&amp;#39;mykuma&amp;#39;, 23, &amp;#39;Daejeon&amp;#39;);

create index nameindex on user (name);

create table color (id integer, name text);

insert into color values (1, &amp;#39;Red&amp;#39;);
insert into color values (2, &amp;#39;Blue&amp;#39;);
insert into color values (3, &amp;#39;White&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;2つのテーブルと1つのインデックスを持つデータベースで&lt;code&gt;.dump&lt;/code&gt;を実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.dump
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE user (name text, old integer, address text);
INSERT INTO user VALUES(&amp;#39;devkuma&amp;#39;,28,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;kimkc&amp;#39;,22,&amp;#39;Busan&amp;#39;);
INSERT INTO user VALUES(&amp;#39;araikuma&amp;#39;,32,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;happykuma&amp;#39;,23,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;mykuma&amp;#39;,23,&amp;#39;Daejeon&amp;#39;);
CREATE TABLE color (id integer, name text);
INSERT INTO color VALUES(1,&amp;#39;Red&amp;#39;);
INSERT INTO color VALUES(2,&amp;#39;Blue&amp;#39;);
INSERT INTO color VALUES(3,&amp;#39;White&amp;#39;);
CREATE INDEX nameindex on user (name);
COMMIT;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;出力にはスキーマ用の&lt;code&gt;CREATE TABLE&lt;/code&gt;とデータ用の&lt;code&gt;INSERT&lt;/code&gt;が含まれ、順に実行するとデータベースを再構築できます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;user&lt;/code&gt;を指定してそのテーブルだけをダンプします。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.dump user
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .dump user
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE user (name text, old integer, address text);
INSERT INTO user VALUES(&amp;#39;devkuma&amp;#39;,28,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;kimkc&amp;#39;,22,&amp;#39;Busan&amp;#39;);
INSERT INTO user VALUES(&amp;#39;araikuma&amp;#39;,32,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;happykuma&amp;#39;,23,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;mykuma&amp;#39;,23,&amp;#39;Daejeon&amp;#39;);
CREATE INDEX nameindex on user (name);
COMMIT;
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;ダンプをファイルへ出力する&#34;&gt;ダンプをファイルへ出力する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.dump&lt;/code&gt;の前に&lt;code&gt;.output&lt;/code&gt;を使うと、出力をファイルへリダイレクトできます。&lt;/p&gt;
&lt;p&gt;現在のディレクトリの&lt;code&gt;dump.txt&lt;/code&gt;へ出力します。この設定はクエリ結果にも適用されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.output ./dump.txt
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .output ./dump.txt
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;出力先が&lt;code&gt;dump.txt&lt;/code&gt;になりました。&lt;code&gt;.dump&lt;/code&gt;を実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.dump
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .dump
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ダンプはファイルへ書かれるため画面には表示されません。&lt;/p&gt;
&lt;p&gt;現在のディレクトリに新しい&lt;code&gt;dump.txt&lt;/code&gt;があります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ls -al
total 5056
drwxr-xr-x@  8 kimkc  staff      272 11  4 01:24 .
drwxr-xr-x   9 kimkc  staff      306 10 17 23:49 ..
drwxr-xr-x  24 kimkc  staff      816 11  4 01:24 bak
-rw-r--r--   1 kimkc  staff    16384 11  4 01:14 dump.sqlite3
-rw-r--r--   1 kimkc  staff      538 11  4 01:21 dump.txt
-rwxr-xr-x@  1 kimkc  staff   691768 10 11 18:31 sqldiff
-rwxr-xr-x@  1 kimkc  staff  1152260 10 11 18:32 sqlite3
-rwxr-xr-x@  1 kimkc  staff   719796 10 11 18:31 sqlite3_analyzer
$ 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テキストファイルを開くとダンプ内容を確認できます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cat dump.txt 
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE user (name text, old integer, address text);
INSERT INTO user VALUES(&amp;#39;devkuma&amp;#39;,28,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;kimkc&amp;#39;,22,&amp;#39;Busan&amp;#39;);
INSERT INTO user VALUES(&amp;#39;araikuma&amp;#39;,32,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;happykuma&amp;#39;,23,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;mykuma&amp;#39;,23,&amp;#39;Daejeon&amp;#39;);
CREATE TABLE color (id integer, name text);
INSERT INTO color VALUES(1,&amp;#39;Red&amp;#39;);
INSERT INTO color VALUES(2,&amp;#39;Blue&amp;#39;);
INSERT INTO color VALUES(3,&amp;#39;White&amp;#39;);
CREATE INDEX nameindex on user (name);
COMMIT;
$ 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.output stdout&lt;/code&gt;で画面出力へ戻します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.output stdout
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .output stdout
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;出力先を戻すかCLIを終了するまで、ファイルがロックされる場合があります。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | ダンプからデータベースを再構築する（.readコマンド）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%EB%8D%A4%ED%94%84%EB%A5%BC-%EA%B0%80%EC%A0%B8%EC%99%80%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9E%AC%EA%B5%AC%EC%B6%95--read-%EB%AA%85%EB%A0%B9/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%EB%8D%A4%ED%94%84%EB%A5%BC-%EA%B0%80%EC%A0%B8%EC%99%80%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9E%AC%EA%B5%AC%EC%B6%95--read-%EB%AA%85%EB%A0%B9/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;.dump&lt;/code&gt;コマンドはデータベースのスキーマとデータをSQL文として保存します。&lt;code&gt;.read&lt;/code&gt;コマンドでそのダンプファイルを実行すると、同じ内容のデータベースを作成できます。&lt;/p&gt;
&lt;p&gt;ダンプの作成方法は&lt;a href=&#34;https://www.devkuma.com/books/pages/1333&#34;&gt;データベースのダンプ（.dumpコマンド）&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;ダンプファイルを読み込む&#34;&gt;ダンプファイルを読み込む&lt;/h2&gt;
&lt;p&gt;新しいデータベースにダンプを読み込むには&lt;code&gt;.read&lt;/code&gt;を使います。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.read FILENAME
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;読み込むファイル名を指定します。ファイルには、&lt;code&gt;.dump&lt;/code&gt;の出力のようなSQL文が必要です。SQLiteはファイルを読み込むとSQL文を順番に実行します。&lt;/p&gt;
&lt;p&gt;次の&lt;code&gt;dump.txt&lt;/code&gt;には既存データベースのダンプが保存されています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE user (name text, old integer, address text);
INSERT INTO user VALUES(&amp;#39;devkuma&amp;#39;,28,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;kimkc&amp;#39;,22,&amp;#39;Busan&amp;#39;);
INSERT INTO user VALUES(&amp;#39;araikuma&amp;#39;,32,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;happykuma&amp;#39;,23,&amp;#39;Seoul&amp;#39;);
INSERT INTO user VALUES(&amp;#39;mykuma&amp;#39;,23,&amp;#39;Daejeon&amp;#39;);
CREATE TABLE color (id integer, name text);
INSERT INTO color VALUES(1,&amp;#39;Red&amp;#39;);
INSERT INTO color VALUES(2,&amp;#39;Blue&amp;#39;);
INSERT INTO color VALUES(3,&amp;#39;White&amp;#39;);
CREATE INDEX nameindex on user (name);
COMMIT;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;空の新しいデータベース&lt;code&gt;newdb.sqlite3&lt;/code&gt;を作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite3 newdb.sqlite3
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sqlite3 newdb.sqlite3
SQLite version 3.19.3 2017-06-27 16:48:08
Enter &amp;#34;.help&amp;#34; for usage hints.
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.read&lt;/code&gt;でファイルを読み込みます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.read ./dump.txt
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .read ./dump.txt
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ファイル内のSQL文が順番に実行され、2つのテーブルとそのデータが作成されます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.tables&lt;/code&gt;でテーブルを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.tables
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .tables
color  user 
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;各テーブルを照会し、データを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
devkuma|28|Seoul
kimkc|22|Busan
araikuma|32|Seoul
happykuma|23|Seoul
mykuma|23|Daejeon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from color;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from color;
1|Red
2|Blue
3|White
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;データベースのダンプを新しいデータベースに読み込むと、スキーマとデータを再構築できます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLiteコマンド | データベースのバックアップと復元（.backup/.restore）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/backup-restore/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/backup-restore/</guid>
      <description>
        
        
        &lt;p&gt;SQLiteデータベースはファイルのコピーやダンプの取り込みでもバックアップできます。ここでは、別の方法として&lt;code&gt;.backup&lt;/code&gt;と&lt;code&gt;.restore&lt;/code&gt;コマンドを説明します。&lt;/p&gt;
&lt;h2 id=&#34;backupコマンドでバックアップする&#34;&gt;.backupコマンドでバックアップする&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.backup&lt;/code&gt;でデータベースをバックアップします。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.backup ?DB? FILE
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;第1引数はバックアップするデータベース名です。省略時は、通常プライマリデータベースに割り当てられる&lt;code&gt;main&lt;/code&gt;になります。&lt;/p&gt;
&lt;p&gt;第2引数はバックアップファイル名です。名前と拡張子は自由に指定でき、存在しない場合は新しく作成されます。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;バックアップ対象のデータベースに接続します。この例には2つのテーブルがあります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.tables
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .tables
color  user 
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;現在のディレクトリの&lt;code&gt;mydb.back&lt;/code&gt;にバックアップします。ファイルは存在しないため自動的に作成されます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.backup ./mydb.back
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .backup ./mydb.back
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;完了すると現在のディレクトリに&lt;code&gt;mydb.back&lt;/code&gt;が作成されます。これはテキストではなくバイナリのデータベースファイルです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ls -al
total 5080
drwxr-xr-x@  8 kimkc  staff      272 11  4 23:31 .
drwxr-xr-x   9 kimkc  staff      306 10 17 23:49 ..
drwxr-xr-x  27 kimkc  staff      918 11  4 23:31 bak
-rw-r--r--   1 kimkc  staff    16384 11  4 23:30 mydb.back
-rw-r--r--   1 kimkc  staff    16384 11  4 22:38 mydb.sqlite3
-rwxr-xr-x@  1 kimkc  staff   691768 10 11 18:31 sqldiff
-rwxr-xr-x@  1 kimkc  staff  1152260 10 11 18:32 sqlite3
-rwxr-xr-x@  1 kimkc  staff   719796 10 11 18:31 sqlite3_analyzer
$ 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これでデータベースのバックアップは完了です。&lt;/p&gt;
&lt;h2 id=&#34;restoreコマンドで復元する&#34;&gt;.restoreコマンドで復元する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.restore&lt;/code&gt;でバックアップからデータベースを復元します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.restore ?DB? FILE
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;第1引数は復元先のデータベース名で、省略時は&lt;code&gt;main&lt;/code&gt;です。第2引数にはバックアップファイルを指定します。&lt;/p&gt;
&lt;p&gt;復元先に接続してから実行します。復元すると現在のテーブルやデータが削除され、バックアップ内容に置き換わるため注意してください。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;復元先として新しい&lt;code&gt;newdb.sqlite3&lt;/code&gt;データベースを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite3 newdb.sqlite3
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sqlite3 newdb.sqlite3
SQLite version 3.19.3 2017-06-27 16:48:08
Enter &amp;#34;.help&amp;#34; for usage hints.
sqlite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;先ほど作成した&lt;code&gt;mydb.back&lt;/code&gt;を指定して&lt;code&gt;.restore&lt;/code&gt;を実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.restore ./mydb.back
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .restore ./mydb.back
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;データベースの内容がバックアップに保存されていたデータへ置き換わります。&lt;/p&gt;
&lt;p&gt;スキーマを確認すると、2つのテーブルが復元されています。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.tables
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .tables
color  user 
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;テーブルを検索し、バックアップどおりのデータが保存されていることを確認します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from user;
devkuma|28|Seoul
kimkc|22|Busan
araikuma|32|Seoul
happykuma|23|Seoul
mykuma|23|Daejeon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from color;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select * from color;
1|Red
2|Blue
3|White
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これでバックアップしたデータベースを新しいデータベースへ復元できました。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLite関数 | 列またはテーブル全体の行数を求める（count関数）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EB%98%90%EB%8A%94-%EC%A0%84%EC%B2%B4-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98-%ED%96%89%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0-count-%ED%95%A8%EC%88%98/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EB%98%90%EB%8A%94-%EC%A0%84%EC%B2%B4-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98-%ED%96%89%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0-count-%ED%95%A8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;count&lt;/code&gt;関数を使うと、指定した列またはテーブルの行数を求められます。ここでは使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;count関数の使い方&#34;&gt;count関数の使い方&lt;/h2&gt;
&lt;p&gt;構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;count(列名)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数に列名またはアスタリスク（&lt;code&gt;*&lt;/code&gt;）を指定します。列名を指定すると&lt;code&gt;NULL&lt;/code&gt;以外の行数を返し、&lt;code&gt;*&lt;/code&gt;を指定するとテーブルのすべての行数を返します。&lt;code&gt;GROUP BY&lt;/code&gt;句を使用する場合は、グループごとの行数を返します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例で使用するテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text, address text, gender text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer, name text, address text, gender text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;データを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;, &amp;#39;Man&amp;#39;);
insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Busan&amp;#39;, &amp;#39;Woman&amp;#39;);
insert into user values (3, &amp;#39;arikuma&amp;#39;, &amp;#39;Suwan&amp;#39;, &amp;#39;Man&amp;#39;);
insert into user values (4, &amp;#39;happykuma&amp;#39;, NULL, &amp;#39;Man&amp;#39;);
insert into user values (5, &amp;#39;raccoon&amp;#39;, &amp;#39;Seoul&amp;#39;, &amp;#39;Woman&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Seoul&amp;#39;, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Busan&amp;#39;, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; insert into user values (3, &amp;#39;arikuma&amp;#39;, &amp;#39;Suwan&amp;#39;, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (4, &amp;#39;happykuma&amp;#39;, NULL, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (5, &amp;#39;raccoon&amp;#39;, &amp;#39;Seoul&amp;#39;, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;列と&lt;code&gt;address&lt;/code&gt;列の行数を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select count(name), count(address) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select count(name), count(address) from user;
5|4
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;address&lt;/code&gt;列には&lt;code&gt;NULL&lt;/code&gt;の行が1つあるため、&lt;code&gt;name&lt;/code&gt;列よりカウントが1少なくなります。&lt;/p&gt;
&lt;p&gt;テーブル全体の行数を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select count(*) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select count(*) from user;
5
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;すべての列値が&lt;code&gt;NULL&lt;/code&gt;の行があっても、他の行と同様に数えられます。&lt;/p&gt;
&lt;p&gt;最後に、&lt;code&gt;gender&lt;/code&gt;列でグループ化して行数を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select gender, count(*) from user group by gender;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select gender, count(*) from user group by gender;
Man|3
Woman|2
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;GROUP BY&lt;/code&gt;句を使用すると、グループごとに行数が計算されます。詳細は&lt;a href=&#34;https://www.devkuma.com/books/pages/1319/edit&#34;&gt;データをグループ化して合計と平均を計算する（GROUP BY句、HAVING句）&lt;/a&gt;を参照してください。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLite関数 | sum関数とtotal関数で合計を求める</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/sum-total-functions/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/sum-total-functions/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;sum()&lt;/code&gt;と&lt;code&gt;total()&lt;/code&gt;はカラム値の合計を計算します。&lt;/p&gt;
&lt;h2 id=&#34;sum関数とtotal関数の使い方&#34;&gt;sum関数とtotal関数の使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sum()&lt;/code&gt;で合計を計算します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sum(カラム名)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定カラムの合計を返し、&lt;code&gt;GROUP BY&lt;/code&gt;を使うとグループごとに計算します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;total()&lt;/code&gt;も合計を計算します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;total(カラム名)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;同様に&lt;code&gt;GROUP BY&lt;/code&gt;でグループごとの合計を取得できます。&lt;/p&gt;
&lt;p&gt;入力がすべて整数なら&lt;code&gt;sum()&lt;/code&gt;は整数、&lt;code&gt;total()&lt;/code&gt;は常に浮動小数点数を返します。浮動小数点値を含む場合は両方とも浮動小数点数です。&lt;/p&gt;
&lt;p&gt;すべて&lt;code&gt;NULL&lt;/code&gt;の場合、&lt;code&gt;sum()&lt;/code&gt;は&lt;code&gt;NULL&lt;/code&gt;、&lt;code&gt;total()&lt;/code&gt;は&lt;code&gt;0.0&lt;/code&gt;を返します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table store (address text, sales);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table store (address text, sales);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into store values (&amp;#39;Seoul&amp;#39;, NULL);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into store values (&amp;#39;Seoul&amp;#39;, NULL);
sqlite&amp;gt; 
sqlite&amp;gt; select * from store;
address     sales     
----------  ----------
Seoul                 
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;現在は&lt;code&gt;sales&lt;/code&gt;が&lt;code&gt;NULL&lt;/code&gt;の1行だけです。両関数で合計を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select sum(sales), total(sales) from store;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode column
sqlite&amp;gt; .header on
sqlite&amp;gt; 
sqlite&amp;gt; select sum(sales), total(sales) from store;
sum(sales)  total(sales)
----------  ------------
            0.0         
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;NULL&lt;/code&gt;だけの場合、&lt;code&gt;sum()&lt;/code&gt;は&lt;code&gt;NULL&lt;/code&gt;、&lt;code&gt;total()&lt;/code&gt;は&lt;code&gt;0.0&lt;/code&gt;です。&lt;/p&gt;
&lt;p&gt;データを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into store values (&amp;#39;Busan&amp;#39;, 450);
insert into store values (&amp;#39;Daejeon&amp;#39;, 380);
insert into store values (&amp;#39;Seoul&amp;#39;, 95);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into store values (&amp;#39;Busan&amp;#39;, 450);
sqlite&amp;gt; insert into store values (&amp;#39;Daejeon&amp;#39;, 380);
sqlite&amp;gt; insert into store values (&amp;#39;Seoul&amp;#39;, 95);
sqlite&amp;gt; 
sqlite&amp;gt; select * from store;
address     sales     
----------  ----------
Seoul                 
Busan       450       
Daejeon     380       
Seoul       95        
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;もう一度合計を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select sum(sales), total(sales) from store;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select sum(sales), total(sales) from store;
sum(sales)  total(sales)
----------  ------------
925         925.0       
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;すべて整数なので&lt;code&gt;sum()&lt;/code&gt;は整数、&lt;code&gt;total()&lt;/code&gt;は浮動小数点数を返します。&lt;/p&gt;
&lt;p&gt;浮動小数点値を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into store values (&amp;#39;Busan&amp;#39;, 320.45);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into store values (&amp;#39;Busan&amp;#39;, 320.45);
sqlite&amp;gt; 
sqlite&amp;gt; select * from store;
address     sales     
----------  ----------
Seoul                 
Busan       450       
Daejeon     380       
Seoul       95        
Busan       320.45    
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;もう一度合計を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select sum(sales), total(sales) from store;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select sum(sales), total(sales) from store;
sum(sales)  total(sales)
----------  ------------
1245.45     1245.45     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;浮動小数点値を含む場合、両関数とも浮動小数点数を返します。&lt;/p&gt;
&lt;p&gt;最後に&lt;code&gt;address&lt;/code&gt;でグループ化し、グループごとの合計を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select address, sum(sales), total(sales) from store group by address;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select address, sum(sales), total(sales) from store group by address;
address     sum(sales)  total(sales)
----------  ----------  ------------
Busan       770.45      770.45      
Daejeon     380         380.0       
Seoul       95          95.0        
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;住所ごとの合計が返されます。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLite関数 | avg関数で平均値を求める</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/avg-function/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/avg-function/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;avg()&lt;/code&gt;関数は指定したカラムの平均値を求めます。ここでは、その使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;avg関数の使い方&#34;&gt;avg関数の使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;avg()&lt;/code&gt;で平均値を計算します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;avg(カラム名)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定カラムの&lt;code&gt;NULL&lt;/code&gt;以外を平均します。すべて&lt;code&gt;NULL&lt;/code&gt;なら&lt;code&gt;NULL&lt;/code&gt;を返し、&lt;code&gt;GROUP BY&lt;/code&gt;を使うとグループごとに計算します。&lt;/p&gt;
&lt;p&gt;数値に変換できない文字列は&lt;code&gt;0&lt;/code&gt;として扱われます。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例として次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (name text, point integer, gender text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (name text, point integer, gender text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;dekuma&amp;#39;, 72, &amp;#39;Man&amp;#39;);
insert into user values (&amp;#39;kimkc&amp;#39;, 94, &amp;#39;Woman&amp;#39;);
insert into user values (&amp;#39;araikuma&amp;#39;, 58, &amp;#39;Woman&amp;#39;);
insert into user values (&amp;#39;happykuma&amp;#39;, 82, &amp;#39;Man&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;dekuma&amp;#39;, 72, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;kimkc&amp;#39;, 94, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;araikuma&amp;#39;, 58, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;happykuma&amp;#39;, 82, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;avg()&lt;/code&gt;で&lt;code&gt;point&lt;/code&gt;の平均を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select avg(point) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; .mode column
sqlite&amp;gt; .header on
sqlite&amp;gt; 
sqlite&amp;gt; select avg(point) from user;
avg(point)
----------
76.5      
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;平均は&lt;code&gt;(72 + 94 + 58 + 82) ÷ 4 = 76.5&lt;/code&gt;です。&lt;/p&gt;
&lt;p&gt;次に&lt;code&gt;gender&lt;/code&gt;でグループ化して平均を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select gender, avg(point) from user group by gender;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select gender, avg(point) from user group by gender;
gender      avg(point)
----------  ----------
Man         77.0      
Woman       76.0      
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;GROUP BY&lt;/code&gt;を使うとグループ単位で計算され、&lt;code&gt;man&lt;/code&gt;は&lt;code&gt;77&lt;/code&gt;、&lt;code&gt;woman&lt;/code&gt;は&lt;code&gt;76&lt;/code&gt;になります。&lt;/p&gt;
&lt;h2 id=&#34;平均対象にnullや文字列がある場合&#34;&gt;平均対象にNULLや文字列がある場合&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;NULL&lt;/code&gt;は計算から除外されます。次の行を追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;raccoon&amp;#39;, NULL, &amp;#39;Man&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;raccoon&amp;#39;, NULL, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
name        point       gender    
----------  ----------  ----------
dekuma      72          Man       
kimkc       94          Woman     
araikuma    58          Woman     
happykuma   82          Man       
raccoon                 Man       
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;もう一度&lt;code&gt;point&lt;/code&gt;の平均を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select avg(point) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select avg(point) from user;
avg(point)
----------
76.5      
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;NULL&lt;/code&gt;は無視されるため、平均は&lt;code&gt;76.5&lt;/code&gt;のままです。&lt;/p&gt;
&lt;p&gt;次に、数値へ変換できない文字列を追加します。これは&lt;code&gt;0&lt;/code&gt;として扱われます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;mykuma&amp;#39;, &amp;#39;NODATA&amp;#39;, &amp;#39;Woman&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;mykuma&amp;#39;, &amp;#39;NODATA&amp;#39;, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; 
sqlite&amp;gt; select * from user;
name        point       gender    
----------  ----------  ----------
dekuma      72          Man       
kimkc       94          Woman     
araikuma    58          Woman     
happykuma   82          Man       
raccoon                 Man       
mykuma      NODATA      Woman     
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;avg()&lt;/code&gt;で&lt;code&gt;point&lt;/code&gt;の平均を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select avg(point) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select avg(point) from user;
avg(point)
----------
61.2      
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;文字列を&lt;code&gt;0&lt;/code&gt;として含めるため、平均は&lt;code&gt;(72 + 94 + 58 + 82 + 0) ÷ 5 = 61.2&lt;/code&gt;です。除外されない点に注意してください。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLite関数 | 列の最大値と最小値を求める（max関数、min関数）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EA%B0%92%EC%9D%98-%EC%B5%9C%EB%8C%80%EA%B0%92%EA%B3%BC-%EC%B5%9C%EC%86%8C%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B0-max-%ED%95%A8%EC%88%98-min-%ED%95%A8%EC%88%98/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EA%B0%92%EC%9D%98-%EC%B5%9C%EB%8C%80%EA%B0%92%EA%B3%BC-%EC%B5%9C%EC%86%8C%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B0-max-%ED%95%A8%EC%88%98-min-%ED%95%A8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;max&lt;/code&gt;関数を使用すると、指定した列に保存されている最大値を取得できます。&lt;code&gt;min&lt;/code&gt;関数を使用すると最小値を取得できます。ここでは、両方の関数の使い方について説明します。&lt;/p&gt;
&lt;h2 id=&#34;max関数とmin関数の使い方&#34;&gt;max関数とmin関数の使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;max&lt;/code&gt;関数は最大値を求めるために使用します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;max(列名)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定した列に保存されている値のうち、最大の値を返します。&lt;code&gt;GROUP BY&lt;/code&gt;句を使用した場合は、グループごとに最大値を返します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;min&lt;/code&gt;関数は最小値を求めるために使用します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;min(列名)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定した列に保存されている&lt;code&gt;NULL&lt;/code&gt;以外の値のうち、最小の値を返します。&lt;code&gt;GROUP BY&lt;/code&gt;句を使用した場合は、グループごとに最小値を返します。&lt;/p&gt;
&lt;p&gt;どちらの関数も、指定した列に&lt;code&gt;NULL&lt;/code&gt;しかない場合は&lt;code&gt;NULL&lt;/code&gt;を返します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;実際に最大値と最小値を求めてみましょう。まず、次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (name text, point integer, gender text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (name text, point integer, gender text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;INSERT&lt;/code&gt;文を使用して次のデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (&amp;#39;dekuma&amp;#39;, 72, &amp;#39;Man&amp;#39;);
insert into user values (&amp;#39;kimkc&amp;#39;, 94, &amp;#39;Woman&amp;#39;);
insert into user values (&amp;#39;araikuma&amp;#39;, 58, &amp;#39;Woman&amp;#39;);
insert into user values (&amp;#39;happykuma&amp;#39;, 82, &amp;#39;Man&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (&amp;#39;dekuma&amp;#39;, 72, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;kimkc&amp;#39;, 94, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;araikuma&amp;#39;, 58, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; insert into user values (&amp;#39;happykuma&amp;#39;, 82, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;max&lt;/code&gt;関数と&lt;code&gt;min&lt;/code&gt;関数を使用して、&lt;code&gt;point&lt;/code&gt;列の最大値と最小値を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select max(point), min(point) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select max(point), min(point) from user;
max(point)  min(point)
----------  ----------
94          58        
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;列にある値の最大値と最小値を取得できました。&lt;/p&gt;
&lt;p&gt;次に、&lt;code&gt;gender&lt;/code&gt;列でグループ化し、グループごとの最大値と最小値を求めます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select gender, max (point), min (point) from user group by gender;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select gender, max (point), min (point) from user group by gender;
gender      max (point)  min (point)
----------  -----------  -----------
Man         82           72         
Woman       94           58         
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;GROUP BY&lt;/code&gt;句を使用すると、グループごとに最大値と最小値を計算できます。詳しくは、&lt;a href=&#34;https://www.devkuma.com/books/pages/1319&#34;&gt;データをグループ化して合計と平均を計算する（GROUP BY句、HAVING句）&lt;/a&gt;を参照してください。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLite関数 | 列の値を連結する（group_concat関数）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EA%B0%92%EC%9D%84-%EC%97%B0%EA%B2%B0%ED%95%98%EC%97%AC-%ED%91%9C%EC%8B%9C-groupconcat-%ED%95%A8%EC%88%98/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%EC%BB%AC%EB%9F%BC-%EA%B0%92%EC%9D%84-%EC%97%B0%EA%B2%B0%ED%95%98%EC%97%AC-%ED%91%9C%EC%8B%9C-groupconcat-%ED%95%A8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;group_concat&lt;/code&gt;関数は、指定した列の値を区切り文字で連結した文字列を返します。ここでは使い方を説明します。&lt;/p&gt;
&lt;h2 id=&#34;group_concat関数の使い方&#34;&gt;group_concat関数の使い方&lt;/h2&gt;
&lt;p&gt;構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;group_concat(列名)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定した列の&lt;code&gt;NULL&lt;/code&gt;以外の値を連結します。&lt;code&gt;GROUP BY&lt;/code&gt;句を使用すると、グループごとに結果を作成します。&lt;/p&gt;
&lt;p&gt;デフォルトではカンマで値を区切ります。別の区切り文字を使う場合は第2引数に指定します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;group_concat(列名, 区切り文字)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;例で使用するテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table user (id integer, name text, gender text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table user (id integer, name text, gender text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Man&amp;#39;);
insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Woman&amp;#39;);
insert into user values (3, &amp;#39;araikuma&amp;#39;, &amp;#39;Man&amp;#39;);
insert into user values (4, NULL, &amp;#39;Man&amp;#39;);
insert into user values (5, &amp;#39;raccoon&amp;#39;, &amp;#39;Woman&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into user values (1, &amp;#39;devkuma&amp;#39;, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (2, &amp;#39;kimkc&amp;#39;, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; insert into user values (3, &amp;#39;araikuma&amp;#39;, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (4, NULL, &amp;#39;Man&amp;#39;);
sqlite&amp;gt; insert into user values (5, &amp;#39;raccoon&amp;#39;, &amp;#39;Woman&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;列の値を連結します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select group_concat(name) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select group_concat(name) from user;
group_concat(name)            
------------------------------
devkuma,kimkc,araikuma,raccoon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;NULL&lt;/code&gt;以外の名前がデフォルトのカンマで連結されました。&lt;/p&gt;
&lt;p&gt;次に、&lt;code&gt;gender&lt;/code&gt;列でグループ化し、各グループの名前を連結します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select gender, group_concat (name) from user group by gender;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select gender, group_concat (name) from user group by gender;
gender      group_concat (name)
----------  -------------------
Man         devkuma,araikuma   
Woman       kimkc,raccoon      
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;GROUP BY&lt;/code&gt;句を使うと、グループごとに値が連結されます。詳細は&lt;a href=&#34;https://www.devkuma.com/books/pages/1319&#34;&gt;データをグループ化して合計と平均を計算する（GROUP BY句、HAVING句）&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;区切り文字を指定する&#34;&gt;区切り文字を指定する&lt;/h2&gt;
&lt;p&gt;デフォルトのカンマを別の文字に変更するには、&lt;code&gt;group_concat&lt;/code&gt;の第2引数に区切り文字を指定します。&lt;/p&gt;
&lt;p&gt;次のクエリは、プラス記号（&lt;code&gt;+&lt;/code&gt;）で名前を連結します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select group_concat(name, &amp;#39;+&amp;#39;) from user;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select group_concat(name, &amp;#39;+&amp;#39;) from user;
group_concat(name, &amp;#39;+&amp;#39;)       
------------------------------
devkuma+kimkc+araikuma+raccoon
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定したプラス記号で名前を区切った1つの文字列が表示されました。&lt;/p&gt;

      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
    <item>
      <title>SQLite | SQLite関数 | 文字列の文字数を返す（length関数）</title>
      <link>https://www.devkuma.com/jp/docs/sqlite/%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98-%EB%AC%B8%EC%9E%90%EC%88%98-%EB%B0%98%ED%99%98-length-%ED%95%A8%EC%88%98/</link>
      <pubDate>Mon, 14 Oct 2019 23:19:51 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/sqlite/%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98-%EB%AC%B8%EC%9E%90%EC%88%98-%EB%B0%98%ED%99%98-length-%ED%95%A8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;length&lt;/code&gt;関数を使用すると、文字列の文字数を取得できます。ここでは、&lt;code&gt;length&lt;/code&gt;関数の使い方について説明します。&lt;/p&gt;
&lt;h2 id=&#34;length関数の使い方&#34;&gt;length関数の使い方&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;length&lt;/code&gt;関数は文字列の長さを取得するために使用します。構文は次のとおりです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;length(文字列)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数に指定した文字列の文字数を返します。BLOB型の値の場合はバイト数を返します。文字列を直接指定するほか、列名を指定すると、その列に保存されている値の文字数を返します。&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;実際に試してみましょう。まず、次のテーブルを作成します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;create table product (id integer, name_eng text, name_kor text);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; create table product (id integer, name_eng text, name_kor text);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;INSERT&lt;/code&gt;文を使用して次のデータを追加します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insert into product values (1, &amp;#39;Apple&amp;#39;, &amp;#39;사과&amp;#39;);
insert into product values (2, &amp;#39;Car&amp;#39;, &amp;#39;자동차&amp;#39;);
insert into product values (3, &amp;#39;Television&amp;#39;, &amp;#39;텔레비전&amp;#39;);
insert into product values (4, &amp;#39;Mobile&amp;#39;, &amp;#39;휴대&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; insert into product values (1, &amp;#39;Apple&amp;#39;, &amp;#39;사과&amp;#39;);
sqlite&amp;gt; insert into product values (2, &amp;#39;Car&amp;#39;, &amp;#39;자동차&amp;#39;);
sqlite&amp;gt; insert into product values (3, &amp;#39;Television&amp;#39;, &amp;#39;텔레비전&amp;#39;);
sqlite&amp;gt; insert into product values (4, &amp;#39;Mobile&amp;#39;, &amp;#39;휴대&amp;#39;);
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;length&lt;/code&gt;関数を使用して、&lt;code&gt;name_eng&lt;/code&gt;列と&lt;code&gt;name_kor&lt;/code&gt;列に保存されている値の文字数を取得します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select name_eng, length(name_eng), name_kor, length(name_kor) from product;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select name_eng, length(name_eng), name_kor, length(name_kor) from product;
name_eng    length(name_eng)  name_kor    length(name_kor)
----------  ----------------  ----------  ----------------
Apple       5                 사과          2               
Car         3                 자동차         3               
Television  10                텔레비전        4               
Mobile      6                 휴대          2               
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;列に保存されている各値の文字数を取得できました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;length&lt;/code&gt;関数には文字列を直接指定することもできます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select length(&amp;#39;Flower&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sqlite&amp;gt; select length(&amp;#39;Flower&amp;#39;);
length(&amp;#39;Flower&amp;#39;)
----------------
6               
sqlite&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;
      </description>
      
      <category>SQLite</category>
      
      <category>データベース</category>
      
    </item>
    
  </channel>
</rss>
