どうも!ひよこSE(@PiyoOct)です。

SQL(エスキューエル)って何?
ひとことでわかりやすく言えば、「データベースとデータをやり取りするときに使う言葉」です。

「データをやり取りする」って言われてもなぁ。
データベースというのは、データを入れておく箱・入れ物のようなものです。
例えば「氏名」というデータがデータベースという箱に入っていたとしたら、「氏名を取り出すために書く言葉みたいなイメージ」なのが、SQLです。
SQLとは?データベースとデータをやり取りするときに使う言葉
SQLとは?データベースとデータをやり取りするときに使う言葉のことです。
- S:Structured(構造化された)
- Q:Query(問い合わせ)
- L:Language(言語)
を直訳すると、「構造化された(データベースに)問い合わせをするための言語」的な感じになります。

問い合わせはデータベースに向かって、行います!
データベースって何?
データベースって何?となっている人向けに簡単に説明します。
「DB(データベース)とは?データを保存しておく入れ物や箱のこと」でも書いていますが、データベースとは「データを保存しておく入れ物や箱のこと」です。

誰かの名前だったり性別だったり年齢のような、データをポイっと投げて、保存。
データの塊を保存する、入れ物の役割をするのがデータベースです。
データベースとデータをやり取りするときに書くのがSQL
さて、人間に話しかけるように、「あとで忘れるかもしれないから、○○さんの電話番号を覚えておいてくれ!」とデータベースにお願いしても、いうことを聞いてくれません。
電話番号を覚えておいてほしいなら、ちゃんと保存するための言葉を書かないとダメです。
そして、いざ、「○○さんの電話番号なんだっけ?」というのが知りたくなったとして。
データベースに聞くなら、ちゃんとそれ用の言葉を書かないと、データベースは教えてくれません。
「それ用の言葉」がまさにSQL。

登録・保存・削除・データの抽出などを、データベースとやり取りするための言葉がSQLです。
基本情報技術者試験向けに最低限覚えておくべきSQLはたくさん

SQLってむずそう。どうやって書くの?
SQLの構文は無限にあります・・・。
ここでは、基本情報技術者試験に出そうな、シンプルな文を5つピックアップします。
当然まだまだあるので、過去問の演習中に、他の構文が出てきたら、覚えたって下さい(*´ω`)。
例えば、社員のデータを保存することを目的とした「社員」テーブルというものがあったとします。
【社員テーブルの定義】(あくまでも例です)
社員番号
入社年度
社員名
性別コード ※1=男, 2=女
その1:insert into テーブル名 values (項目1, 項目2,…)【データを登録】
2021年度に、山田太郎くん・佐藤花子ちゃん・鈴木一郎くんの3人が入社したとして。
それを、「『社員』テーブルに登録・保存しておきたいな~」となったら、こんな感じのSQLを書きます(あくまでイメージです)。
insert into 社員 values (20210001, 2021, ‘山田太郎’, ‘1’);
insert into 社員 values (20210002, 2021, ‘佐藤花子’, ‘2’);
insert into 社員 values (20210003, 2021, ‘鈴木一郎’, ‘1’);
commit;
これで、2021年に入社した3人が社員テーブルに登録されました。
その2:select 項目名 from テーブル名【データをとってくる】
さて、2021年に入社した男性社員の社員名が知りたいとしたら、こんな感じのSQLを書きます。
select 社員名 from 社員 where 入社年度 = ‘2021’ and 性別コード = ‘1’;
そしたらこんな感じで結果が返ってきますね。
社員名
———
山田太郎
鈴木一郎
他にも、2021年に入社した男性社員の人数が知りたいとしたらこんな感じのSQLを書きます。
select count(*) AS 男性社員人数 from 社員 where 入社年度 = ‘2021’ and 性別コード = ‘1’;
そしたらこんな感じで結果が返ってきますね。
男性社員人数
————–
2
その3:update テーブル名 set 項目名【データを更新する】
さて、社員テーブルに登録した2021年度入社の社員3名。
実は、全員2020年度入社で、打ち間違えてしまいました。2020年に修正したいです。
って言うときに書くSQLはこんな感じ。
update 社員 set 入社年度 = ‘2020’ where 入社年度 = ‘2021’;
その4:where句【条件をしぼり込む】
where というのは、条件をしぼり込むために使います。
「2021年に入社した男性社員の社員名」のように、社員名に条件があるイメージ。
select 社員名 from 社員 where 入社年度 = ‘2021’ and 性別コード = ‘1’;
その5:order by【並びかえをする】
さて、2021年度入社の社員全員の名前を、男性・女性順に並べたあとにID順にしたいです。
みたいなとき。
select 性別コード, 社員ID, 社員名 from 社員 where 入社年度 = ‘2021’ order by 性別コード ASC, 社員ID ASC;

ASCは昇順(番号が小さい順)で、DESCは降順(番号が大きい順)です。
▼結果
性別ID 社員ID 社員名
——- ———— ———–
1 20210001 山田太郎
1 20210003 鈴木一郎
2 20210002 佐藤花子
・・・まぁ、こんな感じのノリで、SQLは書いていきます。
他にも、
- 集計を行うgroup by(最大値、合計、最小値、カウントに使う)
- 集計後にフィルターをかけるhaving
- テーブル同士をくっつけるleft join
- 複数のSQLをくっつけるunion
あたりも基本情報技術者試験では出ると思いますが、一度に理解するのは、たぶんむりです。
時間をかけてゆっくりと勉強していってください。
まとめ:SQLはデータを登録したり抽出したりする
SQL(エスキューエル)ときたら、データを登録したり抽出したり。
「データベースとデータをやり取りするときに使う言葉」だと覚えておいてくださいまし。
もし、勉強するとなったら
- insert(データの登録)
- select(データの選択)
- update(データの更新)
- where(条件のしぼり込み)
- order by(並べかえ)
は、当たり前のように出るので、「そういう文を書くんだなぁ~」と覚悟してくださいまし(-_-;)。
コメント