以前初めてPythonを使って、データの集計作業をしようとしたことがあったのですが、上手く集計することができずに悔しい思いをしました。方法は色々あるかもしれませんが、DBを作って、データを登録しても、そのデータを活かすことができなかったらもったいないと素直に思いました。なので、「スッキリわかるSQL入門」と「達人に学ぶSQL徹底指南書」いう技術書を使って、DB内のデータを操作するための言語である「SQL」について勉強を始めました。
データベースについて
データベースはいくつかの種類があるが、複数の表の形式でデータを管理するリレーショナルデータベース(RDB)が広く使われている。この表のことをテーブルという。テーブルは列(column)と行(row)で構成される。EXCELの表をイメージすると分かりやすかったです。
SQLの送り先はデータベースのファイルではなく、データベース管理システム(DBMS)。このDBMSが受け取ったSQL文を読み取り、命令に応じて検索や書き換えを実行します。中でもRDBを取り扱うものをRDBMSという。(以下は一例)
RDBMS製品名 | 提供元 |
Oracle Database | オラクル |
SQL Server | マイクロソフト |
MySQL | オラクル |
PostrageSQL | PostgreSQL Global Development Group |
SQLite | D.Richard Hipp |
SQLの基本ルール
①記述の途中で改行してもいい
②予約語は大文字、小文字は区別されず、列名などに利用できない
③ハイフン2つ(–)あるいは「/* 〜 */」でくくると文中にコメントを記述できる
④セミコロン(;)を使うことで、SQL文の終了を表す。特に長いSQL文には有効
⑤テーブルの各列にはデータ型が指定されていて、指定されたデータ型のデータのみ列に格納できる
データ種別 | 区分 | データ型名 |
数値 | 整数 | INTEGER型 |
数値 | 少数 | DECIMAL型、REAL型 |
文字列 | 固定長 | CHAR型(文字数に関わらず格納される文字数は固定。不足分は空白で埋められる) |
文字列 | 可変長 | VARCHAR型(文字数に合わせて文字数のデータを格納。不足は発生しない) |
日付・時刻 | ー | DATETIME型、DATE型、TIME型 |
基本のSQL文
SQL文は基本的には 4つしかない。これらを上手く組み合わせることで複雑な処理ができる。
SQL文 | 役割 |
SELECT | データの検索 |
INSERT | データの追加 |
DELETE | データの削除 |
UPDATE | データの編集 |
以下、簡単なSQL文の書き方
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECT 検索したい列名(「,」を使って複数記述可) FROM 検索したいテーブル名 ※SELECT * とすることで全列を検索することができる UPDATE 編集したいテーブル名 SET 編集したい列名 = 編集後の値(「,」を使って複数記述可) DELETE FROM 削除したいデータが保存されているテーブル名 INSERT INTO データを追加したいデーブル名 (列名1,列名2,列名3,列名4,・・・) VALUES(値1,値2,値3,値4,・・・) |
これ基本的なSQL文の書き方は何となく分かりましたが、もっとピンポイントでデータを取得したいので、
次はWHERE句という修飾語のようなものを使って、データを操作する方法について学習していきたいと思います。