AWS Cloud9での使用が前提です。
この記事の目次
DBの基本的なデータ構造(呼称)

①ユーザーテーブル:DB全体
②カラム:列
③レコード:行
④フィールド:セル
USE:使用するデータベースを指定するコマンド
--USE DATABASE データベース名
--例
USE example;
CREATE:色々生成
データベース作成
--CREATE DATABASE データベース名
--例
CREATE DATABASE example;
テーブル作成
/*
CREATE TABLE テーブル名(
カラム名 データ型,
カラム名 データ型
);
*/
--例
CREATE TABLE users(
id int,
user_name1 varchar(32),
user_name2 varchar(32),
birth date,
age int
);
SHOW:色々確認
テーブルを確認
SHOW TABLES;
カラムを確認
--SHOW COLUMNS FROM データベース名
--例
SHOW COLUMNS FROM users;
SELECT:テーブルからデータを取得する
テーブルから任意の値を抽出する
(カラム名をカンマ区切りにすることで、複数のカラムを指定できる。)
--SELECT カラム名 FROM テーブル名;
--例1
SELECT user_name1 FROM users;
--例2
SELECT * FROM users;
--「* = 全部」の意味
--重複なしで抽出
SELECT DISTINCT user_name FROM users;
WHERE:SELECT文と一緒に使い、絞り込む
-- 基本的な使い方
ーーSELECT カラム名 FROM テーブル名 WHERE カラム名 比較演算子 条件値
-- 40歳のユーザーを抽出
SELECT * FROM users WHERE age = 40;
-- 氏名「日本太郎」をWHERE句を使って抽出
SELECT * FROM users WHERE user_name1 = "日本太郎";
-- 「タロ」を含むユーザーをWHERE句を使って抽出
SELECT * FROM users WHERE user_name2 like '%タロ%';
ORDER BY:SELECT文と一緒に使い、表示順を指定して抽出
-- ORDER BYの基本形
/*
SELECT [取得したい要素]
FROM テーブル名
ORDER BY ソートしたい要素 [昇順・降順の指定(省略時は昇順)];
*/
--例
-- ユーザーテーブルを年齢でソート(昇順)
SELECT * FROM users ORDER BY age;
-- ユーザーテーブルを年齢でソート(降順)
SELECT * FROM users ORDER BY age DESC;
GROUP BY:SELECT文と一緒に使い、グループ分けを行って抽出
-- 基本形
/*
SELECT [取得したい要素]
FROM [使用テーブル]
GROUP BY [グループ化したい要素];
*/
-- 都道府県でグループ分けをしてカウントします。
SELECT pref, count(*) FROM users GROUP BY pref;
UPDATE:データを更新するコマンド
-- 条件と一致する列の値を更新する
--UPDATE テーブル名 SET カラム名 = 値 WHERE 条件式;
-- id1の都道府県を「埼玉」に更新
UPDATE users SET pref = "埼玉" WHERE id = 1;
-- id2~4の勝ち点を一気に更新
UPDATE acl_group_e SET
winning_point =
case id
WHEN 2 THEN 8
WHEN 3 THEN 0
WHEN 4 THEN 5
END
WHERE id IN(2,3,4);
INSERT:テーブルに新しいレコードを追加する
-- 基本形
--INSERT INTO テーブル名 (カラム名) VALUES (値);
--例
INSERT INTO users
(user_name1,user_name2,birth,age,pref)
VALUES
("川口 隆介","カワグチ リュウスケ","1989/08/02","29","茨城");
-- 複数のデータをまとめて追加する。
/*
INSERT INTO テーブル名
(カラム名)
VALUES
(値),
(値),
(値);
*/
--例
INSERT INTO users
(user_name1,user_name2,birth,age,pref)
VALUES
("岩上 定雄","イワカミ サダオ","1998/1/1",21,"兵庫"),
("若林 莉歩","ワカバヤシ リホ","2002/12/10",16,"埼玉"),
("砂川 勝彦","イサガワ カツヒコ","2008/12/18",10,"鹿児島"),
("浜口 広行","ハマグチ ヒロユキ","1969/6/15",50,"和歌山");
ALTER:テーブル構造に変更、追加、削除を行う
-- 基本形
--ALTER TABLE テーブル名 変更操作;
-- カラムを追加する。
--ALTER TABLE テーブル名 ADD (カラム名 データ型)
-- データ型や制約変更
--ALTER TABLE テーブル名 MODIFY カラム名 データ型
--制約を追加
--ALTER TABLE テーブル名 ADD オプション(NOT NULL/PRIMARY KEYなど) (カラム名)
-- オプション削除(確認方法は別途掲載します。)
--ALTER TABLE テーブル名 DROP INDEX Key_name;
-- カラム削除
--ALTER TABLE テーブル名 DROP COLUMN カラム名
--例
-- 納品日カラムを追加する。
ALTER TABLE products ADD (delivery_date date);
-- 商品コードカラムをint型から文字列に変更
ALTER TABLE products MODIFY product_cd varchar(11);
-- 商品コードカラムにUNIQUE KEY(重複禁止オプション)を追加
ALTER TABLE products ADD UNIQUE KEY (product_cd);
-- 商品コードカラムのUNIQUE KEY(重複禁止オプション)を削除
ALTER TABLE products DROP INDEX product_cd;
-- 最後に追加したカラムを削除
ALTER TABLE products DROP COLUMN delivery_date;
-- product_cdを数値に変更
ALTER TABLE products MODIFY product_cd int(11);
-- テーブル名をfruitsに変更
ALTER TABLE products RENAME to fruits;
DELETE:テーブルやレコード、カラムを削除する
-- 基本形
--DELETE FROM テーブル名 WHERE 条件式;
--例
-- usersテーブルのレコードを削除
DELETE FROM users WHERE birth = "1969-06-15";
LIMIT:使用するデータベースを指定するコマンド
-- 基本形
--DELETE FROM テーブル名 WHERE 条件 LIMIT 数値
-- ユーザーテーブルで都道府県が埼玉のユーザー2人のうち、1人を削除
DELETE FROM users WHERE pref = "埼玉" LIMIT 1;
TRUNCATE:テーブルの全レコードを削除(ほぼ使わない)
-- 基本形
--TRUNCATE TABLE テーブル名
--例
-- ユーザーテーブルを削除
TRUNCATE TABLE users;
DROP:テーブルを含めて全削除(使わない)
-- 基本形
--DROP TABLE テーブル名
--例
DROP TABLE products;
テーブル結合
INNER JOIN:内部結合
-- 基本形
/*
SELECT カラム名 FROM テーブル名1
INNER JOIN テーブル名2
ON 結合の条件(共通するカラム名=共通するカラム名)
*/
-- 部署コードカラムが共通するので、部署コードカラムを基にemployeesテーブルと、deptsテーブルを結合させます。
SELECT * FROM employees
INNER JOIN depts
ON employees.dept_code = depts.dept_code;
OUTER JOIN:外部結合(基本的にLEFT JOINだけでOK)
-- LEFT JOINします。
SELECT * FROM depts
LEFT JOIN employees
ON depts.dept_code = employees.dept_code;
とりまこんな感じで
![]() |
![]() |
---|
コメントを残す