フリーランスエンジニアならSQLを覚えておいて損はない!基礎だけでもおさえておこう | クラウドワークス テック(旧クラウドテック)

  • URLをコピーしました!

SQLを使ったことがありますか?データベースエンジニアでなくてもSQLに触れる機会はあります。たとえば、プログラム中でデータベースからデータを読みこんだり、保存したりする場合です。最近ではSQLを自動生成する技術が開発され、直接SQLを使う機会は少なくなってきています。しかし、まだまだ生のSQLを使わないといけない状況は数多くあります。また、問題が起こった時には自動生成されたSQLを解読しなければならないでしょう。やはりどんなエンジニアの方でもSQLの基礎程度は知っておくべきです

この記事では、SQLを一から学びたい(再学習したい)フリーランスエンジニアの方のために、SQLの基礎をオープンソースのデータベースであるMySQLを使って解説していきます。ぜひご一読して、案件でSQLに触れる機会があっても困らないようにしておきましょう。

参照:エンジニアのスキルアップ・リスキリングの重要性と取り組み方について解説した記事はこちら

フリーランス案件に興味ある人は必見

リモートワーク案件に強い
フリーランスエージェント

\ 会員登録は60秒で完了!/

>リモート案件検索はコチラから

目次

そもそもSQLってなに?

SQL(構造化問い合わせ言語)は、データベースを操作するための言語です。データベースにはGUIの管理ツールもあり、グラフィカルに操作することもできます。しかし、裏では密かにSQLを作成し、データベースを操作しているのです。MySQLOracleSQL Serverなどの各RDBMS(関係データベース管理システム)は標準SQL規格に対応しています。そのため、共通のSQLが使えるわけです。一部、方言と呼ばれる各RDBMS独自の拡張がなされています。SQLは数学的理論にもとづいており、プログラミング言語とは考え方がまったく異なるのでとっつきにくいと思う方も多いでしょう。SQLでの考え方に慣れることが上達の早道です。

MySQLのインストール

MySQLは、オープンソースのRDBMSでだれでも無料で使うことができます。データベースの人気ランキングでは、トップのOracleに次いで2位になっています。それだけ案件の数も多いというわけです。ちなみに、MySQLはオラクルに買収されたので、どちらもオラクルのものです。

それでは、ダウンロードページからインストールを行ってください。各プラットフォーム用のインストーラーが用意されています。なお、インストール時に指定するパスワードは後で使いますので忘れずにメモしておきましょう

参照:MySQL「Community Downloads」

コマンドラインツールからログイン

インストールが終わったらコンソール(コマンドプロンプト)を立ち上げて、下記のコマンドを入力してMySQLにログインしましょう。なお、事前に環境変数を設定しておくか、カレントフォルダを移動しておく必要があります。

mysql –u root –p

続けてパスワードの入力を求められますので、インストール時に設定したパスワードを入力します。これでログインができました。

基本的なSQLコマンドでの操作

2 (42)

データベースの作成

なにはともあれ、データベースを作成しないとはじまりません。下記のSQLでデータベースを作成できます。データベースには、データの保存先であるテーブルを複数作成することが可能です。ここではデータベース名は”shop”とします。

create database shop;

下記のコマンドを入力するとデータベースの一覧が表示されます。ちゃんと作成できていますか?

show databases;

作成したデータベースに切り替える

それでは、今しがた作成したデータベースを操作できるように切り替えましょう。下記のコマンドで切り替えられます。

use shop;

このように、データベースを操作する前に切り替えるのが基本です。

テーブルを作成する

次に、データベースに下記のようなテーブルを作成します。データを保存するためにはテーブルが必要です。データ形式に合ったテーブルを作成しましょう。

列名データ型長さ
id数値4バイト
name文字列128バイト
address文字列256バイト
mail文字列128バイト
total数値4バイト

SQLとして表現すると下記のようになります。ここではテーブル名は”orders”とします。

create table orders(id int, name varchar(128), address varchar(256), mail varchar(128), total int);

こちらもデータベース同様、コマンドを使って作成できているか確認してみましょう。

show tables;

テーブルにデータを挿入する

さっそく作成したテーブルにデータを入れてみましょう。使用するサンプルデータは下記の通りです。

idnameaddressmailtotal
1田中太郎茨城県龍ケ崎市tanaka@example.com12800
2鈴木一郎東京都品川区suzuki@example.com5600
3佐々木始東京都江戸川区sasaki@example.com98500

このデータをSQLとして入力すると下記のようになります。

insert into orders values

(1, ‘田中太郎’, ‘茨城県龍ケ崎市’, ‘tanaka@example.com’, 12800),

(2, ‘鈴木一郎’, ‘東京都品川区’, ‘suzuki@example.com’, 5600),

(3, ‘佐々木始’, ‘東京都江戸川区’, ‘sasaki@example.com’, 98500);

これでテーブルにデータが保存できました。

テーブルに保存したデータの取得

先ほどテーブルに保存したデータを取得してみましょう。それには下記のselect文を使います。

select * from orders;

結果

