MENU

SQL 一番最初に最低限押さえるべきこと

本記事では、私がSQLを学ぶにあたって、一番基礎となる最初に最低限押さえるべきと感じた内容についてまとめました。

目次

初歩的な知識

データベースの基本操作

データベースの作成CREATE DATABASE データベース名;
データベースの選択USE データベース名;
データベースの一覧表示SHOW databases;
データベースの削除DROP DATABASE データベース名;

テーブル操作

テーブルの一覧表示SHOW tables;
テーブルの作成CREATE TABLE テーブル名 ( 列名1 データ型, 列名2 データ型, ... );
テーブルの削除DROP TABLE テーブル名;

データの操作

データの挿入INSERT INTO テーブル名 (列名1, 列名2, ...) VALUES (値1, 値2, ...);
データの更新UPDATE テーブル名 SET 列名 = 新しい値 WHERE 条件;
データの削除DELETE FROM テーブル名 WHERE 条件;

データの抽出

全ての行を選択SELECT * FROM テーブル名;
特定の列を選択SELECT 列名1, 列名2 FROM テーブル名;
条件に基づいて抽出SELECT * FROM テーブル名 WHERE 条件;
ソートSELECT * FROM テーブル名 ORDER BY 列名 ASC|DESC;
データの結合SELECT * FROM テーブル1 JOIN テーブル2 ON 条件;

集計関数

合計SELECT SUM(列名) FROM テーブル名;
平均SELECT AVG(列名) FROM テーブル名;
最大値SELECT MAX(列名) FROM テーブル名;
最小値SELECT MIN(列名) FROM テーブル名;
行数SELECT COUNT(*) FROM テーブル名;

その他用語

DDL

  • Data Definition Languageの略、データ定義言語と呼ばれるSQLの命令のこと
  • 主なデータ定義言語
CREATE新しいテーブルやビューなどのデータベースオブジェクトを作成する
DROP既存のデータベースオブジェクトを削除する
ALTER既存のテーブルベースオブジェクトを変更する
TRUNCATEテーブルを再作成する(テーブル内のデータを全削除する)

実際に使用したSQL文

テーブル名をあいまい検索

名前に「department」を含むテーブルを検索SHOW TABLES like '%department%';

「%」を使用すると、前後に何を含むか問わずdepartmentが含まれるテーブルを探してくれる

その他カラム操作

カラムのデータ型を確認(userテーブル内)SHOW COLUMNS FROM user;
カラム名を変更(department→depart)ALTER TABLE user RENAME COLUMN department TO depart;
カラムのデータ型を変更ALTER TABLE user ALTER COLUMN age INT;

表示操作

実行結果の重複レコードを1つにまとめるSELECT DISTINCT user.id
表示件数を限定するSELECT * FROM テーブル名 LIMIT 10;

案件で学んだこと

ASはWHERE内では利用できない

  • ASを使用してエイリアスを作成した場合、WHERE句内では使用できない
  • HAVINGが似たような形で利用できる
WHERE句元々のデータでの抽出条件を指定可能(加工後データNG)
HAVING句抽出条件を指定可能(加工後データOK)

複数テーブルを結合するときはテーブル名.カラム名で指定する

  • 複数のテーブルを参照しているが故に、どのテーブルのどのカラムか曖昧というエラーが発生する
エラー例Unknown column 'user.id' in 'where clause’

複数IDを検索したい場合

複数IDを抽出条件として指定WHERE id IN (00001,00003,00005);
数値の場合は値範囲で指定可能AND (pr_source_id BETWEEN 00001 AND 00005);

参考コンテンツ

WEB

DDLについて確認しました。ありがとうございます!

ITを分かりやすく解説
DDL(データ定義言語)とは データ定義言語(DDL) DDLとは DDL(Data Definition Language)とは、データ定義言語と呼ばれるSQLの命令のことです。 主なデータ定義言語は次の通り。 データ定義言語

WHERE句の部分で参考にしました。ありがとうございます!

株式会社GOAT - システム開発, 受...
[SQL]別名を付けた(AS句)カラムをWHERE句で使えなかった話。(解決方法記載あり。) - 株式会社GOAT どうも神聖眼鏡です。 早いもので1月も終わってしまいますね。 一年重ねていくごとに1年はあっという間だなと20 […]
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

関西在住のWebエンジニア。二児の娘と妻との4人家族。
自身の経験や知識をせっかくまとめるなら、誰かの参考になるかもと考えブログを開設。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

目次