P-13. レコードを挿入してみよう

レコードを追加しよう!

レコードを追加するには、データベースの操作に応じた適切なSQLクエリを使用します。前回のセクションの例題であった「m_users」テーブルと課題で作成した「m_profiles」テーブルをもとに、例題と課題を取り組んでみましょう!

m_usersの内容

カラム名名称データ型NULLDefault自動採番KEY備考
idIDintNOTNULLIDをプライマリーキーにする(PRIMARY KEY)
user_nameユーザー名varchar(100)NOTNULL最大全角100文字
mail_addressメールアドレスvarchar(200)NOTNULL最大全角200文字
passwordパスワードvarchar(100)NOTNULL
created登録日datetimeDEFAULTNULL‘YYYY-MM-DD HH:MM:SS’ 
modified更新日datetimeDEFAULTNULL‘YYYY-MM-DD HH:MM:SS’ 

m_profilesの内容

カラム名名称データ型NULLDefault自動採番KEY備考
idIDintNOTNULLIDをプライマリーキーにする(PRIMARY KEY)
name名前varchar(100)NOTNULL最大全角100文字(200バイト)
kanaカナvarchar(100)NOTNULL最大全角100文字(200バイト)
age年齢intNOTNULL
profileプロフィールtextNOTNULL
place出身都道府県地番号int(5)NOTNULL47都道府県を数字で管理
sex性別int(2)NOTNULL1:男 2:女
created登録日datetimeDEFAULTNULL‘YYYY-MM-DD HH:MM:SS’ 
modified更新日datetimeDEFAULTNULL‘YYYY-MM-DD HH:MM:SS’ 

データの追加

追加変更削除のコマンド文は INSERT UPDATE DELETEです。

コマンド文説明
INSERTデータベースのテーブルに新しいレコードを追加します。
UPDATEデータベースのテーブル内の既存のレコードの値を更新します。
DELETEデータベースのテーブルから特定の条件に一致するレコードを削除します。

INTO句とFROM句

INSERT文やDELETE文、SELECT文などは、INTOやFROMのような「句」を使用したりします。他にもWHERE句などの句があるが、ここではINTO句とFROM句の説明をさせていただきます。他に何があるかは、こちらを参照いただくか、「SQL 句 一覧」等で検索してみてください。

説明直訳句を使用する文(基本例)
INTO新しいデータを挿入する先のテーブルを指定します。「〜の先へ」INSERT…etc
FROMデータの参照元や操作対象のテーブルを指定します「〜から」DELETE、SELECT…etc

実行結果例

データを挿入しよう!

INSERT文をさらに実行してみましょう!

実行結果例

※日本語文字化けについて:初期のxammpでは、コマンド日本語対応がされていません。気になる方で変更したい場合はこちらを参考で実行してください。

以下で文字コードを「ShiftJIS」に変更しておきます。

データを更新しよう!

UPDATE文をもっと実行してみましょう!

変更されているか確認してください!!

レコードの操作実行しよう!

トランザクション

トランザクションの機能を活用すると、実際にUPDATEなどのクエリを実行してSELECTで結果を確認したあとに、意図通りに変更できていれば、反映させます。
意図通りに変更できてなければ、反映させないということができます。

確認のための機能というより同じデータを、他者から書き込ませたいために利用するものです。

実行してみよう!

テーブルデータを読み出そう!

select文の使い方を知っておこう

SELECT文は、データベースからデータを取得するために使用されます。

JOIN 内部 外部接続

テーブル同士を接続して表示します。

課題

課題手順

1.placesテーブルを作成して、出身県1~47をいれてください。

 m_place(都道府県テーブル)

 都道府県データ挿入のテーブルデータ 参考のサイト

カラム名名称データ型NULLDefault
place_no県NOintNOTNULL
place_name県名varchar(100)NOTNULL

2.作成したSQLテーブルを利用して、データを表示してください。

  m_users:20件・ m_profiles:10件・m_place(都道府県テーブル):47件

3.m_profilesとm_placeテーブルを利用して、内部結合を使って表示してください。

  提出物:作成したSQL文と出力されたデータをコピーして、テキストに貼り付けて送ってください。

  テキスト名:profiles_place.txt

4.m_usersとm_profilesテーブルを利用して、外部結合を使って表示してください。

  提出物作成したSQL文と出力されたデータをコピーして、テキストに貼り付けて送ってください。

  テキスト名:users_profiles.txt

課題補足

・内部結合:テーブルとテーブルの互いの条件に一致するレコード(データ行)をのみを抽出します。

・外部結合:一致しない場合もデータとして取得、一致しないデータは取得しない。

実行結果

m_placeテーブル作成後、テーブルの中身を確認した例


内部結合・実行結果例


外部結合・実行結果例

ヒント

ヒント:都道府県名のは、内部結合(INNERJOIN)を使います。

m_users と m_profilesは外部結合(LEFT JOIN句, RIGHT JOIN句)を使います。m_usersにしかないテーブルも表示するようにします。

課題・復習用検索キーワード

検索例
🔍sql 構文 一覧
🔍sql 内部結合 外部結合
🔍sql 句 とは