- システム開発
- 2020/03/19
入門者でもわかる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を使ってみて、データの解析などに役立てていきましょう。
エンジニアに役立つ目的別講座
Pythonの基本~応用をマスター
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

現役シリコンバレーエンジニアが教えるPython入門講座。Python3の基本を取得できます。
Webサイトのコーディングができるように
ウェブ開発入門完全攻略コース - プログラミング をはじめて学び創れる人へ!未経験から現場で使える開発スキルを習得!

HTML, CSS, Bootstrap, JavaScript, MySQL, Ruby, Ruby on Rails, AWS Cloud9, Git, GitHubを用いたWebアプリケーション開発の方法を総合的に学べます。
AWSを基礎から学ぶ
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)

AWSの基本資格「AWS 認定ソリューションアーキテクト – アソシエイト試験」を合格を目指し、そのための知識や経験を獲得できるように!
ITプロジェクトの資料作成はお任せ!
手を動かして学ぶITプロジェクトの資料作成!システム開発のドキュメンテーション技術と成果物テンプレート

ITプロジェクトの資料作成を学べる人気講座。フェーズ毎に、どんな資料を作ればいいのか悩んでいる人におすすめ。
関連記事

MySQL入門者でもわかる!3ステップのインストール方法を解説
システムを企画・設計する上で、データの管理方法を必ず検討す…

Microsoft Azure(アジュール)とは?わかりやすく解説!
Microsoft Azureはマイクロソフト社が提供するクラウドサービス…

Webpackとは?メリットや使い方、インストール方法を初心者向けに解説
『Webpack』とは、モジュールバンドラーツールのことで、Node.…

LaravelのModelを初心者向けに解説!作成方法や使い方、実践までを即理解
LaravelのModelについて、Laravel初心者向けに解説していきます…
最新情報・キャンペーン情報発信中