SQLでデータを処理したいものの、
・データベースの基礎知識が分からない…。
・SQLの使い方が知りたい…。
という方も多いのではないでしょうか。そこでこの記事では、
・SQLやデータベースとは何か
・MySQLの基本的な使い方
について、サンプルコードを交えて解説します。
SQLを使うのが初めての方でも、この記事を読めば、SQLの文法やデータベースの扱い方が身に付きます。
公開日:2024年5月29日
SQLとは?【データベース言語の1つ】
SQLとは、「Structured Query Language」の略で、直訳すると「構造化問い合わせ言語」という意味です。コンピュータ言語の一つですが、プログラミング言語ではありません。リレーショナルデータベース(RDB)のデータを操作するための言語です。
データベースへ指示を出す言語は「SQL文」と呼び、命令文を組み合わせて処理を実施します。SQL文はANSI(American National Standards Institute:米国規格協会)やISO(International Organization for Standardization:国際標準化機構)が規格化しています。そのため、別々のプラットフォームである「Oracle Database」「Microsoft SQL Server」「MySQL」などでもほぼ同じように利用できます。
SQLは対話型の操作でコンパイル不要なため、大量のデータを効率よく操作でき、使い勝手の良い言語です。
プログラミング言語との違い
データベース言語はプログラミング言語と異なり、システムの開発などはできません。
データの管理や検索に特化していて、簡単なコードで記述できることがデータベース言語の特徴です。一方、プログラミング言語では様々な方法でデータを処理するプログラムを作成できる分、コードは複雑です。
シンプルながら大規模なデータ処理をする場合はデータベース言語、複雑なデータ処理をする場合はプログラミング言語が適しています。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >データベースとは?
データベースとは、管理しやすいように整理されたデータ群です。検索や蓄積が出来るように設計されており、データの配置を規定する考え方をデータモデルといいます。
いくつかあるデータモデルの中でも、「関係モデル(リレーショナルデータモデル)」は主要なモデルの一つです。関係モデルにより設計されたデータベースを、関係データベース(リレーショナルデータベース)といい、これの頭文字を略して「RDB」といいます。
データベースを運用するためには、データベースの管理システムが必要です。RDBの管理システムは、「関係データベース管理システム(RDBMS)」と呼ばれます。そして、RDBMSを通じてデータベースを操作するための言語が、SQLなどのデータベース言語です。
データベースは現在、商品情報の管理や、サービス利用者の情報管理など、様々な分野や状況で利用されています。
データベースのシェアを集計している「DB-ENGINES」によれば、2024年5月時点で、「Oracle」「MySQL」「Microsoft SQL Server」「PostureSQL」のシェアが高く、これらは全てRDBMSです。2016年に登場した「Snowflake」は近年急激にシェアを伸ばしており、今後の動向が気になるデータベースです。
SQLでできること
SQLでは次のような処理ができます。
- データの条件検索
検索の際に詳細な条件を指定できます。効率よくデータを検索できるため便利です。
- データの取得・登録・更新・削除
データの条件検索と組み合わせると、特定の行や列を指定してデータの取得が容易に実施できます。また登録や更新、削除も同様に指定の行にのみ実施できます。
- テーブルの作成・削除・変更
テーブルとはデータを格納する表のことです。必要に応じてテーブルの作成・変更・削除ができるので、思い通りにテーブルを構成できます。
膨大な量のデータがRDBによって整理されているため、これらの処理も効率よく実施可能です。
命令のためのSQL文を頭に入れておく必要はありますが、一度、方法を覚えてしまえば、それ以降は容易に処理を実施できます。
SQLの主な機能の分類
SQLでは、多くの命令を用いてデータベースを操作します。SQLの命令は、機能別にDDL・DML・DCLの3種類に分類することが可能です。
ここでは、SQL文の代表的な命令文をみていきましょう。
DDL(データ定義言語)
DDLは、データベースの構造を定義するための命令文の総称です。DDLのコマンド群には、次のような命令文があります。
- CREATE:データベースやテーブルの作成
1 2 3 4 5 6 |
CREATE TABLE テーブル名 ( 列1の名前 列1のデータ型, 列2の名前 列2のデータ型, 列3の名前 列3のデータ型 ); |
- DROP:データベースやテーブルの削除
1 |
DROP TABLE テーブル名; |
- ALTER:データベースやテーブルの変更
1 2 |
ALTER TABLE テーブル名 ADD CLOLUMN 追加する列の名前 追加する列のデータ型; |
- JOIN:テーブルの結合
1 2 3 4 |
SELECT * FROM テーブル1 JOIN テーブル2 ON テーブル1.列1 = テーブル2.列2; |
- TRUNCATE:テーブルのデータを削除
1 |
TRUNCATE TABLE テーブル名; |
DML(データ操作言語)
DMLは、データベース内のデータを操作するための命令文の総称です。DMLのコマンド群には、次のような命令文があります。
- SELECT:データ取得
1 |
SELECT 列名1, 列名2, … FROM テーブル名 WHERE 抽出条件; |
- UPDATE:データ更新
1 |
UPDATE テーブル名 SET 更新処理 WHERE 条件式; |
- DELETE:データ削除
1 |
DELETE FROM テーブル名 WHERE 条件式; |
- INSERT:データ挿入
1 |
INSERT INTO テーブル名(列名1, 列名2, ……) VALUES(値1, 値2, ……); |
DCL(データ制御言語)
DCLは、データベースのセキュリティとアクセス権限を管理するための命令文の総称です。DCLのコマンド群には、次のような命令文があります。
- BEGIN:トランザクション開始
1 |
BEGIN; |
- COMMIT:実行した処理の確定
1 |
COMMIT; |
- ROLLBACK:データの戻し
1 |
ROLLBACK; |
- GRANT:ユーザ権限付与
1 |
GRANT 権限名 ON テーブル名 TO ユーザ名; |
- REVOKE:ユーザ権限剥奪
1 |
REVOKE 権限名 ON テーブル名 FROM ユーザ名; |
SQLの基本命令をMySQLで実践してみよう!
ここからは代表的なSQLであるMySQLを使って、データベースの基本操作を実践します。MySQLのインストールについては「MySQL入門者でもわかる!3ステップのインストール方法を解説」をご覧ください。
SQLの基本命令は以下の通りです。
- オブジェクトを作成:CREATE
- データの検索:SELECT
- データの追加:INSERT
- データの更新:UPDATE
- データの削除:DELETE
それぞれ詳しく解説します。
オブジェクトを作成:CREATE
CREATEはオブジェクトを作成する命令です。
テーブルを作成する場合は、
1 2 3 4 5 6 7 |
create table [テーブル名]( [列名1] [列名1のデータ型], [列名2] [列名2のデータ型], [列名3] [列名3のデータ型], …… ); |
以上のように記述します。
SQLは「;」までを1文と定義しますので、途中で改行しても問題ありません。
例えば、商品管理用のテーブル「商品管理」を作成したい場合は、次のように記述します。
ID | 商品名 | 値段 | |
商品A | |||
商品B | |||
…… |
1 2 3 4 5 6 |
create table 商品管理( ID int 商品名 char, 値段 int ) |
データの検索:SELECT
テーブルからデータを取得する際に使用するのが「SELECT」です。
SELECTは以下のように使用します。
1 |
SELECT [列名1], [列名2], … FROM [テーブル名] [WHERE抽出条件]; |
列の全てのデータを表示したい場合は、先の「商品管理」であれば、以下のように記述します。
1 |
SELECT 商品名, 値段 FROM 商品管理 |
また、列名に「*」を記述することで、全ての列を取得することができます。
条件式を利用して、条件に合ったデータを取得することができます。
1 |
SELECT 商品名 FROM 商品管理 WHERE 値段 >= 5000; |
このように記述することで、5000円以上の商品名を抽出することができます。
条件式は「AND」や「OR」演算子で複数記述することも可能です。
データの追加:INSERT
テーブルにデータを追加する場合は、「INSERT」を使用します。
1 |
INSERT INTO [テーブル名]( [列名1], [列名2], ……) VALUES( [値1], [値2], ……); |
サンプルコードは以下の通りです。以下のコードでは商品管理のテーブルに対してIDが「001」、商品名が「商品A」、値段が「1500」というデータを追加しています。
1 |
INSERT INTO 商品管理( ID, 商品名, 値段 ) VALUES( 001, ‘商品A’, 1500 ); |
データの更新:UPDATE
データの更新には「UPDATE」を使用します。
1 |
UPDATE [テーブル名] SET [更新処理] [WHERE条件式] |
サンプルコードは以下の通りです。以下のコードでは商品管理のテーブル内の「商品A」について、値段を「1000」に更新しています。
1 |
UPDATE 商品管理 SET 値段 = 1000 WHERE 商品名 = ‘商品A’; |
データの削除:DELETE
データの削除には「DELETE」を使用します。
1 |
DELETE FROM [テーブル名] [WHERE条件式] |
サンプルコードは以下の通りです。以下のコードでは、商品管理のテーブルにあるIDが「001」のデータを削除しています。
1 |
DELETE FROM 商品管理 WHERE ID = 001; |
SQLを学んでデータ分析に役立てよう
今回は、SQLの入門者向けに、データベースの基礎知識やSQLの使い方について解説しました。
SQLはデータベースを管理するための言語であり、大量のデータを扱うためには、SQLの習得が必須です。本記事を参考に、SQLへの第一歩を踏み出してみませんか?
SQLにさらについて詳しく学びたい方には、以下の講座がおすすめです。
はじめてのSQL ・データ分析入門 -データベースのデータをビジネスパーソンが現場で活用するためのSQL初心者向コース
MySQL 使用。エクセル作業からのステップアップ!データベースのデータを取得し、効果的にレポーティングしたいビジネスパーソンにおすすめ!データベースを操作する言語SQLを短期間で身につけビジネスの現場で使うための実践型カリキュラム。
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
基本的な構文問題がより実務で依頼されそうであろう想定に基づき出されており、そこからさらに自分でこういった場合はどうすれば抽出できるだろうといった観点が生まれ、SQLを考えることができました。それにより、学習効果が高まった気がします。また実務でのあるあるなどのコラムも楽しく学習させていただきました。
評価:★★★★★
一つ一つのセクションで実際にSQLを動かしながら学んでいくようにコースが組まれており、とても実践的に学ぶことができました。データ抽出指示も実際にオフィスで依頼されそうな内容で、仕事としてSQLを扱う場合のイメージがわきました。
SQLを習得して効率的にデータ管理をしましょう。
最新情報・キャンペーン情報発信中