05SQLの基本操作
次は、環境構築で作成したテーブルを使用して、SQLの基本構文を学んでいきましょう。
insert文(データの登録)
環境構築でデータ登録する際に使用しましたが、データを登録する際にはinsert文を使用します。
insert文は、以下の構成で記述します。
※実行不要
insert into テーブル名 (カラム名1, カラム名2) values ('値1', '値2')ここでは、studentsテーブルにレコードを1つ追加してみましょう。
insert into school.students (name, age, class) values ('土田五郎', 8, 3);ターミナルに「Query OK, 1 row affected … 」と表示されて入れば、登録完了です。
DBに登録されているか、以下のSQLを実行して確認しましょう。
select * from students;
※select文については後述します。
update文(データの更新)
次に、データの更新を行います。データ更新で使用するupdate文は以下の構成で記述します。
※実行不要
update テーブル名
set カラム名1 = '値1', カラム名2 = '値2'
where 条件では、「土田五郎」さんの名前を「土田六郎」さんに変更し、年齢も「9歳」に更新してみましょう。
update students
set name = '土田六郎', age = 9
where id = 5;※where文については後述します。
それではデータを取得して、想定通りデータが更新されているか確認しましょう。
select * from students;
※select文については後述します。
delete文(データの削除)
データを削除したい場合はdelete文を使用します。
delete文は以下の構成で記述します。
※実行不要
delete from テーブル名 where 条件それでは、update文で更新した「土田六郎」さんのレコードを削除しましょう。
delete from students where id = 5;※where文については後述します。
それでは、削除されているか確認しましょう。以下のSQLを実行し、キャプチャのようにidが5の「土田六郎」さんのレコードが削除されていれば成功です。
select * from students;
※select文については後述します。
<補足1>
データの削除には「論理削除」と「物理削除」の2つの方法があります。詳細は後述しますが、delete文は「物理削除」にあたり、DBから完全にデータを削除してしまう方法です。
データが復元できなくなるので、使用する際には注意が必要です。
<補足2>
前述のとおり、delete文はデータを完全に削除する「物理削除」にあたります。
ゆえに、既に運用中のデータを扱う際は、以下の流れを踏むようにしましょう。
①:削除対象のデータを取得
②:①のバックアップを取得
③:物理削除を実行
④:①で実行したSQLを再度実行し、想定通りの結果になっているか確認
select文(データの取得)
select文は、指定したテーブルからデータを取得する際に使用します。
例えば、studentsテーブルに存在するすべてのデータを抽出したい時は、以下のようなSQLを実行します。
select id, name, age, class from students;すると、studentsテーブルに保存されているデータを以下のように全件取得することができます。

※「すべてのカラム」
select * from students;where句(検索条件の指定)
例えば、studentsテーブルから「年齢(age)が10歳の学生を取得したい」という場合に、以下のようにSQLを実行します。
select * from students where age = 10;このように検索条件をwhere句で指定することにより、以下のように指定したデータを取得することができます。
where句では、=(イコール)のみならず様々な演算子を使用することができます。
以下に例を挙げるので、それぞれ実行して出力結果を確認してみてください。
and演算子(検索条件を複数指定)
クラス(class)が「1」、年齢(age)が「11」のデータを取得。
select * from students where class = 1 and age = 11;or演算子(いずれかの検索条件を満たすデータを取得)
クラス(class)が「1」または「2」のデータを取得。
select * from students where class = 1 or class = 2;比較演算子(比較条件を指定)
データが一致しているかどうか、データの大小などの条件を指定する時に使用します。
- =:演算子の左辺値と右辺値が等しい
- <:演算子の左辺値が右辺値より小さい
- >:演算子の左辺値が右辺値より大きい
- <=:演算子の左辺値が右辺値より小さい、または等しい
- >=:演算子の左辺値が右辺値より大きい、または等しい
- <>、!=:演算子の左辺値と右辺値が等しくない
すべてを実行することはしませんが、例として「>=」演算子の動作を確認してみましょう。
年齢(age)が10歳以上のデータを取得
select * from students where age >= 10;in演算子(指定した複数の値を検索条件に指定)
同一カラムの中で複数の値を検索条件としたい場合、in演算子を使用します。
年齢(age)が9歳と11歳のデータを取得したい場合、以下のSQLを実行します。
select * from students where age in (9, 11);その他の演算子
これまで紹介した演算子以外にも、様々な演算子を使用することができます。中でも、実務で使用する機会がありそうなものを紹介します。
- like演算子(条件に一致する文字列を検索)
- between演算子(指定した範囲内を検索)
- not演算子(条件に一致しないデータを検索)
- is null演算子(NULL値を含むデータを検索)
order by句
検索結果を指定の順に並べ替えることができるのが、order by句です。
ここでは、studentsテーブルの全レコードを取得し、年齢が高い順に並べてみましょう。
select * from students order by age desc;
今回はorder byした際の並び順をdesc(降順)で並び替えました。
order byのデフォルト値はasc(昇順)なので、昇順に並び替えたい場合はascの指定は不要です。
コメントを残す