photo
photo
  1. トップ
  2. 開発
  3. 入門者でもわかるSQLを使って表を作ってみよう!【SQL文の書き方付き】

入門者でもわかるSQLを使って表を作ってみよう!【SQL文の書き方付き】

SQLはデータベースに格納されたデータを操作する言語です。WindowやUnix環境、Linux環境で主に利用され、膨大なデータを効率よく処理できます。

無料でダウンロードできるデータベースソフトも存在し、また近年ではクラウド上のサーバリソースを個人でも気軽に使えるようになってきているため、普及が進んでいます。

この記事では、SQLとは何か、SQLでできることを踏まえ、リレーショナルデータベースやオブジェクトやトランザクション、MySQLとPostgreSQLの特徴について解説します。

【入門編】SQLとは?

SQLとは、「Structured Query Language」の略で、直訳すると「構造化問い合わせ言語」。コンピュータ言語のひとつですが、プログラミング言語ではありません。リレーショナルデータベース(RDB)のデータを操作するための言語です。

データベースへ指示を出す言語は「SQL文」と呼び、命令文を組み合わせて処理を実施します。またSQL文はANSIやISOが規格化しているため、「Oracle Database」「Microsoft SQL Server」「My SQL」などでもほぼ同じように利用できます。

対話型の操作でコンパイル不要。大量のデータを効率よく操作できるので、使い勝手の良い言語です。

なお、誰でも無料で使えるミドルウェア「MySQL」については、MySQLインストール方法の記事で紹介しています。併せてご覧ください。

SQLで何ができる?

SQLでは次のような処理ができます。

  • データの条件検索

検索の際に詳細な条件を指定できます。効率よくデータを検索できるため便利です。

  • データの取得・登録・更新・削除

データの条件検索と組み合わせると、特定の行や列を指定してデータの取得が容易に実施できます。また登録や更新、削除も同様に指定の行にのみ実施していけます。

  • テーブルの作成・削除・変更

テーブルとはデータを格納する表のこと。必要に応じてテーブルの作成・変更・削除ができるので、思い通りにテーブルを構成できます。

膨大な量のデータがRDBによって整理されているため、これらの処理も効率よく実施可能です。

命令のためのSQL文を頭に入れておく必要はありますが、一度、方法を覚えてしまえば、以降は容易に処理を実施していけます。

コンピューター言語

SQLの基礎知識:リレーショナルデータベース

リレーショナルデータベース(RDB)とは、互いに関連付けられた表にデータを格納して扱うデータベースのこと。現在、一般的になっているデータベースシステムの一つです。

正確には「RDB」はデータを管理する手法を指しますが、厳密に定義の違いを気にする人はほぼいません。また昨今のSQL文を使うデータベースはほとんどRDBであるため、RDBはデータベースのことを指すといっても過言ではないでしょう。

実際に2018年の時点でRDBのシェアが世界のデータベースシステムの4割を占めるという調査結果も出ています。RDBの上位シェアに位置しているのが「Oracle」「MySQL」「Microsoft SQL Server」「PostgreSQL」です。

 

入門者も知っておきたいSQLの3種類の言語と命令文

ここからはSQL文の代表的な命令文をみていきましょう。SQLの命令文はDDL・DML・DCLの3種類で構成されています。

  • DDL(データ定義言語:Data Definition Language)

DDLは、主にデータベースの定義や作成に関わる命令文です。

「CREATE(データベースやテーブル作成)」「DROP(データベースやテーブル削除)」「ALTER(データベースやテーブルの変更)」などが挙げられます。

  • DML(データ操作言語:Data Manipulation Language)

データの取得・登録・更新・削除などのデータ操作に関わる言語をDMLと呼びます。よく使われる言語は「SELECT(データ取得)」「UPDATE(データ更新)」「DELETE(データ削除)」「INSERT(データ挿入)」などです。

  • DCL(データ制御言語:Data Control Language)

DCLは、主にトランザクションの制御やデータベースへのアクセスを制御するためのコマンドです。代表的なコマンドは「BEGIN(トランザクション開始)」「COMMIT(実行した処理の確定)」「ROLLBACK(データの戻し)」などです。トランザクションについては次項でお伝えします。

