<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL &#8211; スグブログ</title>
	<atom:link href="https://sugublog.org/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>https://sugublog.org</link>
	<description>ブログ運営について発信中</description>
	<lastBuildDate>Tue, 19 Mar 2024 09:48:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://sugublog.org/wp-content/uploads/2021/07/icon_20210703-min-150x150.png</url>
	<title>SQL &#8211; スグブログ</title>
	<link>https://sugublog.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【SQL】max関数で最大値のレコードを取得する方法</title>
		<link>https://sugublog.org/sql-max/</link>
					<comments>https://sugublog.org/sql-max/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Tue, 19 Mar 2024 09:48:43 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[max]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=6533</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/analytics-8-1024x724.jpg" class="webfeedsFeaturedVisual" /></p>SQLのmax関数で最大値のレコードを取得する方法を教えます。 また最大値のレコードを取得する時のエラーになるものや注意点もお伝えします。 そのエラーの対処法なども現役エンジニアの筆者が答えていきます。 この記事を読めば [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/analytics-8-1024x724.jpg" class="webfeedsFeaturedVisual" /></p>
<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">SQLのmax関数</span></strong>で最大値のレコードを取得する方法</span>を教えます。</p>



<p>また<span class="swl-marker mark_yellow">最大値のレコードを取得する時の<span class="swl-inline-color has-swl-deep-01-color"><span class="swl-fz u-fz-l">エラー</span></span>になるものや<span class="swl-inline-color has-swl-deep-01-color"><span class="swl-fz u-fz-l">注意点</span></span></span>もお伝えします。</p>



<p>その<span class="swl-inline-color has-swl-deep-03-color"><span class="swl-fz u-fz-l">エラーの対処法</span></span>なども現役エンジニアの筆者が答えていきます。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p>この記事を読めば<span class="swl-inline-color has-swl-deep-01-color">SQLのmaxについて理解</span>できます。</p>



<h2 class="wp-block-heading">SQLのmax関数で最大値のレコードを取得する方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="770" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-2-1024x770.jpg" alt="max" class="wp-image-4805" srcset="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-2-1024x770.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-2-300x226.jpg 300w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-2-768x577.jpg 768w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-2.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><span class="swl-marker mark_orange">最大値のレコードを取得する<strong><span class="swl-inline-color has-swl-deep-01-color">max関数</span></strong>のSQLの基礎</span>は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select max(カラム名) where テーブル名 group by グルーピングしたいカラム名</code></pre></div>



<p>SQLの<span class="swl-inline-color has-swl-deep-02-color">テーブル基礎構成</span>は以下です。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>SQLのテーブル構成</th><th>カラム１</th><th>カラム２</th></tr></thead><tbody><tr><th>レコード１</th><td>レコード１の値</td><td>レコード１の値</td></tr><tr><th>レコード２</th><td>レコード２の値</td><td>レコード２の値</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのテーブル構成</figcaption></figure>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">max関数の特徴</span></strong>として３つあります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>SQLのMAX関数の特徴３選</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>グループ内で最大値を抽出する</li>



<li>グループを指定しない場合は全体を1グループとして抽出する</li>



<li>数字だけでなく、文字列や日付なども使用可能</li>
</ul>
</div></div>



<h2 class="wp-block-heading">maxを使用してグループ内で最大値を抽出する</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/07/analytics-6-1024x683.jpg" alt="max" class="wp-image-3692" srcset="https://sugublog.org/wp-content/uploads/2021/07/analytics-6-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/07/analytics-6-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/07/analytics-6-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/07/analytics-6.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">max</span></strong>を使用してグループ内で最大値を抽出</span>してみます。</p>



<p>まず下のようなSQLテーブルがあるとします。テーブル名は「users」にします。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th><th>group_name</th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>41</td><td>B</td></tr><tr><td>2</td><td>user_2</td><td>24</td><td>A</td></tr><tr><td>3</td><td>user_3</td><td>35</td><td>B</td></tr><tr><td>4</td><td>user_4</td><td>12</td><td>C</td></tr><tr><td>5</td><td>user_5</td><td>43</td><td>A</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのusersテーブル</figcaption></figure>



<p>「group」カラムが同じものの中での最大値を抽出してみます。そのSQLは以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select group_name ,max(score) from users group by group_name;</code></pre></div>



<p>このSQLを実行した結果は以下となります。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th>group_name</th><th>max(score)</th></tr></thead><tbody><tr><td>A</td><td>43</td></tr><tr><td>B</td><td>41</td></tr><tr><td>C</td><td>12</td></tr></tbody></table><figcaption class="wp-element-caption">SQLの実行結果</figcaption></figure>



<p class="has-border -border01">AからCまでのグループの中で、scoreの最大値が表示されています。</p>



<h2 class="wp-block-heading">maxを持っているレコードを表示したい時の注意点</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/09/moving_0926-2-1024x683.jpg" alt="注意" class="wp-image-4208" srcset="https://sugublog.org/wp-content/uploads/2021/09/moving_0926-2-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/09/moving_0926-2-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/09/moving_0926-2-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/09/moving_0926-2.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th><th>group_name</th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>41</td><td>B</td></tr><tr><td>2</td><td>user_2</td><td>24</td><td>A</td></tr><tr><td>3</td><td>user_3</td><td>35</td><td>B</td></tr><tr><td>4</td><td>user_4</td><td>12</td><td>C</td></tr><tr><td>5</td><td>user_5</td><td>43</td><td>A</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのusersテーブル</figcaption></figure>



<p>では先程の条件で<span class="swl-inline-color has-swl-deep-01-color">レコード全体</span>を表示してみます。SQLは以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select id,name,group_name ,max(score) from users group by group_name;</code></pre></div>



<p>selectの後に「id」と「name」を追加しました。</p>



<p>実行結果は以下となりました。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th>group_name</th><th> score </th></tr></thead><tbody><tr><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true"> </span>2</td><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true">&nbsp;</span>user_2</td><td>A</td><td>43</td></tr><tr><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true">&nbsp;</span>1</td><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true"> </span>user_1</td><td>B</td><td>41</td></tr><tr><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true">&nbsp;</span>4</td><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true">&nbsp;</span>user_4</td><td>C</td><td>12</td></tr></tbody></table><figcaption class="wp-element-caption">SQLの実行結果</figcaption></figure>



<p>このSQLですがデーターベースの種類によって<span class="swl-bg-color has-swl-deep-01-background-color">エラー</span>が出るか、<span class="swl-bg-color has-swl-deep-01-background-color">想定外のグループの最初の人</span>が出るかになります。</p>



<p class="is-style-big_icon_point">「group by」でグルーピングした場合は<span class="swl-inline-color has-swl-deep-01-color">「group by」で指定したカラム</span>か、<span class="swl-inline-color has-swl-deep-01-color">関数（maxやminなど）</span>でないと思い通りに処理してくれません。</p>



<p>このDBではエラーが出ず結果が出ていますが、「id」と「name」に関しては正常に表示されていません。</p>



<p class="has-border -border01">例えばAグループの最高得点は43ですが、その方の「id」は「5」、「name」は「user_5」が正解です。しかしここでは「id」は「2」、「name」は「user_2」となっており、想定通りではありません。</p>



<p class="is-style-big_icon_caution">「group by」でグルーピングした場合は<span class="swl-marker mark_yellow"><span class="swl-inline-color has-swl-deep-01-color"><strong>「group by」で指定したカラム</strong></span>か<strong><span class="swl-inline-color has-swl-deep-01-color">関数（maxやminなど）</span></strong>以外は指定しないでください。</span></p>



<h2 class="wp-block-heading">max関数でグループを指定しない場合</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="620" src="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg" alt="グルーピング" class="wp-image-4505" srcset="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/user1114-300x182.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/user1114-768x465.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/user1114.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th><th>group_name</th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>41</td><td>B</td></tr><tr><td>2</td><td>user_2</td><td>24</td><td>A</td></tr><tr><td>3</td><td>user_3</td><td>35</td><td>B</td></tr><tr><td>4</td><td>user_4</td><td>12</td><td>C</td></tr><tr><td>5</td><td>user_5</td><td>43</td><td>A</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのusersテーブル</figcaption></figure>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">max関数でグループを指定しない場合</span></strong>を試します。SQLは以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select group_name ,max(score) from users;</code></pre></div>



<p>scoreのmax以外にgroup_nameを追加で表示させています。実行結果は以下です。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th>group_name</th><th>max(score)</th></tr></thead><tbody><tr><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true">&nbsp;</span>B</td><td>43</td></tr></tbody></table><figcaption class="wp-element-caption">SQLの実行結果</figcaption></figure>



<p class="has-border -border01">テーブル全体で一番最大の43が表示されていますが、それに対応する「group_name」の「A」ではなく「B」が表示されています。</p>



<p class="is-style-big_icon_caution">グループを指定しない場合はテーブルを一つのグループとして抽出するので<span class="swl-marker mark_yellow"><strong><span class="swl-inline-color has-swl-deep-01-color">関数（maxやmin）以外</span></strong>は指定しないでください。</span></p>



<h2 class="wp-block-heading">maxで数字だけでなく、文字列や日付などの最大を抽出</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="1024" height="649" src="https://sugublog.org/wp-content/uploads/2021/06/time1-1-min-e1623600613499.jpg" alt="日付" class="wp-image-2966" srcset="https://sugublog.org/wp-content/uploads/2021/06/time1-1-min-e1623600613499.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/06/time1-1-min-e1623600613499-300x190.jpg 300w, https://sugublog.org/wp-content/uploads/2021/06/time1-1-min-e1623600613499-768x487.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th>birthday</th><th> score </th><th>group_name</th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>1999-4-3</td><td>41</td><td>B</td></tr><tr><td>2</td><td>user_2</td><td>1996-07-15</td><td>24</td><td>A</td></tr><tr><td>3</td><td>user_3</td><td>2001-12-03</td><td>35</td><td>B</td></tr><tr><td>4</td><td>user_4</td><td>2006-01-09</td><td>12</td><td>C</td></tr><tr><td>5</td><td>user_5</td><td>1998-07-07</td><td>43</td><td>A</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのusersテーブル</figcaption></figure>



<p>maxやminは数字だけではなく、<span class="swl-inline-color has-swl-deep-01-color">日付や文字列</span>まで優劣をつけてくれます。</p>



<p>ここでは日付の最大を抽出してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select group_name,name,max(birthday) from users;</code></pre></div>



<p>SQLの実行結果は以下となりました。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> group_name</th><th>name</th><th> max(birthday)</th></tr></thead><tbody><tr><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true">&nbsp;</span>B</td><td data-has-cell-bg="1" data-text-color="white"><span class="swl-cell-bg has-swl-deep-01-background-color" data-text-color="white" aria-hidden="true">&nbsp;</span>user_1</td><td>2006-01-09</td></tr></tbody></table><figcaption class="wp-element-caption">SQLの実行結果</figcaption></figure>



<p class="has-border -border01">maxで最大の「2006年1月9日」が抽出されています。</p>



<p class="is-style-icon_bad">max以外の指定カラムは出鱈目（デタラメ）なので注意です。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">max関数以外のレコードも全て表示する方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="288" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0813-1-1024x288.jpg" alt="" class="wp-image-3983" srcset="https://sugublog.org/wp-content/uploads/2021/08/programing_0813-1-1024x288.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/programing_0813-1-300x84.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/programing_0813-1-768x216.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/programing_0813-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th><th>group_name</th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>41</td><td>B</td></tr><tr><td>2</td><td>user_2</td><td>24</td><td>A</td></tr><tr><td>3</td><td>user_3</td><td>35</td><td>B</td></tr><tr><td>4</td><td>user_4</td><td>12</td><td>C</td></tr><tr><td>5</td><td>user_5</td><td>43</td><td>A</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのusersテーブル</figcaption></figure>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">maxで最大値のレコード全体を表示</span></strong>できないかをサブクエリで試行錯誤してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT * 
FROM `users` AS u 
where score 
in (select max(score) 
from `users` AS s 
where u.group_name = s.group_name)</code></pre></div>