idnameaddressmailtotal
1田中太郎茨城県龍ケ崎市tanaka@example.com12800
2鈴木一郎東京都品川区suzuki@example.com5600
3佐々木始東京都江戸川区sasaki@example.com98500

”を指定するとすべての列を取得できます。明示的に列名を指定して一部の列のみを取得することもできます。下記がその一例です。

select name, address from orders;

結果

nameaddress
田中太郎茨城県龍ケ崎市
鈴木一郎東京都品川区
佐々木始東京都江戸川区

条件を指定してデータを取得する

テーブルのすべてのデータを取得するのではなく、条件に一致する一部のデータのみを取得することもできます。それには下記のwhere句を使います。

select * from orders where id = 2;

結果

idnameaddressmailtotal
2鈴木一郎東京都品川区suzuki@example.com5600

また、”and(かつ)”や”or(および)”を使って複数の条件を指定することもできます。たとえば、次のようにします。

select * from orders where id = 2 or id = 3;

結果

idnameaddressmailtotal
2鈴木一郎東京都品川区suzuki@example.com5600
3佐々木始東京都江戸川区sasaki@example.com98500

このようにSQLでは任意の行のみを取得することができます。

一定の範囲のデータを取得する

さきほどは条件に固定値を指定しました。他にも値の範囲を条件に指定する方法もあります。それにはwhere句に続けてbetween句を使います。

select * from orders where total between 0 and 10799;

結果

idnameaddressmailtotal
2鈴木一郎東京都品川区suzuki@example.com5600

また、not句を付けることで条件を反転させることもできます。つまり、条件の範囲に含まれないものが取得できます。

select * from orders where total not between 0 and 10799;

結果

idnameaddressmailtotal
1田中太郎茨城県龍ケ崎市tanaka@example.com12800
3佐々木始東京都江戸川区sasaki@example.com98500

用途によって条件の指定方法を使い分けましょう。

パターンに一致するデータを取得する

場合によってはあいまいな条件で検索したいこともあります。たとえば、東京の住所の人だけを取得したい場合には次のようにlike句を使います。

select * from orders where address like ‘東京都%’;

結果

idnameaddressmailtotal
2鈴木一郎東京都品川区suzuki@example.com5600
3佐々木始東京都江戸川区sasaki@example.com98500

like句に指定する文字列には、ワイルドカードとして”%(任意の0文字以上の文字を表す)”と”_(任意の1文字を表す)”が使えます。この2つを組み合わせることで柔軟な検索が可能です。

データを並び替えて取得する

データを特定の順番で取得したい時があります。そんなときは、order by句を使いましょう。デフォルトでは昇順で取得されます。

select * from orders order by total;

結果

idnameaddressmailtotal
2鈴木一郎東京都品川区suzuki@example.com5600
1田中太郎茨城県龍ケ崎市tanaka@example.com12800
3佐々木始東京都江戸川区sasaki@example.com98500

また、降順で取得するには次のようにします。

select * from orders order by total desc;

結果

idnameaddressmailtotal
3佐々木始東京都江戸川区sasaki@example.com98500
1田中太郎茨城県龍ケ崎市tanaka@example.com12800
2鈴木一郎東京都品川区suzuki@example.com5600

プログラム側で並び替えることもできますが、多くの場合データベースで処理したほうが効率的です。

データを更新する

もちろん、テーブルに保存したデータは更新することができます。データの更新にはupdate文を使います。多くの場合where句も同時に使って更新するデータを限定します。そうしないとすべてのデータが更新されてしまいます

update orders set total = total – 540 where total > 10799;

結果

idnameaddressmailtotal
1田中太郎茨城県龍ケ崎市tanaka@example.com12260
2鈴木一郎東京都品川区suzuki@example.com5600
3佐々木始東京都江戸川区sasaki@example.com97960

更新するデータには固定値を使うこともできますが、上記の例のように更新前の値を使って計算することもできます。状況によって使い分けましょう。

まとめ

SQLについて興味がわきましたか?ここで解説したことはごく基本的な部分です。SQLは非常に奥深く、それだけで分厚い本が書けます。この記事を足がかりに本格的に勉強をはじめてみましょう。MySQLの公式サイトには詳細な日本語ドキュメントが用意されています。入門書と合わせて参考にするとよいでしょう。SQLはプログラミング言語ではないので結構好みが分かれる言語だと思います。あなたはSQLについてどんな印象を持っていますか?

参照:エンジニアのスキルアップ・リスキリングの重要性と取り組み方について解説した記事はこちら

こんな悩み、ありませんか?
  • 希望条件のリモート案件が見つからない
  • 高単価の案件に参加したい
  • スキルアップできるプロジェクトに参画したい
  • 週2~3日程度の案件が見つからない
週2~高単価案件を検索可能!
案件検索はコチラから!
フリーランスエンジニアならSQLを覚えておいて損はない!基礎だけでもおさえておこう

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランスの道しるべ編集部のアバター フリーランスの道しるべ編集部 フリーランスの道しるべ編集部

フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。

(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)

目次