どれもRDBの操作には不可欠な言語です。

SQLの基礎知識:オブジェクト・トランザクション

続いて、SQLの重要な構成要素であるオブジェクトとトランザクションについてお伝えします。

  • オブジェクト:データベースの中にある物

オブジェクトには、「テーブル」「インデックス」「ビュー」など様々な種類があります。例えばOracleでは、「DBA_OBJECTS」と呼ばれるテーブルをSELECTで取得することにより、オブジェクトの一覧を参照できます。

  • トランザクション:1つの作業を表す単位

主に作業の発生からデータの確定までを指し、トランザクションが成功するとデータベースの変更が確定します。トランザクションの途中でエラーが発生した場合は、トランザクションを取り消すか、ロールバックと呼ばれる処理で処理前の状態に戻します。

SQL文を使用すると、トランザクションが生成されてオブジェクトを操作することになります。

 

いざ入門!SQLのCREATEやSELECTを使って新しい表を作る方法

ここからは実際にSQL文を使用して、データベースを操作してみましょう。今回はCREATEやSELECTを使用して、新しいデータベースと表を作ります。

今回はMySQLの環境でSQL文を実行してみます。まずは次のコマンドを実行してみましょう。

>CREATE DATABASE shop;

実行後に次のコマンドを実行すると、「shop」データベースが作成されたことを確認できます。

>SHOW DATABASES;
+------------------------------+
|Database                |
+------------------------------+
|…           |
|shop                    |
|…           |
+------------------------------+

続いて次のコマンドを実行し、「shop」データベースを使える状態にしましょう。

>>USE shop;

表を作るには、次のようなコマンドを実行します。

>CREATE TABLE テーブル名(
>   列名 データ型などの設定,
>   列名 データ型などの設定,
>   ...
>);

例として表「product」を作ってみます。

>CREATE TABLE product(
>    id INT,
>    price INT
>);

表が正常に作られたことは次のコマンドで確認できます。

>SHOW TABLES;
+------------------------------+
|Tables_in_shop           |
+------------------------------+
| product         |
+------------------------------+

表「product」にどのような列が指定されているか確認するには、次のコマンドを実行します。

>DESCRIBE shop;

「DESC shop;」と省略した形でも実行できます。

インストールするのはMySQL?PostgreSQL?

無料で使えるDBとして有名なのが、「MySQL」と「PostgreSQL」です。それぞれどのような特徴があるのかみていきましょう。

個人利用や中小企業におすすめなのはMySQLです。動作が早く、100件程度までのデータベースのソートはPostgreSQLよりも高速です。しかしながら、MySQLは組み込み系のシステムで使われることが多く、容量が小さいメモリやディスクで使うことを前提としていたため、機能はPostgreSQLよりも貧弱です。

MySQLは、シンプルなWebサービスなどに向いていて、たとえば画面を下にスクロールするたびに次のデータを読み込むなどといったサービスには適しているといえます。

MySQLのインストールについては、インストーラをMySQL公式ホームページからダウンロードして実行し、PATHの設定などを実施することで使用できます。

ダウンロード

MySQL が高速性を追求していることに対し、PostgreSQL は機能を追及しています。大量のデータソートや、Pythonなどを利用した外部プロシージャ利用がメリットです。Oracle Databaseからの移行や詳細な分析をするシステムなどに向いています。

PostgreSQLのインストールについては、MySQLと同様にPostgreSQLの公式サイトからインストーラをダウンロードして実行し、PATHの設定などを実施することで使用できます。

MySQLについては、MySQLのインストール方法についての記事で紹介しています。

 

この記事では、SQL文でできること、表の作り方についてお伝えしました。

SQL文は入門者には敷居が高く感じるのは事実です。しかしながら、コマンドを実行して内容を覚えていけば、決して難しいことはありません。

昨今ではオンラインでのSQL実行環境も増えてきており、個人でも手軽に学習できる環境が整ってきています。

ぜひSQLを使ってみて、データの解析などに役立てていきましょう。

 

目的別!ITスキル講座

基礎的なパソコン操作の知識があればOK!

最新!AWS試験対策講座

日本を代表するデータサイエンティスト辻真吾氏による人気講座

初級者から学べる人工知能講座の決定版