<p>「users」のテーブルを「u」として「score」がサブクエリの結果の範囲に入っているレコードを表示します。</p>



<p>サブクエリでは「users」テーブルを「s」として「u」と「s」の「group_name」が同じもののmax（最大値）を表示します。</p>



<p>サブクエリの最大値がscoreと同じレコードを全て表示しています。</p>



<p>SQLの結果は以下となりました。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th><th>group_name</th></tr></thead><tbody><tr><td data-has-cell-bg="1"><span data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg"> </span>1</td><td data-has-cell-bg="1"><span data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg"> </span>user_1</td><td>41</td><td>B</td></tr><tr><td data-has-cell-bg="1"><span data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg"> </span>4</td><td data-has-cell-bg="1"><span data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg"> </span>user_4</td><td>12</td><td>C</td></tr><tr><td data-has-cell-bg="1"><span data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg"> </span>5</td><td data-has-cell-bg="1"><span data-icon-size="l" data-icon-type="bg" aria-hidden="true" class="swl-cell-bg"> </span>user_5</td><td>43</td><td>A</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのusersテーブル</figcaption></figure>



<p class="has-border -border01">グループごとのmax（最大値）が表示され、そのレコードも全て表示できました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-max/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SQLserverでCASEとWHENを使用して分岐する</title>
		<link>https://sugublog.org/sql-base-case-when/</link>
					<comments>https://sugublog.org/sql-base-case-when/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sun, 01 Oct 2023 11:45:12 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[CASE]]></category>
		<category><![CDATA[THEN]]></category>
		<category><![CDATA[WHEN]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=5627</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/server_007-3-1024x768.jpg" class="webfeedsFeaturedVisual" /></p>プログラミングをするにあたって条件分岐は重要であり、極めるとやりたい事の幅がグッと広がります。 SQLにも条件分岐があります。CASEとWHENとTHENを使用します。updateなどでもcaseは使われます。 実際にS [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/server_007-3-1024x768.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>プログラミングをするにあたって条件分岐は重要</strong>であり、極めるとやりたい事の幅がグッと広がります。</p>



<p><strong>SQLにも条件分岐</strong>があります。<strong><span class="swl-inline-color has-swl-deep-01-color">CASEとWHENとTHEN</span></strong>を使用します。updateなどでもcaseは使われます。</p>



<p>実際にSQLで<strong><span class="swl-inline-color has-swl-deep-01-color">CASEとWHENとTHEN</span></strong>を使用して結果をみてみましょう。</p>



<p>また<span class="swl-bg-color has-swl-deep-01-background-color">よくあるエラー</span>なども一緒にご紹介します。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでCASEとWHENとTHENを使用して分岐する</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/07/pixta_77773496_M-1024x791.jpg" alt="選択する" class="wp-image-3635"/><figcaption class="wp-element-caption">Business person stand on road fork with hard and easy directions. Choice way isometric</figcaption></figure>
</div>


<p><strong>SQLでCASEを使用して条件分岐する時の基礎構文</strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>CASE WHEN 評価 THEN 式
     WHEN 評価 THEN 式
     WHEN 評価 THEN 式
     ・
     ・
     ELSE 式
END</code></pre></div>



<p><strong>SQLのCASE</strong>を使用する時の決まりはあまりなく、<span class="swl-bg-color has-swl-deep-02-background-color">どこにも記述できる</span>事が強みです。</p>



<p>WHENの後に評価式をもってきて該当すればTHEN以降の式が返されます。</p>



<p>どれにも当てはまらない場合はELSEの後の式が返されます。</p>



<p class="is-style-icon_info">ELSEは省略可能ですが、すればELSE NULLになるので省略しない</p>



<p class="is-style-big_icon_caution">終了時にはENDを入れる（必須項目）</p>



<h2 class="wp-block-heading">SQLでCASEやWHENやTHENを使用してみる</h2>



<p>では実際に<strong>SQLでCASE</strong>を使用します。</p>



<p><span class="swl-marker mark_orange">使用用途としてSELECT文の結果を柔軟に表示変えする事</span>が多いです。</p>



<h3 class="wp-block-heading">実際にSQLを実行する環境説明</h3>



<p>以下のSQLテーブルがあるとします。</p>



<figure class="wp-block-image size-full is-style-border"><img decoding="async" width="354" height="320" src="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having.png" alt="SQLのテーブル_点数" class="wp-image-5623" srcset="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having.png 354w, https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having-300x271.png 300w" sizes="(max-width: 354px) 100vw, 354px" /><figcaption class="wp-element-caption">SQLのテーブル_点数</figcaption></figure>



<h3 class="wp-block-heading">GROUP BY句にてグルーピングして点数の合計を出す</h3>



<p>チーム別の合計値を表示してみます。</p>



<p>以下のSQL文を見て下さい。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>※GROUP BY句にてグルーピングして点数の合計を出すSQL
SELECT `チーム名`,SUM(`点数`) FROM `点数` GROUP BY `チーム名`;</code></pre></div>



<p>結果は以下になります。</p>



<figure class="wp-block-image size-full is-style-desktop"><img decoding="async" width="171" height="95" src="https://sugublog.org/wp-content/uploads/2023/10/sql_case_sum.png" alt="SQLにてGROUP BY句でSUMの結果を表示" class="wp-image-5632"/><figcaption class="wp-element-caption">SQLにてGROUP BY句でSUMの結果</figcaption></figure>



<h3 class="wp-block-heading">CASEにてグルーピングして点数の合計を出す</h3>



<p>この結果ですがチーム名をカラムへ、合計点数をレコードに入れ替えしてみます。</p>



<p>以下のCASEのSQL文を見てください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT SUM(CASE WHEN `チーム名` = &#39;チームA&#39; THEN `点数` ELSE 0 END) &#39;チームAの点数&#39;, 
       SUM(CASE WHEN `チーム名` = &#39;チームB&#39; THEN `点数` ELSE 0 END) &#39;チームBの点数&#39;,
       SUM(CASE WHEN `チーム名` = &#39;チームC&#39; THEN `点数` ELSE 0 END) &#39;チームCの点数&#39;
       FROM `点数`;</code></pre></div>



<h3 class="wp-block-heading">CASEにてグルーピングして点数の合計を出すSQLの説明</h3>



<p>今回は<span class="swl-marker mark_orange"><strong>集約関数の中にCASE</strong>を指定して、チーム別にグルーピング</span>しています。</p>



<p>判別式でチーム名のカラムが〇〇のときに点数を合計、当てはまらなければ０を指定しています。</p>



<p class="is-style-icon_info">ENDは必須なので忘れずに記入してます。</p>



<p>このSQLを実行してみます。</p>



<figure class="wp-block-image size-full is-style-desktop"><img decoding="async" width="266" height="49" src="https://sugublog.org/wp-content/uploads/2023/10/sql_case_sum_change.png" alt="SQLにてCASE句でSUMの結果" class="wp-image-5633"/><figcaption class="wp-element-caption">SQLにてCASE句でSUMの結果</figcaption></figure>



<p>普通にグルーピングした結果の縦横を変換して表示できています。</p>



<p class="has-border -border02">このように<span class="swl-marker mark_orange">SELECT文を自分の行いたい表示に変更する時に<strong>CASE</strong>を使用します。</span></p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでCASEのよくあるエラー</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/06/shutterstock_1433996435-min-1024x683.jpg" alt="エラー" class="wp-image-2885"/></figure>
</div>


<p><strong>SQLのCASE</strong>を使用する時のよくある<span class="swl-bg-color has-swl-deep-01-background-color">エラー</span>は様々あります。</p>



<p>その中でも一番多いのは最後の「END」を忘れる事です。</p>



<p>先程のSQL文で最後の「END」を消して実行してみましょう！</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-file="エラーSQL構文" data-lang="SQL"><code>※エラーが出るSQL構文
SELECT SUM(CASE WHEN `チーム名` = &#39;チームA&#39; THEN `点数` ELSE 0) &#39;チームAの点数&#39;, 
       SUM(CASE WHEN `チーム名` = &#39;チームB&#39; THEN `点数` ELSE 0) &#39;チームBの点数&#39;,
       SUM(CASE WHEN `チーム名` = &#39;チームC&#39; THEN `点数` ELSE 0) &#39;チームCの点数&#39;
       FROM `点数`;</code></pre></div>



<p>上のSQLを実行してみましょう！</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-file="エラーメッセージ" data-lang="SQL"><code>#1064 - SQL構文エラーです。バージョンに対応するマニュアルを参照して正しい構文を確認してください。 : &#39;) &#39;チームAの点数&#39;,
       SUM(CASE WHEN `チーム名` = &#39;チームB&#39;...&#39; 付近 1 行目</code></pre></div>



<p>このようなエラーメッセージが出ました！</p>



<p>このようなメッセージが出た時は最後の「END」を確認して見て下さい。</p>



<h2 class="wp-block-heading">SQLでCASEとWHENとTHENを使用して分岐するのまとめ</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="512" src="https://sugublog.org/wp-content/uploads/2021/07/code-007-01-1024x512.jpg" alt="SQLでCASEとWHENとTHENを使用して分岐するのまとめ" class="wp-image-3584" srcset="https://sugublog.org/wp-content/uploads/2021/07/code-007-01-1024x512.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/07/code-007-01-300x150.jpg 300w, https://sugublog.org/wp-content/uploads/2021/07/code-007-01-768x384.jpg 768w, https://sugublog.org/wp-content/uploads/2021/07/code-007-01-1536x768.jpg 1536w, https://sugublog.org/wp-content/uploads/2021/07/code-007-01-scaled.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><strong><span class="swl-inline-color has-swl-deep-01-color">SQLでCASEを使用して条件分岐する時の基礎構文</span></strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>CASE WHEN 評価 THEN 式
     WHEN 評価 THEN 式
     WHEN 評価 THEN 式
     ・
     ・
     ELSE 式
END</code></pre></div>



<p>SQLのCASEを使用する時の決まりはあまりなく、<span class="swl-marker mark_orange">どこにも記述できる</span>事が強みです。</p>



<p class="is-style-big_icon_caution">終了時にはENDを入れる（必須項目）</p>



<p>SELECT文を自分の行いたい表示に変更する時にCASEを使用します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-case-when/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【SQL基礎】havingの使い方を学ぶ。countなどを使用する</title>
		<link>https://sugublog.org/sql-base-having-count/</link>
					<comments>https://sugublog.org/sql-base-having-count/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sun, 01 Oct 2023 09:58:20 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[HAVING]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=5618</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg" class="webfeedsFeaturedVisual" /></p>SQL文で集約したものに条件を付けたい場合があると思います。 そんな時はHAVING句が使用できます。 条件を付けたい場合だとWHERE関数を思いつくと思いますが、WHERE句はレコード単体に対してのみしか条件を付ける事 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-marker mark_orange">SQL文で集約したものに条件を付けたい場合</span></strong>があると思います。</p>



<p>そんな時は<strong><span class="swl-bg-color has-swl-deep-01-background-color">HAVING句</span></strong>が使用できます。</p>



<p>条件を付けたい場合だとWHERE関数を思いつくと思いますが、<span class="swl-bg-color has-swl-deep-02-background-color">WHERE句はレコード単体</span>に対してのみしか条件を付ける事ができません。</p>



<p>集約関数を使用する平均値が〇〇、合計値が〇〇といった条件はWHEREではできません。</p>



<p>そこででてくるのがHAVING句です。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<p>HAVING句の使い方を学んで行きましょう！</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでhavingの使い方を学ぶ。countなどを使用する</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="512" src="https://sugublog.org/wp-content/uploads/2021/11/access1114-1024x512.jpg" alt="SQLでhavingの使い方を学ぶ。countなどを使用する" class="wp-image-4500" srcset="https://sugublog.org/wp-content/uploads/2021/11/access1114-1024x512.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/access1114-300x150.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/access1114-768x384.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/access1114.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQLでHaving句を使用する時の基礎構文</h3>



<p><strong><span class="swl-marker mark_orange">SQLでHaving句の基本構文</span></strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT 集約関数 FROM テーブル名 GROUP BY カラム名 HAVING 集約関数;</code></pre></div>



<p class="is-style-icon_pen">集約関数とは平均のAVG関数や合計のSUM関数、数を数えるCOUNT関数などです。</p>



<p>集約関数を使用できるのは以下の3つです。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>集約関数が使用できる３句</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>SELECT句</li>



<li>HAVING句</li>



<li>ORDER BY句</li>
</ul>
</div></div>



<p class="has-border -border02">WHEREで集約関数は使用できないので<strong>Having句</strong>を使用します！</p>



<h3 class="wp-block-heading">SQLでHAVING句を使用する時の注意点</h3>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>HAVING句を使用する時の注意点</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>位置はGROUP BY句の後</li>



<li>Having句で使用できるものに制限あり</li>
</ul>
</div></div>



<p>一つ目の注意点として位置でHAVING関数が使用できるのは<strong><span class="swl-marker mark_yellow">GROUP BY句の後ろ</span></strong>になります。</p>



<p>二つ目の注意点は<span class="swl-marker mark_yellow">Having関数で使用できる要素が限られています。</span></p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>Having関数で使用できる要素</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>定数</li>



<li>集約関数</li>



<li>GROUP BY句で指定したカラム</li>
</ul>
</div></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでhavingとCountを使ってみる</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="614" src="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-1024x614.jpg" alt="traning" class="wp-image-4544" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-1024x614.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-300x180.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-768x461.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>では実際にSQLでHaving句を使用して実施してみます</p>



<p>以下のテーブルがあったとします。</p>


<div class="wp-block-image is-style-border">
<figure class="aligncenter size-full"><img decoding="async" width="354" height="320" src="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having.png" alt="SQLのテーブル_点数" class="wp-image-5623" srcset="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having.png 354w, https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having-300x271.png 300w" sizes="(max-width: 354px) 100vw, 354px" /><figcaption class="wp-element-caption">SQLのテーブル_点数</figcaption></figure>
</div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p>それぞれのチームの人数が4人のチームを表示させてみます。</p>



<p>下のSQL文を実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT `チーム名`,COUNT(*) &#39;人数&#39; FROM `点数` GROUP BY `チーム名` HAVING COUNT(*) = 4;</code></pre></div>



<h3 class="wp-block-heading">SQL文解説：havingとCount</h3>



<p>SELECT文で表示するカラムで「チーム名」と<strong><span class="swl-bg-color has-swl-deep-01-background-color">集約関数COUNT</span></strong>を指定し、わかりやすいようにカラム名を「人数」にします。</p>



<p>FROMでテーブル名を指定します。</p>



<p>GROUP BY句でグルーピングするカラム「チーム名」を指定します。</p>



<p class="has-border -border02"><strong>Having句で人数の合計が4</strong>を指定します。</p>



<p>ここでHaving句を使用する時の注意点を思い出してください。</p>



<p><strong><span class="swl-marker mark_orange">GROUP BY句の後ろに記述</span></strong>しています。また<strong><span class="swl-marker mark_orange">Having句で集約関数を使用している</span></strong>ので注意点はクリアしている事が分かると思います。</p>



<h3 class="wp-block-heading">SQL文実施：havingとCount</h3>



<p>実行結果は以下となります。</p>



<figure class="wp-block-image size-full is-style-desktop"><img decoding="async" width="104" height="79" src="https://sugublog.org/wp-content/uploads/2023/10/sql_having_count.png" alt="SQLにてHaving句でCountの結果を表示" class="wp-image-5624"/><figcaption class="wp-element-caption">SQLにてHaving句でCountの結果</figcaption></figure>



<p>チームの合計人数が４のチームが表示されています！</p>



<h2 class="wp-block-heading">SQLでhavingとSumを使ってみる</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-1024x683.jpg" alt="traning" class="wp-image-4541" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>今度はチームごとの合計値が1500以上のチーム名と合計値を表示してみます。</p>



<p>下のSQL文を実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT `チーム名`,SUM(`点数`) FROM `点数` GROUP BY `チーム名` HAVING SUM(`点数`) &gt; 1500;</code></pre></div>



<ul class="wp-block-list"></ul>



<h3 class="wp-block-heading">SQL文解説：havingとSum</h3>



<p>SELECT文で表示するカラムでチーム名と<strong><span class="swl-bg-color has-swl-deep-01-background-color">集約関数SUM</span></strong>を指定します。</p>



<p>FROMでテーブル名を指定します。</p>



<p>GROUP BY句でグルーピングするカラム「チーム名」を指定します。</p>



<p class="has-border -border02"><strong>Having句で条件の点数の合計が1500以上</strong>を指定します。</p>



<p>ここでHaving句を使用する時の注意点を思い出してください。</p>



<p><strong><span class="swl-marker mark_orange">GROUP BY句の後ろ</span></strong>に記述しています。また<span class="swl-marker mark_orange"><strong>Having句で集約関数を使用</strong>している</span>ので注意点はクリアしている事が分かると思います。</p>



<h3 class="wp-block-heading">SQL文実施：havingとSum</h3>



<p>では上記のSQL文を実行してみます。</p>


<div class="wp-block-image is-style-desktop">
<figure class="aligncenter size-full"><img decoding="async" width="152" height="70" src="https://sugublog.org/wp-content/uploads/2023/10/sql_having_sum.png" alt="SQLにてHaving句でSUMの結果を表示" class="wp-image-5625" srcset="https://sugublog.org/wp-content/uploads/2023/10/sql_having_sum.png 152w, https://sugublog.org/wp-content/uploads/2023/10/sql_having_sum-150x70.png 150w" sizes="(max-width: 152px) 100vw, 152px" /><figcaption class="wp-element-caption">SQLにてHaving句でSUMの結果</figcaption></figure>
</div>


<p>チーム名でグルーピングしてその合計値が表示されて1500以上のものが表示されています。</p>



<h2 class="wp-block-heading">SQLでhavingを使用してエラーが出る場合</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="792" src="https://sugublog.org/wp-content/uploads/2021/07/clash-1024x792.jpg" alt="エラー発生" class="wp-image-3586" srcset="https://sugublog.org/wp-content/uploads/2021/07/clash-1024x792.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/07/clash-300x232.jpg 300w, https://sugublog.org/wp-content/uploads/2021/07/clash-768x594.jpg 768w, https://sugublog.org/wp-content/uploads/2021/07/clash-1536x1187.jpg 1536w, https://sugublog.org/wp-content/uploads/2021/07/clash-scaled.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>では以下のSQL構文を実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT `チーム名`,SUM(`点数`) FROM `点数` GROUP BY `チーム名` HAVING `点数` &gt; 250;</code></pre></div>



<p>Having句で「点数」カラムを条件にしていますが、GROUP BY句で使用されていないのでエラーが出てしまいます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>#1054 - 列 &#39;点数&#39; は &#39;having clause&#39; にはありません。</code></pre></div>



<p>Having句で使用する時の注意点に気を付けながら使用してください。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでhavingの使い方を学ぶ。countなどを使用するのまとめ</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="620" src="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg" alt="SQLでhavingの使い方を学ぶ。countなどを使用するのまとめ" class="wp-image-4505" srcset="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/user1114-300x182.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/user1114-768x465.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/user1114.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><strong>SQLでHaving句の基本構文</strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT 集約関数 FROM テーブル名 GROUP BY カラム名 HAVING 集約関数;</code></pre></div>



<p>SQLでHaving句を使う時の<span class="swl-inline-color has-swl-deep-01-color">注意点</span>は以下となります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>HAVING句を使用する時の注意点</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>位置はGROUP BY句の後</li>



<li>Having句で使用できるものに制限あり</li>
</ul>
</div></div>



<p><strong><span class="swl-bg-color has-swl-deep-01-background-color">Having句で使用できるもの</span></strong>は以下となります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>Having関数で使用できる要素</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>定数</li>



<li>集約関数</li>



<li>GROUP BY句で指定したカラム</li>
</ul>
</div></div>



<p><span class="swl-marker mark_yellow">レコード単体に条件</span>を付けたい場合は<span class="swl-marker mark_yellow">WHERE</span>ですが集約したものは指定できません。<span class="swl-marker mark_orange">集約関数やグルーピングしたものに条件</span>を付けたいときは、<span class="swl-marker mark_orange">Having</span>句を使用して見て下さい。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-having-count/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【SQL基礎】exists句とnot exists句の使い方</title>
		<link>https://sugublog.org/sql-base-exists-and-not-exists/</link>
					<comments>https://sugublog.org/sql-base-exists-and-not-exists/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sat, 30 Sep 2023 22:21:01 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[exists]]></category>
		<category><![CDATA[not exists]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=5605</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/pixta_77773496_M-e1626536234619-1024x791.jpg" class="webfeedsFeaturedVisual" /></p>SQLで「exists」が出てきた事はありませんか？出てきてその動きが分かりにくく困った事はないでしょうか？ SQLでの「exists」は少し他のコマンドとは違いますのでここにまとめておきます。 exists句は奥が深い [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/pixta_77773496_M-e1626536234619-1024x791.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-inline-color has-swl-deep-01-color">SQLで「exists」</span></strong>が出てきた事はありませんか？出てきてその動きが分かりにくく困った事はないでしょうか？</p>



<p>SQLでの「exists」は少し他のコマンドとは違いますのでここにまとめておきます。</p>



<p>exists句は奥が深いので今回は基礎の部分だけにしておきます。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<p>実際に<span class="swl-marker mark_orange"><strong>「exists句」や否定形の「not exists句」を使用して</strong>動きも見ていくのでわかりやすく</span>なっています。</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLで「exists」と「not exists」の使い方</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="444" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-7-1024x444.jpg" alt="データベース" class="wp-image-4503" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-7-1024x444.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-7-300x130.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-7-768x333.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-7.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQLで「exists」と「not exists」の基礎構文</h3>



<p><span class="swl-bg-color has-swl-deep-01-background-color">SQLで「exists句」を使用する時の基礎構文</span>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where exists (サブクエリ); </code></pre></div>



<p>SQLで「not exists句」を使用する時の基礎構文はexistsの前に「not」を入れるだけです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where not exists (サブクエリ); </code></pre></div>



<p class="is-style-icon_book">サブクエリとは簡単に言うとSQLの中でSQL構文を使用する事。select構文の中にselect構文が入っているSQLを見た事があると思いますが、selectの中のselectがサブクエリになります。</p>



<h3 class="wp-block-heading">SQLでの「exists」と「not exists」の説明</h3>



<p>existsの特徴１は<span class="swl-bg-color has-swl-deep-02-background-color">引数が１つ</span>でサブクエリになるという事です。</p>



<p>existsの特徴２はwhereの<span class="swl-bg-color has-swl-deep-02-background-color">カラム（existsの左側）を指定しない</span>事です。</p>



<p>カラムを指定しない理由はサブクエリで求めたレコードがある（TRUE）かない（FALSE）かの2択だからです。だからカラムを指定しない</p>



<p>では実際にSQLで「exists」と「not exists」を使用してみましょう！</p>



<h2 class="wp-block-heading">SQLで「exists」と「not exists」を使ってみる</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="682" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-1024x682.jpg" alt="データベース" class="wp-image-4502" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-1024x682.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-768x511.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQL実施環境解説</h3>



<p>実施する際の環境を説明します。</p>



<p>以下の2つのテーブルがあるとします。</p>



<div class="swell-block-columns"><div class="swell-block-columns__inner">
<div class="swell-block-column swl-has-mb--s">
<figure class="wp-block-image size-full"><img decoding="async" width="310" height="318" src="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table.png" alt="SQLのテーブル" class="wp-image-5597" srcset="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table.png 310w, https://sugublog.org/wp-content/uploads/2023/10/sql_base_table-292x300.png 292w" sizes="(max-width: 310px) 100vw, 310px" /><figcaption class="wp-element-caption">SQLのテーブル_人員</figcaption></figure>
</div>



<div class="swell-block-column swl-has-mb--s">
<p></p>



<figure class="wp-block-image size-full"><img decoding="async" width="173" height="301" src="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_tensuhyou.png" alt="SQLのテーブル" class="wp-image-5610"/><figcaption class="wp-element-caption">SQLのテーブル_点数表</figcaption></figure>
</div>
</div></div>



<p>テニスを行った人の氏名、名前、年齢を表示してみます。</p>



<h3 class="wp-block-heading">SQLで「exists」を使ってみる</h3>



<p>以下のSQLコマンドを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT
    `氏名`,
    `名前`,
    `年齢`
FROM
    `人員` j
WHERE
    EXISTS(
    SELECT
        1
    FROM
        `点数表` t
    WHERE
        j.`番号` = t.`番号` AND t.`競技id` = 3
);</code></pre></div>



<h3 class="wp-block-heading">SQL文の説明</h3>



<p>SELECTで表示するものを記述しています。</p>



<p>FROMで表示するテーブルを記述しています。</p>



<p><strong><span class="swl-marker mark_orange">WHEREで「EXISTS」を指定</span></strong>しています。その後にサブクエリをいれています。</p>



<p>サブクエリのSELECTには「1」を記述していますが「*」でも良いです。</p>



<p class="is-style-icon_pen">「1」に特に意味はありません</p>



<p>サブクエリのFROMでサブクエリするテーブルを記述しています。</p>



<p>サブクエリのWHEREで条件を記述しています。</p>



<p>サブクエリでは<span class="swl-bg-color has-swl-deep-01-background-color">相関サブクエリ</span>をいれますので、<span class="swl-marker mark_orange">表示するテーブルの「番号」と検索するテーブルの「番号」をイコールにしてテーブルをつなげています。</span></p>



<p>ANDで繋げて条件の競技名テニスに対応している「競技id」が3のものを指定しています。</p>



<p class="has-border -border02">これで「競技id」が3になっている番号のレコードが真（TRUE）になり表示されます。</p>



<h3 class="wp-block-heading">SQLで「exists」を実施した結果</h3>



<p>では先程のSQL文を実施してみます。</p>


<div class="wp-block-image is-style-desktop">
<figure class="aligncenter size-full"><img decoding="async" width="125" height="122" src="https://sugublog.org/wp-content/uploads/2023/10/sql_exists.png" alt="SQLでexists句を使用した結果" class="wp-image-5612"/><figcaption class="wp-element-caption">SQLでexists句を使用した結果</figcaption></figure>
</div>


<p>テニスをしている4人が表示されました。</p>



<h3 class="wp-block-heading">SQLで「not exists」を使ってみる</h3>



<p>では今度は<strong><span class="swl-bg-color has-swl-deep-02-background-color">「not exists」を実施</span></strong>します。先程のSQL文の「exists」を「not exists」に変更したものが以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT
    `氏名`,
    `名前`,
    `年齢`
FROM
    `人員` j
WHERE NOT
    EXISTS(
    SELECT
        1
    FROM
        `点数表` t
    WHERE
        j.`番号` = t.`番号` AND t.`競技id` = 3
);</code></pre></div>



<p>SQL構文の説明は「exists」と同じなので省略します。</p>



<h3 class="wp-block-heading">SQLで「not exists」を実施した結果</h3>



<p>では先程のSQL文を実行します。</p>


<div class="wp-block-image is-style-desktop">
<figure class="aligncenter size-full"><img decoding="async" width="120" height="217" src="https://sugublog.org/wp-content/uploads/2023/10/sql_not_exists.png" alt="SQLでnot_exists句を使用した結果" class="wp-image-5613"/><figcaption class="wp-element-caption">SQLでnot_exists句を使用した結果</figcaption></figure>
</div>


<p>テニスをしている人以外が表示されました。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLで「exists」は「in」で代用可能</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/06/pixta_75493348_M-min-1024x682.jpg" alt="SQLで「exists」は「in」で代用可能" class="wp-image-2884"/></figure>
</div>


<p>実は<span class="swl-marker mark_orange"><strong>「exists句」と「not exists句」</strong>は「in句」でも対応可能</span>です。</p>



<p class="is-style-icon_announce">SQL文でin句を使用する基本は、以下の記事を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">スグブログ</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/06/pixta_75493348_M-min-e1623599810234.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-in/" target="_blank" rel="noopener noreferrer">【SQL基礎】in句を使用して複数条件を綺麗に書く｜orで失敗する人へ | in句の上限などもご紹介！</a>
						<span class="p-blogCard__excerpt">SQLでin句を使用して条件を絞る事が可能です。 SQLで複数の条件を絞りたい時に「and」や「or」を使用すると思います。 しかし「or」を使用すると失敗したり、条件の記述が&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>「in句」を使用して同じことを行ってみます。以下のSQL構文を見て下さい。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT
    `氏名`,
    `名前`,
    `年齢`
FROM
    `人員` j
WHERE
    `番号` IN(
    SELECT
        `番号`
    FROM
        `点数表` t
    WHERE
        t.`競技id` = 3
);</code></pre></div>



<p><strong><span class="swl-marker mark_orange">「exists」を使用したSQL文からの変更点</span></strong>としては以下があります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>existsからinにする時の変更点</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>「exists」を「in」に変更する</li>



<li>「in」の前にカラムを記入する</li>



<li>WHERE以降は競技がテニスの「競技id」が3のものを指定</li>
</ul>
</div></div>



<p>ではexistsからinに変更したSQL文を実行してみます。</p>



<figure class="wp-block-image size-full is-style-desktop"><img decoding="async" width="125" height="122" src="https://sugublog.org/wp-content/uploads/2023/10/sql_exists.png" alt="SQLでexists句を使用した結果" class="wp-image-5612"/><figcaption class="wp-element-caption">SQLでin句を使用した結果</figcaption></figure>



<p>「exists」の時と同じ結果になりました。</p>



<p>では<strong><span class="swl-marker mark_orange">「not exists」も「not in」に変更</span></strong>してみます。変更したSQL文は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT
    `氏名`,
    `名前`,
    `年齢`
FROM
    `人員` j
WHERE
    `番号` NOT IN(
    SELECT
        `番号`
    FROM
        `点数表` t
    WHERE
        t.`競技id` = 3
);</code></pre></div>



<p>ではこのSQL文を実行してみます。</p>



<figure class="wp-block-image size-full is-style-desktop"><img decoding="async" width="120" height="217" src="https://sugublog.org/wp-content/uploads/2023/10/sql_not_exists.png" alt="SQLでnot_exists句を使用した結果" class="wp-image-5613"/><figcaption class="wp-element-caption">SQLでnot_in句を使用した結果</figcaption></figure>



<p>こちらも「not exists」と同じ結果となりました。</p>



<h2 class="wp-block-heading">SQLでexistsとinではどちらを使う</h2>



<p class="is-style-big_icon_hatena">では<strong>SQLでは「exists」と「in」</strong>どちらを使用した方が良いのでしょうか？</p>



<p><span class="swl-marker mark_orange">回答は<strong>MySQLではexists</strong>を使う、<strong>oracleでは同じだけどexists</strong>使う</span></p>



<p>理由は処理速度が違うからです。「exists」MySQLの場合は処理がはやい</p>



<p>oracleは処理速度は同じと書いているのでどちらでも良いですが、MySQLと合わせてexistsを使用するにしました。</p>



<p>なので<strong>「exists」と「in」では</strong><span class="swl-bg-color has-swl-deep-01-background-color"><strong>「exists」</strong>を使用した方が良い</span>となりました。</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLで「exists」と「not exists」の使い方のまとめ</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="560" src="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-1024x560.jpg" alt="SQLで「exists」と「not exists」の使い方のまとめ" class="wp-image-4561" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-1024x560.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-300x164.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-768x420.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQLで「exists」と「not exists」の基礎構文</h3>



<p>SQLで「exists句」を使用する時の基礎構文は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where exists (サブクエリ); </code></pre></div>



<p>SQLで「not exists句」を使用する時の基礎構文は、existsの前にnotを入れるだけです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where not exists (サブクエリ); </code></pre></div>



<p>「in」でも対応可能ですが「exists」と「in」では「exists」を使用した方が良い。</p>



<p>今回使用したexistsを利用したSQL例文は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT
    `氏名`,
    `名前`,
    `年齢`
FROM
    `人員` j
WHERE
    EXISTS(
    SELECT
        1
    FROM
        `点数表` t
    WHERE
        j.`番号` = t.`番号` AND t.`競技id` = 3
);</code></pre></div>



<p>今回はSQLでexistsを使用してみました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-exists-and-not-exists/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【SQL基礎】in句を使用して複数条件を綺麗に書く｜orで失敗する人へ</title>
		<link>https://sugublog.org/sql-base-in/</link>
					<comments>https://sugublog.org/sql-base-in/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sat, 30 Sep 2023 18:12:37 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[in句]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=5595</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/06/pixta_75493348_M-min-e1623599810234.jpg" class="webfeedsFeaturedVisual" /></p>SQLでin句を使用して条件を絞る事が可能です。 SQLで複数の条件を絞りたい時に「and」や「or」を使用すると思います。 しかし「or」を使用すると失敗したり、条件の記述が長くなってしまって綺麗ではない。と言った悩み [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/06/pixta_75493348_M-min-e1623599810234.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-inline-color has-swl-deep-01-color">SQLでin句</span></strong>を使用して条件を絞る事が可能です。</p>



<p>SQLで複数の条件を絞りたい時に「and」や「or」を使用すると思います。</p>



<p class="is-style-icon_bad">しかし「or」を使用すると失敗したり、<span class="swl-marker mark_yellow">条件の記述が長くなってしまって綺麗ではない</span>。と言った悩みに当たった事もあると思います。</p>



<p>そこで今回は<strong>プログラミングを普段使用している筆者</strong>が、<strong><span class="swl-marker mark_orange">SQLで条件を絞る時にオススメの「in句」</span></strong>をご紹介します。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<p class="has-border -border02"><span class="swl-marker mark_blue"><strong>SQL</strong>で条件を絞りたいけど<strong>「or句」で失敗</strong>してしまう</span>、または<span class="swl-marker mark_orange">もっと条件を<strong>スマートに表示</strong>したい</span>という方は「in句」を使用すれば解決しますよ。</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLで「in句」を使用して複数条件を綺麗に書く</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="944" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-1-1024x944.jpg" alt="SQLで「in句」を使用して複数条件を綺麗に書く" class="wp-image-4804" srcset="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-1-1024x944.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-1-300x277.jpg 300w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-1-768x708.jpg 768w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQLで「in句」を使用する基礎構文</h3>



<p><strong>SQLで「in句」</strong>を使用する時の基礎構文は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where カラム名 in (条件1,条件2,条件3,・・・);</code></pre></div>



<h3 class="wp-block-heading">SQLで「in句」を使用するメリット</h3>



<p>SQLで複数の条件を「in句」で使用すれば、<span class="swl-bg-color has-swl-deep-02-background-color">「カラム名」を一回しか記述しない</span>のでSQL構文が綺麗になります。</p>



<p>またSQLでorを使用して思い通りにいかない場合も、<strong><span class="swl-bg-color has-swl-deep-01-background-color">「in句」を使用すれば上手くSQLが動く</span></strong>こともあります。</p>



<h2 class="wp-block-heading">SQLで「in句」を実際使用する</h2>



<h3 class="wp-block-heading">SQLで「in句」を実践する</h3>



<p>では<strong><span class="swl-marker mark_orange">実際にSQLで「in句」を使用</span></strong>してみましょう！</p>



<p>下のようなテーブルがあったとします。</p>



<figure class="wp-block-image size-full is-style-border"><img decoding="async" width="310" height="318" src="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table.png" alt="SQLのテーブル" class="wp-image-5597" srcset="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table.png 310w, https://sugublog.org/wp-content/uploads/2023/10/sql_base_table-292x300.png 292w" sizes="(max-width: 310px) 100vw, 310px" /><figcaption class="wp-element-caption">データベースのテーブル例</figcaption></figure>



<p>年齢が23歳、55歳、37歳の氏名と名前を取り出してみましょう。</p>



<p>「in句」を用いたSQLは以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select `氏名`,`名前`,`年齢` from `人員` where `年齢` in (23,55,37);</code></pre></div>



<p>このSQLを実行してみます。<span class="swl-bg-color has-swl-deep-02-background-color">実行結果</span>は以下となりました。</p>



<figure class="wp-block-image size-full is-style-border"><img decoding="async" width="123" height="122" src="https://sugublog.org/wp-content/uploads/2023/10/sql_in_table.png" alt="SQLでin句を使用した結果" class="wp-image-5600"/><figcaption class="wp-element-caption">SQLでin句を使用した結果</figcaption></figure>



<p>思い通りの結果になっています。</p>



<h3 class="wp-block-heading">「in句」と「or句」を比較してみる</h3>



<p>ではこの<strong><span class="swl-bg-color has-swl-deep-01-background-color">SQL構文を「or句」</span></strong>で表すにはどうすれば良いでしょうか？</p>



<p>先程の結果となるSQL構文は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select `氏名`,`名前`,`年齢` from `人員` where `年齢` = 23 or `年齢` = 55 or `年齢` = 37;</code></pre></div>



<p>条件３つでも<strong><span class="swl-marker mark_yellow">かなり長いSQL構文</span></strong>になってますね。また<span class="swl-marker mark_yellow">条件の「年齢」を3回も記述</span>しています。</p>



<p><strong>SQLのin句と比べてor句では</strong>条件が増える度に条件が長くなり、条件分「年齢」を記述しないといけません。</p>



<p class="has-border -border02">見にくいですし記述するのも面倒ですので、SQLで複数条件を使用したい場合は「in句」を使用する方がメリットがあります。</p>



<h2 class="wp-block-heading">SQLで「in句」の条件の上限について</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="509" src="https://sugublog.org/wp-content/uploads/2021/08/school_08-5-1024x509.jpg" alt="SQLで「in句」の条件の上限" class="wp-image-4091" srcset="https://sugublog.org/wp-content/uploads/2021/08/school_08-5-1024x509.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/school_08-5-300x149.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/school_08-5-768x382.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/school_08-5.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQLで「in句」を使用する時の上限をまとめる</h3>



<p><strong><span class="swl-marker mark_orange">SQLで「in句」を使用する時の上限</span></strong>はあるのでしょうか。</p>



<figure class="wp-block-table td_to_th_"><table class="has-fixed-layout"><thead><tr><th>データベースの種類</th><th>SQLで「in句」の上限数</th></tr></thead><tbody><tr><td>mySQL</td><td>上限サイズまで</td></tr><tr><td>PostgreSQL</td><td>2の64乗、一つの条件が2kバイトまで</td></tr><tr><td>Oracle</td><td>1000個</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのin句での上限まとめ表</figcaption></figure>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h3 class="wp-block-heading">mySQLで「in句」の上限を調べるコマンド</h3>



<p>MySQLでの上限サイズは以下のSQLコマンドで確認する事が出来ます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>show variables like &#39;max_allowed_packet&#39;;</code></pre></div>



<p>MySQLでの上限サイズを確認する為に、上記のコマンドを実行します。</p>



<figure class="wp-block-table td_to_th_"><table class="has-fixed-layout"><tbody><tr><td>Variable_name</td><td>Value</td></tr><tr><td>max_allowed_packet</td><td>1048576</td></tr></tbody></table><figcaption class="wp-element-caption">mySQLのin句での上限</figcaption></figure>



<p>MySQLでの上限サイズは「1048576バイト」になります。</p>



<h2 class="wp-block-heading">SQLで「in句」の否定系を書く</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/07/pixta_77773496_M-1024x791.jpg" alt="SQLで「in句」の否定系" class="wp-image-3635"/><figcaption class="wp-element-caption">Business person stand on road fork with hard and easy directions. Choice way isometric</figcaption></figure>
</div>


<h3 class="wp-block-heading">SQLの「in句」での否定形構文</h3>



<p>では<strong><span class="swl-bg-color has-swl-deep-02-background-color">SQLの「in句」で否定形</span></strong>を書くにはどうすればよいでしょうか？</p>



<p>答えは以下の構文になります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where カラム名 not in (条件1,条件2,条件3,・・・);</code></pre></div>



<p>「in」の前に「not」を記述するだけです。</p>



<h3 class="wp-block-heading">SQLの「in句」否定形を実行してみる</h3>



<p>では<span class="swl-bg-color has-swl-deep-02-background-color">実際に否定形を実行</span>してみましょう！先程のDBに対して以下のSQLコマンドを実行します！</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select `氏名`,`名前`,`年齢` from `人員` where `年齢` not in (23,55,37);</code></pre></div>



<p>結果は以下となりました。</p>



<figure class="wp-block-image size-full is-style-border"><img decoding="async" width="116" height="221" src="https://sugublog.org/wp-content/uploads/2023/10/sql_not_in_table.png" alt="SQLでnot_in句を使用した結果" class="wp-image-5602"/><figcaption class="wp-element-caption">SQLでnot_in句を使用した結果</figcaption></figure>



<p>先程のテーブルで「in句」を用いて出した人物以外の人が抽出されているので成功です。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLで「in句」を使用して複数条件を綺麗に書くまとめ</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/06/pixta_75493348_M-min-1024x682.jpg" alt="SQLで「in句」を使用して複数条件を綺麗に書くまとめ" class="wp-image-2884"/></figure>
</div>


<p>今回のまとめです。</p>



<h3 class="wp-block-heading">SQLで「in句」を使用する基礎構文</h3>



<p><strong><span class="swl-bg-color has-swl-deep-01-background-color">SQLで「in句」を使用する時の基礎構文</span></strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where カラム名 in (条件1,条件2,条件3,・・・);</code></pre></div>



<h3 class="wp-block-heading">SQLの「in句」での否定形構文</h3>



<p><strong><span class="swl-bg-color has-swl-deep-02-background-color">SQLの「in句」否定形の基礎構文</span></strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select * from テーブル名 where カラム名 not in (条件1,条件2,条件3,・・・);</code></pre></div>



<h3 class="wp-block-heading">SQLで「in句」を使用する時の上限をまとめる</h3>



<p>SQLで「in句」を使用する時の<span class="swl-marker mark_orange">上限</span>はあるのでしょうか。</p>



<figure class="wp-block-table td_to_th_"><table class="has-fixed-layout"><thead><tr><th>データベースの種類</th><th>SQLで「in句」の上限数</th></tr></thead><tbody><tr><td>mySQL</td><td>上限サイズまで</td></tr><tr><td>PostgreSQL</td><td>2の64乗、一つの条件が2kバイトまで</td></tr><tr><td>Oracle</td><td>1000個</td></tr></tbody></table><figcaption class="wp-element-caption">SQLのin句での上限まとめ表</figcaption></figure>



<p><strong><span class="swl-marker mark_orange">SQLでin句を使用すればorより完結に書ける</span></strong>ことが分かったと思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-in/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【PHP】MYSQLでテーブルを作成する！オプション等ご紹介</title>
		<link>https://sugublog.org/php-base-mysql-create-table/</link>
					<comments>https://sugublog.org/php-base-mysql-create-table/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Wed, 03 Nov 2021 00:23:51 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=4320</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-4-1024x678.jpg" class="webfeedsFeaturedVisual" /></p>PHPでデータベースを作成して、テーブルを作成する事がよくあります。オプション等もあり順番に番号を割り振ったり、重複はエラーにしたり出来ます。 データベースは「MYSQL」を使用して、テーブルを作成してみましょう。 また [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-4-1024x678.jpg" class="webfeedsFeaturedVisual" /></p>
<p>PHPでデータベースを作成して、テーブルを作成する事がよくあります。オプション等もあり順番に番号を割り振ったり、重複はエラーにしたり出来ます。</p>



<p>データベースは「MYSQL」を使用して、テーブルを作成してみましょう。</p>



<p>また制御付きのカラムも作成して見ましょう！</p>



<p class="is-style-balloon_box">この記事は5分で読めます。そして下記が理解できます。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span>この記事で理解出来る事</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>データベースの中のテーブルを作成するMYSQLの構文</li>



<li>テーブル作成する時のオプションがわかる</li>



<li>PHPで実際にテーブル作成</li>
</ul>
</div></div>


<div class="p-blogParts post_content" data-partsID="5226">
<p>プログラミングにオススメのマウス</p>



<!-- START MoshimoAffiliateEasyLink --><script type="text/javascript">(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;b[a]=b[a]||function(){arguments.currentScript=c.currentScript||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};c.getElementById(a)||(d=c.createElement(f),d.src=g,d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");msmaflink({"n":"ロジクール ワイヤレスマウス トラックボール 無線 M575S Bluetooth Unifying 5ボタン トラックボールマウス ワイヤレス マウス windows mac iPad 電池寿命最大24ケ月 M575 ブラック 国内正規品","b":"Logicool(ロジクール)","t":"910-005877","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/31TYOVsxQTL._SL500_.jpg","\/515oI2uHsFL._SL500_.jpg","\/41CYXNwFrBL._SL500_.jpg","\/513aEl7UqxL._SL500_.jpg","\/41vH6BC5HyL._SL500_.jpg","\/41rQtCWZyjL._SL500_.jpg","\/51XZhfQM7QL._SL500_.jpg","\/41cqXexnCgL._SL500_.jpg","\/41Xk3angwNL._SL500_.jpg","\/310CaQSNWNL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B08L4ZR79Q","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/%E3%83%AD%E3%82%B8%E3%82%AF%E3%83%BC%E3%83%AB%20%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E3%83%9E%E3%82%A6%E3%82%B9%20%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%83%AB%20%E7%84%A1%E7%B7%9A%20M575S%20Bluetooth%20Unifying%205%E3%83%9C%E3%82%BF%E3%83%B3%20%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%A6%E3%82%B9%20%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%20%E3%83%9E%E3%82%A6%E3%82%B9%20windows%20mac%20iPad%20%E9%9B%BB%E6%B1%A0%E5%AF%BF%E5%91%BD%E6%9C%80%E5%A4%A724%E3%82%B1%E6%9C%88%20M575%20%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%20%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E5%93%81\/","a_id":2515916,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":1},{"id":2,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=%E3%83%AD%E3%82%B8%E3%82%AF%E3%83%BC%E3%83%AB%20%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E3%83%9E%E3%82%A6%E3%82%B9%20%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%83%AB%20%E7%84%A1%E7%B7%9A%20M575S%20Bluetooth%20Unifying%205%E3%83%9C%E3%82%BF%E3%83%B3%20%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%A6%E3%82%B9%20%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%20%E3%83%9E%E3%82%A6%E3%82%B9%20windows%20mac%20iPad%20%E9%9B%BB%E6%B1%A0%E5%AF%BF%E5%91%BD%E6%9C%80%E5%A4%A724%E3%82%B1%E6%9C%88%20M575%20%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%20%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E5%93%81","a_id":2518881,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":2},{"id":3,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/B08L4ZR79Q","a_id":2518876,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":3}],"eid":"JPkLJ","s":"s"});</script><div id="msmaflink-JPkLJ">リンク</div><!-- MoshimoAffiliateEasyLink END -->



<p>プログラミングにオススメのキーボード</p>



<!-- START MoshimoAffiliateEasyLink --><script type="text/javascript">(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;b[a]=b[a]||function(){arguments.currentScript=c.currentScript||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};c.getElementById(a)||(d=c.createElement(f),d.src=g,d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");msmaflink({"n":"Logicool G ロジクール G ゲーミングキーボード 有線 G213r パームレスト 日本語配列 独自のMech-domeスイッチ キーボード 静音 LIGHTSYNC RGB 国内正規品 【 ファイナルファンタジーXIV 推奨周辺機器 】","b":"Logicool G(ロジクール G)","t":"G213r","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/41aK+GVrl0L._SL500_.jpg","\/51-y6DvrX6L._SL500_.jpg","\/417XXAl-AoL._SL500_.jpg","\/51TV9U1gljL._SL500_.jpg","\/41fWMJQvU6L._SL500_.jpg","\/51yObs5CXXL._SL500_.jpg","\/41QQujtNDkL._SL500_.jpg","\/31DjNMKHpsL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B09248N9XK","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/Logicool%20G%20%E3%83%AD%E3%82%B8%E3%82%AF%E3%83%BC%E3%83%AB%20G%20%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%20%E6%9C%89%E7%B7%9A%20G213r%20%E3%83%91%E3%83%BC%E3%83%A0%E3%83%AC%E3%82%B9%E3%83%88%20%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%85%8D%E5%88%97%20%E7%8B%AC%E8%87%AA%E3%81%AEMech-dome%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%20%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%20%E9%9D%99%E9%9F%B3%20LIGHTSYNC%20RGB%20%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E5%93%81%20%E3%80%90%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%AB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%BF%E3%82%B8%E3%83%BCXIV%20%E6%8E%A8%E5%A5%A8%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8%20%E3%80%91\/","a_id":2515916,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":1},{"id":2,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=Logicool%20G%20%E3%83%AD%E3%82%B8%E3%82%AF%E3%83%BC%E3%83%AB%20G%20%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%20%E6%9C%89%E7%B7%9A%20G213r%20%E3%83%91%E3%83%BC%E3%83%A0%E3%83%AC%E3%82%B9%E3%83%88%20%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%85%8D%E5%88%97%20%E7%8B%AC%E8%87%AA%E3%81%AEMech-dome%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%20%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%20%E9%9D%99%E9%9F%B3%20LIGHTSYNC%20RGB%20%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E5%93%81%20%E3%80%90%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%AB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%BF%E3%82%B8%E3%83%BCXIV%20%E6%8E%A8%E5%A5%A8%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8%20%E3%80%91","a_id":2518881,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":2},{"id":3,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/B09248N9XK","a_id":2518876,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":3}],"eid":"E6bQP","s":"s"});</script><div id="msmaflink-E6bQP">リンク</div><!-- MoshimoAffiliateEasyLink END -->
</div>


<h2 class="wp-block-heading">PHP基礎・MYSQLでテーブルを作成する</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-1-1024x576.jpg" alt="テーブル" class="wp-image-4330" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-1-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-1-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-1-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">テーブル作成基礎構文</h3>



<p>データベースは作成しているものとして、該当DBにテーブルを作成する構文はこうなります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>create table テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)</code></pre></div>



<p>create tableコマンドの後にテーブル名を入れます。その後は実際に作成するカラム名を順に入力します。</p>



<p>スペースを空けて型名を入力します。型名は沢山ありますが以下の3つがよく使用されます。</p>



<h3 class="wp-block-heading">型名一覧</h3>



<figure class="wp-block-table is-style-regular td_to_th_"><table class="has-fixed-layout"><thead><tr><th> 型名 </th><th> 説明 </th></tr></thead><tbody><tr><td>INT</td><td>数字 が入る </td></tr><tr><td>VARCHAR(数字)</td><td>文字列 が入る ※数字はバイト数</td></tr><tr><td>BOOLEAN</td><td>真か偽が入る</td></tr></tbody></table><figcaption class="wp-element-caption">create tableで使用する型名一覧</figcaption></figure>



<p class="is-style-icon_pen">※VARCHARの後の数字は何バイトまで入るかの指定</p>



<p>大きすぎると容量を余分にとる事になります。小さすぎると入らない可能性があります。程よい数字を入れましょう。</p>



<p class="is-style-icon_book">例：半角で1バイト、全角は2バイト文字なので全角5文字半角2文字までなら7にすればよいです。</p>



<h3 class="wp-block-heading">カラムを複数追加する</h3>



<p>その後に「(」を入れてカラムを追加していきます。複数追加したい場合は「,」を使用して追加していきましょう。</p>



<p>複数のカラムを持ったテーブルが作成されるはずです。</p>



<p>これで簡単なテーブルが作成出来ました。次はテーブルを作成する上で、必要なオプションやエラー回避のオプションを追加します。</p>



<h2 class="wp-block-heading">テーブルが無ければ作成したい</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="586" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-1024x586.jpg" alt="テーブル" class="wp-image-4332" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-1024x586.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-300x172.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-768x439.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3.jpg 1191w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>テーブルが既にある場合は作成しない、ない場合だけ作成したい</p>



<p>なんて事が出来れば更にやりたい事が広がります。</p>



<h3 class="wp-block-heading">テーブルが無ければ作成するオプション</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>create table if not exists テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)</code></pre></div>



<p>create tableの後に「if not exists」を入力します。これでテーブルがあれば何もしない、なければ作成する事が可能です。</p>



<p class="is-style-big_icon_caution">※これがないとテーブルが既に存在していれば、エラーになります。</p>



<p>よく使用しますので、覚えておくと良いでしょう。</p>



<h2 class="wp-block-heading">数字を増やしていく</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-2-1024x576.jpg" alt="テーブル" class="wp-image-4331" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-2-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-2-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-2-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-2.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">オプション：AUTO_INCREMENT</h3>



<p>テーブルのカラムに行を追加していきたい場合、数字を勝手に増やしていきたい場合があります。</p>



<p>自動で番号を振りたい場合などに使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>create table if not exists テーブル名 (id INT AUTO_INCREMENT,カラム名2 型名2,・・・)</code></pre></div>



<p>カラムにデータが追加される度に、数字が自動で割り振られるテーブルを作成する事が可能です。</p>



<p>登録するデータにidを振り、id管理する事が出来ます。</p>



<h2 class="wp-block-heading">空白は絶対避けたい</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="575" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-8-1024x575.jpg" alt="テーブル" class="wp-image-4329" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-8-1024x575.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-8-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-8-768x431.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-8.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">オプション：NOT NULL</h3>



<p>カラムはデータによって空白の場合があります。しかしそのデータがないとエラーになるシステムでは絶対データを入れてもらいエラーを回避したいです。</p>



<p>名前などは絶対に記入してほしいですよね。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>create table if not exists テーブル名 (id INT AUTO_INCREMENT,name varchar(10) NOT NULL,カラム名3 型名3・・・)</code></pre></div>



<p>nameの型名の後に「NOT NULL」を入れています。これでnameのデータなしに追加しようとしたものはエラーが出ます。</p>



<h2 class="wp-block-heading">重複のものは避けたい</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-6-1024x683.jpg" alt="唯一" class="wp-image-4335" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-6-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-6-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-6-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-6.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">オプション：UNIQUE</h3>



<p>同じデータは避けたい場合もあります。名前などは重複しては判別つかないシステムなどある場合はこのオプションを使用してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>create table if not exists テーブル名 (id INT AUTO_INCREMENT,name varchar(10) NOT NULL UNIQUE,カラム名3 型名3・・・)</code></pre></div>



<p>UNIQUEオプションを使用するだけで、重複するカラムのデータを挿入しようとした場合にエラーではじいてくれます。</p>



<p class="is-style-icon_pen">ちなみにオプションを複数使用する場合は、上記のようにスペースを入れて追加していけば大丈夫です。</p>



<h2 class="wp-block-heading">PHPでデータベースにテーブルを作成する場合</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-5-1024x576.jpg" alt="テーブル" class="wp-image-4334" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-5-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-5-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-5-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-5.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>MYSQLの構文は理解していただけたと思います。</p>



<p>では実際PHPでテーブルを作成します。</p>



<h3 class="wp-block-heading">DBにアクセスするインスタンスを作成</h3>



<p>まずはデータベースにアクセスするインスタンスを作成し、「db」という変数に格納します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>try{
 $DB_DATABASE = &#39;mydatabase&#39;;
 $DB_USERNAME = &#39;root&#39;;
 $DB_PASSWORD = &#39;&#39;;
 $DB_OPTION = &#39;charset=utf8&#39;;
 $PDO_DSN = &quot;mysql:host=localhost;dbname=&quot; . $DB_DATABASE . &quot;;&quot; . $DB_OPTION;
 $db = new PDO($PDO_DSN, $DB_USERNAME, $DB_PASSWORD,
 [   PDO::ATTR_ERRMODE =&gt; PDO::ERRMODE_EXCEPTION,
     PDO::ATTR_DEFAULT_FETCH_MODE =&gt; PDO::FETCH_ASSOC
 ]);
 echo &#39;DB接続成功&#39;;
} catch(PDOException $e){
 echo &#39;DB接続失敗&#39;. $e-&gt;getMessage();
 exit();
};</code></pre></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-9330904718533231" data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<ul class="wp-block-list">
<li>「mydatabase」というデータベースを作成している事にします。</li>



<li>データベースのログインIDが「root」とします。</li>



<li>データベースのログインパスが「」（無し）とします。</li>



<li>例外処理でDBがなければエラーを出すようにしています。</li>
</ul>



<p class="is-style-balloon_box">詳しくは以下の「DBにアクセスする時の構文。例外処理あり」の記事を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-6-300x204.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/php-base-dbaccess/">【php基礎】PDOでDBにアクセスする時の構文とは？例外処理あり</a>
						<span class="p-blogCard__excerpt">phpでDBを使用できると、サービスの幅がとてつもなく広がります。今回はphpでDBと連携をとる時の基礎をやっていきます。 今回行うDBへ連携する時の項目は下記です。 DB&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">DBにテーブルを作成する</h3>



<p>作成したインスタンスの変数「$db」を使用して、テーブルを作成します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>$db-&gt;query(&quot;create table if not exists テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)</code></pre></div>



<p class="is-style-balloon_box">queryでDBにリクエストを送る事が可能です。詳しくは以下の「prepareとquery」の記事を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-4-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/php-base-prepare-and-query/">【PHP基礎】PDOのprepareとqueryでSQL文を変数に格納する</a>
						<span class="p-blogCard__excerpt">PHPでprepareやqueryを使用したいけど、よくわかりません。プレースフォルダーが上手くいきません。 このような悩みも解決します。実例をつけながら丁寧に解説します。 &#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>これでDBにテーブルを作成する事が可能です。オプションを駆使して自分の思い通りのテーブルを作成してください。</p>



<h2 class="wp-block-heading">【PHP】MYSQLでテーブルを作成する！オプション等ご紹介のまとめ</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1-1024x576.jpg" alt="テーブル" class="wp-image-4249" srcset="https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>テーブル作成する時の基礎構文は以下でした。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>create table テーブル名 (カラム名1 型名1,カラム名2 型名2,・・・)</code></pre></div>



<p>テーブルが存在していない場合のみ作成するのが「if not exists」でした。</p>



<p>数字を自動的に増やしていきたい場合は「AUTO_INCREMENT」でした。</p>



<p>空白を避けたい場合は「NOT NULL」でした。</p>



<p>重複を避けたい場合は「UNIQUE」でした。</p>



<p>PHPで実際行う時はDBのインスタンスを作成し、queryメソッドでMYSQL構文を送る事で可能。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/php-base-mysql-create-table/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【SQL基礎】データベースのカラムの値を初期化したい場合</title>
		<link>https://sugublog.org/sql-base-initialize-column-values/</link>
					<comments>https://sugublog.org/sql-base-initialize-column-values/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sat, 09 Oct 2021 17:35:36 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=4244</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>PHPでデータベースを操作する事はよくあります。 その時に必要になってくるのがメソッドです。 そのメソッドの中でよく使用するのが、4大命令文というものです。 今回はこのメソッドの一つを使用して、DBのカラム全体を初期化す [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>PHPでデータベースを操作する事はよくあります。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-5-300x166.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/php-base-db-control/">【php基礎】DBの操作！データベースの値を取得して表示する方法</a>
						<span class="p-blogCard__excerpt">phpでDBを操作出来たら、やれる事が大幅に広がります。更にコードが簡素化できて綺麗になります。わかりやすくもなりますので是非phpでDBを操作できる様になりましょう&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>その時に必要になってくるのがメソッドです。</p>



<p>そのメソッドの中でよく使用するのが、4大命令文というものです。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-2-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-4major-commands/">【SQL基礎】4大命令文一覧！insert、update、select、deleteについて</a>
						<span class="p-blogCard__excerpt">SQLでよく使用される命令文があります。SQLの4大命令文です。 SQLでデータベースを操作する時に良く使用されます。しっかりと基礎構文を抑えて、良いサービスを構築しま&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p class="has-border -border02">今回はこのメソッドの一つを使用して、DBのカラム全体を初期化する方法を試してみようと思います。</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">データベースのカラムの値を初期化したい場合</h2>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="394" src="https://sugublog.org/wp-content/uploads/2021/10/table_20211010-2-1024x394.jpg" alt="テーブル" class="wp-image-4250" srcset="https://sugublog.org/wp-content/uploads/2021/10/table_20211010-2-1024x394.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/10/table_20211010-2-300x116.jpg 300w, https://sugublog.org/wp-content/uploads/2021/10/table_20211010-2-768x296.jpg 768w, https://sugublog.org/wp-content/uploads/2021/10/table_20211010-2.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>初期化するので「delete」メソッドを使用すると思った方もいるかもしれません。</p>



<p>しかし空白で上書きする事とします。つまり「update」メソッドを使用します。</p>



<h3 class="wp-block-heading">updateメソッドの基礎構文</h3>



<p>updateコマンドの基礎構文は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>update テーブル名 set カラム名1=&#39;値&#39;,カラム名2=&#39;値&#39;,・・・・・where 比較演算子　値</code></pre></div>



<p class="is-style-balloon_box">updateメソッドの基礎は、以下の記事を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-300x160.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-update/">【SQL基礎】データベースの値を変更するupdateコマンド</a>
						<span class="p-blogCard__excerpt">SQLでデータベースの値を変更したい場合、SQL4大命令文の一つ「update」コマンドを使用します。 一つのサービスでデータを変更する事は、頻繁にあると思います。 きちん&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>ここではすべて初期化するので、条件の「where」以下の指定は不要です。</p>



<h3 class="wp-block-heading">テーブルのカラムを全て初期化する！実践</h3>



<p>以下のテーブルがあると仮定します。</p>



<p class="is-style-balloon_box">テーブル名：users</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>47</td></tr><tr><td>2</td><td>user_2</td><td>24</td></tr><tr><td>3</td><td>user_3</td><td>33</td></tr></tbody></table><figcaption>usersテーブル</figcaption></figure>



<p>「score」の値を全て空白にして見ましょう。</p>



<h3 class="wp-block-heading">実際に入力するコマンド</h3>



<p>その時の構文は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>update users set score=&#39;&#39;</code></pre></div>



<p>usersテーブルのカラム「score」の値を全て空白（&#8221;）にアップデートするコマンドになります。</p>



<p>では実際に行ってみましょう。</p>



<h3 class="wp-block-heading">実践結果</h3>



<p class="is-style-balloon_box">テーブル名：users</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td></td></tr><tr><td>2</td><td>user_2</td><td></td></tr><tr><td>3</td><td>user_3</td><td></td></tr></tbody></table><figcaption>usersテーブル</figcaption></figure>



<p>scoreの値が全て空白となりました。</p>



<h2 class="wp-block-heading">データベースのカラムの値を全て初期化する方法まとめ</h2>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="676" src="https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-1024x676.jpg" alt="code" class="wp-image-4185" srcset="https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-1024x676.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-300x198.jpg 300w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-768x507.jpg 768w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p class="has-border -border02">カラムを全て初期化するには「update」メソッドで空白を上書きする。</p>



<p>「delete」メソッドではない。</p>



<p>条件を入力しない、つまりすべてを上書きする。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-initialize-column-values/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【SQL基礎】4大命令文一覧！insert、update、select、deleteについて</title>
		<link>https://sugublog.org/sql-base-4major-commands/</link>
					<comments>https://sugublog.org/sql-base-4major-commands/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Thu, 12 Aug 2021 16:09:57 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[update]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=3985</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-2-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>SQLでよく使用される命令文があります。SQLの4大命令文です。 SQLでデータベースを操作する時に良く使用されます。しっかりと基礎構文を抑えて、良いサービスを構築しましょう。 【SQL基礎】insert、update、 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-2-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>SQLでよく使用される命令文があります。SQLの4大命令文です。</p>



<p>SQLでデータベースを操作する時に良く使用されます。しっかりと基礎構文を抑えて、良いサービスを構築しましょう。</p>



<h2 class="wp-block-heading">【SQL基礎】insert、update、select、deleteの4大命令文</h2>



<p>DB操作の4大命令文は下記です。</p>



<ol class="is-style-num_circle wp-block-list">
<li>select</li>



<li>update</li>



<li>insert</li>



<li>delete </li>
</ol>



<p>１つずつ見ていきましょう。詳細はリンクも貼っていますので、詳しく知りたい方はリンクを辿ってください。</p>



<h2 class="wp-block-heading">DBを参照するselectコマンド</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="768" src="https://sugublog.org/wp-content/uploads/2021/08/DB0804-1-1024x768.jpg" alt="DB" class="wp-image-3840" srcset="https://sugublog.org/wp-content/uploads/2021/08/DB0804-1-1024x768.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/DB0804-1-300x225.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/DB0804-1-768x576.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/DB0804-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>DBから値などを参照する時に使用します。構文は下記になります。</p>



<h3 class="wp-block-heading">基本構文</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select 欲しい値のカラム,欲しい値のカラム from テーブル名 条件;</code></pre></div>



<h3 class="wp-block-heading">select構文の注意点</h3>



<p class="is-style-big_icon_caution">欲しいカラムが複数ある場合は「,」で区切れば良いですね。</p>



<p class="is-style-balloon_box">select構文の詳細を知りたい方は、下記の「select文でDBの値を取得する」の記事を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/DB0804-1-300x225.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-select/">【SQL基礎】select文でDBの値を取得する!データ抽出方法</a>
						<span class="p-blogCard__excerpt">SQLのデータベースを使用する時の、構文を忘れる事が多々あるので覚書します。 データベースを扱えるようになれば、業務の幅も広がりますし、コードも少なく綺麗にする&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">DBの値を更新するupdateコマンド</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="545" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-1024x545.jpg" alt="script" class="wp-image-3955" srcset="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-1024x545.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-300x160.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-768x409.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>DBの値を更新する時に使用します。基本構文は下記です。</p>



<h3 class="wp-block-heading">基本構文</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>update テーブル名 set カラム名1 = 値,カラム名2 = 値2 where カラム 比較演算子 値;</code></pre></div>



<h3 class="wp-block-heading">update構文の注意点</h3>



<p class="is-style-big_icon_caution">updateコマンドで更新したいカラムを指定する時は「set」を使用します。他の４つでは「set」は出てこないので注意</p>



<p class="is-style-balloon_box">SQLのupdateコマンドの詳細は、下記の「データベースの値を変更するupdateコマンド」の記事を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-300x160.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-update/">【SQL基礎】データベースの値を変更するupdateコマンド</a>
						<span class="p-blogCard__excerpt">SQLでデータベースの値を変更したい場合、SQL4大命令文の一つ「update」コマンドを使用します。 一つのサービスでデータを変更する事は、頻繁にあると思います。 きちん&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">DBにデータを挿入するinsertコマンド</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-3-1024x683.jpg" alt="スクリプト" class="wp-image-3871" srcset="https://sugublog.org/wp-content/uploads/2021/08/script_0809-3-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-3-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-3-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-3.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>DBにデータを挿入したい場合に使用します。基礎構文は下記です。</p>



<h3 class="wp-block-heading">基本構文</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>insert into テーブル名 (カラム名,カラム名,カラム名,,) value (値,値,値,,);</code></pre></div>



<h3 class="wp-block-heading">update構文の注意点</h3>



<p class="is-style-big_icon_caution">テーブル名を指定する時は「into」を使用します。他の4つでは「into」は出てこないので注意です。</p>



<p>データベースにデータを挿入したい場合の詳細は、下記の記事を参照してください。</p>



<p class="is-style-balloon_box">「insertでDBにデータを挿入する」の記事はこちら</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-3-300x200.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-insert/">【SQL基礎】insert文でDB（データベース）にデータを挿入する</a>
						<span class="p-blogCard__excerpt">MySQLの4大命令文の中の1つ、insert文について見ていきます。 insert文はデータベースにデータを挿入する事が可能です。 insert文の基礎を学んで、データベースにデータ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">DBからデータを削除するdeleteコマンド</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="585" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-1024x585.jpg" alt="script" class="wp-image-3956" srcset="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-1024x585.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-300x171.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-768x438.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>DBからデータを削除する場合にdeleteコマンドを使用します。基本構文は下記です。</p>



<h3 class="wp-block-heading">基本構文</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>delete from テーブル名 where カラム 比較演算子 値;</code></pre></div>



<h3 class="wp-block-heading">delete構文の注意点</h3>



<p class="is-style-big_icon_caution">where以降の条件式を指定しなければ、テーブルごと削除されますので注意が必要です。</p>



<p class="is-style-balloon_box">詳しくは「【SQL基礎】deleteでデータベースの値を削除する方法とは？」を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-300x171.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-delete/">【SQL基礎】deleteでデータのレコードを行削除する方法とは？</a>
						<span class="p-blogCard__excerpt">SQLでデータベースからレコードの行の値を削除する方法をご紹介します。 SQLでレコードを削除する事は多いと思いますので、deleteの構文の基礎をしっかり取得しましょう&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p class="is-style-big_icon_check">SQL4大命令文はよく使用されますので、きちんと構文を抑えて使用しましょう。</p>



<p>今回は以上になります。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/school_08-7-300x200.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/programing-school/">【2024年】プログラミングスクールおすすめランキング！評判と口コミ</a>
						<span class="p-blogCard__excerpt">プログラミングスクールで学習して、スキルを上げて年収を上げたい。フリーランスになるためにプログラミングを習いたい。 こういった願望を抱いている人も沢山います。&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-4major-commands/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【SQL基礎】データベースの値を変更するupdateコマンド</title>
		<link>https://sugublog.org/sql-base-update/</link>
					<comments>https://sugublog.org/sql-base-update/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Thu, 12 Aug 2021 15:43:38 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=3976</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-1024x545.jpg" class="webfeedsFeaturedVisual" /></p>SQLでデータベースの値を変更したい場合、SQL4大命令文の一つ「update」コマンドを使用します。 一つのサービスでデータを変更する事は、頻繁にあると思います。 きちんとupdateコマンドを把握して、良いサービスを [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-1024x545.jpg" class="webfeedsFeaturedVisual" /></p>
<p>SQLでデータベースの値を変更したい場合、SQL4大命令文の一つ「update」コマンドを使用します。</p>



<p class="is-style-icon_announce">一つのサービスでデータを変更する事は、頻繁にあると思います。</p>



<p>きちんとupdateコマンドを把握して、良いサービスを作成しましょう。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>この記事で理解出来る事</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>SQL4大命令文のひとつ、「update」コマンドの基本を理解できる</li>



<li>データベースの値を変更するやり方を理解できる</li>
</ul>
</div></div>



<h2 class="wp-block-heading">データベースの値を変更するupdateコマンド</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-2-1024x576.jpg" alt="スクリプト" class="wp-image-3870" srcset="https://sugublog.org/wp-content/uploads/2021/08/script_0809-2-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-2-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-2-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-2.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">updateコマンドの基本構文を理解する</h3>



<p>updateコマンドの基本構文は下記になります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>update テーブル名 set カラム名1 = 値,カラム名2 = 値2 where カラム 比較演算子 値;</code></pre></div>



<p>fromの後にテーブル名を記入しております。</p>



<p>setの後に変更したいカラムと変更したい値を入力しております。</p>



<p class="is-style-icon_pen">複数ある場合は「,」で区切ります。</p>



<p>whereの後に条件を指定しております。条件のカラムと値はテーブルの値を参照します。比較演算子は使用可能なものから選択しております。</p>



<h3 class="wp-block-heading">テーブルを参照する</h3>



<p>今回下記のテーブルを作成したとします。カラムと値は下記から参照できます。</p>



<p class="is-style-balloon_box">テーブル名：users</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>47</td></tr><tr><td>2</td><td>user_2</td><td>24</td></tr><tr><td>3</td><td>user_3</td><td>33</td></tr></tbody></table><figcaption class="wp-element-caption">usersテーブル</figcaption></figure>



<p>今回はusersテーブルに、3人のユーザーが登録しているデータベースを使用します。</p>



<h3 class="wp-block-heading">使用可能な比較演算子を抑えておく</h3>



<p>比較演算子は下記から選択できます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較演算子</th><th>条件</th></tr></thead><tbody><tr><td>=</td><td>等しい</td></tr><tr><td>&lt;</td><td>より小さい</td></tr><tr><td>&gt;</td><td>より大きい</td></tr><tr><td>&lt;=</td><td>以下</td></tr><tr><td>&gt;=</td><td>以上</td></tr><tr><td>!=</td><td>等しくない</td></tr><tr><td>&lt;&gt;</td><td>等しくない</td></tr></tbody></table><figcaption class="wp-element-caption">SQLで使用できる比較演算子</figcaption></figure>



<h3 class="wp-block-heading">updateコマンドで具体的なテーブルの値を変更する</h3>



<p>では「usersテーブル」のnameが「user_3」のscoreの値を「33」から「66」に変更して見ましょう。</p>



<p>基本構文を参照して作成して見ると、下記になりました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>update from users set score = 66 where name = &#39;user_3&#39;;</code></pre></div>



<p>実行してデータベースの値を変更してみましょう。</p>



<p>エラーが出ました(´;ω;｀)</p>



<h3 class="wp-block-heading">文法エラー（Syntax error）対処法</h3>



<p>Syntax error・・・つまり文法間違いですね。</p>



<p>文法エラーが出た場合は「near」の文字を探しましょう。</p>



<p class="is-style-icon_pen">「near」とは「近く」という意味です。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="96" src="https://sugublog.org/wp-content/uploads/2021/08/image-17-1024x96.png" alt="" class="wp-image-3979" srcset="https://sugublog.org/wp-content/uploads/2021/08/image-17-1024x96.png 1024w, https://sugublog.org/wp-content/uploads/2021/08/image-17-300x28.png 300w, https://sugublog.org/wp-content/uploads/2021/08/image-17-768x72.png 768w, https://sugublog.org/wp-content/uploads/2021/08/image-17-1536x144.png 1536w, https://sugublog.org/wp-content/uploads/2021/08/image-17.png 1835w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ありました。今回は「near &#8216;from users set score・・・&#8217;」となっています。</p>



<p class="is-style-big_icon_check">大抵の場合、nearの次の文字がおかしい事が多いです。ここでは「from・・・」ですね。ここを重点に見直します。</p>



<p>文法を見直したら「from」が不要ですね。SQL4大命令の「select」と「delete」構文はテーブルを指定する前に「from」といれますので、ここでも入れてしまいました。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/DB0804-1-300x225.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-select/">【SQL基礎】select文でDBの値を取得する!データ抽出方法</a>
						<span class="p-blogCard__excerpt">SQLのデータベースを使用する時の、構文を忘れる事が多々あるので覚書します。 データベースを扱えるようになれば、業務の幅も広がりますし、コードも少なく綺麗にする&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-300x171.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-delete/">【SQL基礎】deleteでデータのレコードを行削除する方法とは？</a>
						<span class="p-blogCard__excerpt">SQLでデータベースからレコードの行の値を削除する方法をご紹介します。 SQLでレコードを削除する事は多いと思いますので、deleteの構文の基礎をしっかり取得しましょう&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>updateコマンドでは「from」は不要でした。下記のコードに修正して実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>update users set score=66 where name=&#39;user_3&#39;;</code></pre></div>



<p>user_3のscoreの値が33から66に変更していました。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="454" height="145" src="https://sugublog.org/wp-content/uploads/2021/08/image-18.png" alt="" class="wp-image-3980" srcset="https://sugublog.org/wp-content/uploads/2021/08/image-18.png 454w, https://sugublog.org/wp-content/uploads/2021/08/image-18-300x96.png 300w" sizes="(max-width: 454px) 100vw, 454px" /></figure>
</div>


<p>SQLでupdateコマンドで、データベースの値を変更する事が出来ました。</p>



<h2 class="wp-block-heading">SQLのupdateメソッドの補足情報</h2>



<p>updateメソッドでカラムを全て初期化する方法は、以下の記事をご覧ください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/10/table_20211010-1-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-initialize-column-values/">【SQL基礎】データベースのカラムの値を初期化したい場合</a>
						<span class="p-blogCard__excerpt">PHPでデータベースを操作する事はよくあります。 その時に必要になってくるのがメソッドです。 そのメソッドの中でよく使用するのが、4大命令文というものです。 今回は&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-update/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【SQL基礎】deleteでデータのレコードを行削除する方法とは？</title>
		<link>https://sugublog.org/sql-base-delete/</link>
					<comments>https://sugublog.org/sql-base-delete/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Wed, 11 Aug 2021 12:44:12 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[レコードの行削除]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=3943</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-1024x585.jpg" class="webfeedsFeaturedVisual" /></p>SQLでデータベースからレコードの行の値を削除する方法をご紹介します。 SQLでレコードを削除する事は多いと思いますので、deleteの構文の基礎をしっかり取得しましょう！ この記事を読めばSQLのdeleteでレコード [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-8-1024x585.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-inline-color has-swl-deep-01-color">SQLでデータベースからレコードの行の値を削除</span></strong>する方法をご紹介します。</p>



<p>SQLでレコードを削除する事は多いと思いますので、deleteの構文の基礎をしっかり取得しましょう！</p>



<p>この記事を読めばSQLのdeleteでレコードを削除する時に迷う事はなくなります。</p>



<p>/</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<p>またSQLのdeleteと同様レコードを追加する事もよくあります。</p>



<p>追加する構文はinsert構文でした。insert構文でデータベースに追加する方法は、下記を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-3-300x200.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/sql-base-insert/">【SQL基礎】insert文でDB（データベース）にデータを挿入する</a>
						<span class="p-blogCard__excerpt">MySQLの4大命令文の中の1つ、insert文について見ていきます。 insert文はデータベースにデータを挿入する事が可能です。 insert文の基礎を学んで、データベースにデータ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>今回は<strong><span class="swl-inline-color has-swl-deep-01-color">DBデータのレコードの値をdeleteを使用して削除</span></strong>します。</p>



<h2 class="wp-block-heading">SQLのdeleteでデータのレコードの行削除する方法とは？</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="513" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-9-1024x513.jpg" alt="script" class="wp-image-3957" srcset="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-9-1024x513.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-9-300x150.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-9-768x385.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-9.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>SQLのDBからデータレコードの値を削除する、<strong><span class="swl-inline-color has-swl-deep-01-color">deleteの基礎構文</span></strong>は下記になります。</p>



<h3 class="wp-block-heading">SQLでデータレコードの値を削除するdeleteの構文</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>delete from テーブル名 where カラム 比較演算子 値;</code></pre></div>



<p class="is-style-icon_announce">SQLのdeleteでレコードの値を削除する基礎構文の説明をします。</p>



<p>まずfromの後にテーブル名を記入します。</p>



<p>その後にwhereの後で条件を決めます。カラムと値はデータベースの値を入力します。</p>



<p>比較演算子は使用できるものから選択します。</p>



<h3 class="wp-block-heading">SQLでデータレコードの行が削除されたか確認する</h3>



<p>今回下記のテーブルを作成したとします。カラムと値は下記から参照できます。</p>



<p class="is-style-balloon_box">テーブル名：users</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th> id </th><th> name </th><th> score </th></tr></thead><tbody><tr><td>1</td><td>user_1</td><td>47</td></tr><tr><td>2</td><td>user_2</td><td>24</td></tr><tr><td>3</td><td> user_3</td><td>33</td></tr><tr><td>4</td><td> user_4</td><td>44</td></tr></tbody></table><figcaption class="wp-element-caption">usersテーブル</figcaption></figure>



<p>今回はusersテーブルに、4人のユーザーが登録しているデータベースを使用します。</p>



<h3 class="wp-block-heading">SQLで使用可能な比較演算子を抑えておく</h3>



<p>SQLで使用できる比較演算子は下記から選択できます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較演算子</th><th>条件</th></tr></thead><tbody><tr><td>=</td><td>等しい</td></tr><tr><td>&lt;</td><td>より小さい</td></tr><tr><td>&gt;</td><td>より大きい</td></tr><tr><td>&lt;=</td><td>以下</td></tr><tr><td>&gt;=</td><td>以上</td></tr><tr><td>!=</td><td>等しくない</td></tr><tr><td>&lt;&gt;</td><td>等しくない</td></tr></tbody></table><figcaption class="wp-element-caption">SQLで使用できる比較演算子</figcaption></figure>



<h3 class="wp-block-heading">実践：SQLのdeleteでレコードを行削除する</h3>



<p>では実際にSQLのdeleteを使用して、一番下のレコードの行削除をしてみましょう。コードは下記になります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>delete from users where id = 4;</code></pre></div>



<p>このSQLを実行してレコード削除してみます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="460" height="164" src="https://sugublog.org/wp-content/uploads/2021/08/image-16.png" alt="" class="wp-image-3953" srcset="https://sugublog.org/wp-content/uploads/2021/08/image-16.png 460w, https://sugublog.org/wp-content/uploads/2021/08/image-16-300x107.png 300w" sizes="(max-width: 460px) 100vw, 460px" /></figure>
</div>


<p class="has-border -border02">SQLを実行した結果はテーブルからidが4のレコードの値が削除されました。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLのdeleteでテーブル全てのレコードを削除する</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="545" src="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-1024x545.jpg" alt="script" class="wp-image-3955" srcset="https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-1024x545.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-300x160.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7-768x409.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/programing_0812-7.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQLのdeleteでテーブル全てのレコードを削除する構文</h3>



<p>SQLでテーブルの全てのレコードを削除してみましょう。構文は以下に記載します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>delete from テーブル名;</code></pre></div>



<p>テーブルの全てのレコードを削除したい場合、whereの条件を省略すると全レコード削除できます。</p>



<p>しかしながらサービスの中で、テーブルの全てのレコードを削除する事はないと思いますので、注意してください。</p>



<p>全てのレコードを削除してしまったら復旧など大変になってしまいますので。</p>



<h2 class="wp-block-heading">SQLのdeleteでデータのレコードを行削除する方法まとめ</h2>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">SQLでデータレコードの値を削除するdeleteの構文</span></strong>は以下でした。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>delete from テーブル名 where カラム 比較演算子 値;</code></pre></div>



<p>SQLのdeleteでテーブル全てのレコードを削除する構文は以下でした。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>delete from テーブル名;</code></pre></div>



<p><strong><span class="swl-marker mark_orange">SQLでレコードの行削除</span></strong>は基礎でよく使用されますので、しっかり覚えたいですね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-delete/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
