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

①ユーザーテーブル:DB全体
②カラム:列
③レコード:行
④フィールド:セル
USE:使用するデータベースを指定するコマンド
1 2 3 4 |
--USE DATABASE データベース名 --例 USE example; |
CREATE:色々生成
データベース作成
1 2 3 4 |
--CREATE DATABASE データベース名 --例 CREATE DATABASE example; |
テーブル作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* CREATE TABLE テーブル名( カラム名 データ型, カラム名 データ型 ); */ --例 CREATE TABLE users( id int, user_name1 varchar(32), user_name2 varchar(32), birth date, age int ); |
SHOW:色々確認
テーブルを確認
1 |
SHOW TABLES; |
カラムを確認
1 2 3 4 |
--SHOW COLUMNS FROM データベース名 --例 SHOW COLUMNS FROM users; |
SELECT:テーブルからデータを取得する
テーブルから任意の値を抽出する
(カラム名をカンマ区切りにすることで、複数のカラムを指定できる。)
1 2 3 4 5 6 7 8 9 10 11 |
--SELECT カラム名 FROM テーブル名; --例1 SELECT user_name1 FROM users; --例2 SELECT * FROM users; --「* = 全部」の意味 --重複なしで抽出 SELECT DISTINCT user_name FROM users; |
WHERE:SELECT文と一緒に使い、絞り込む
1 2 3 4 5 6 7 8 9 10 11 |
-- 基本的な使い方 ーー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文と一緒に使い、表示順を指定して抽出
1 2 3 4 5 6 7 8 9 10 11 12 13 |
-- ORDER BYの基本形 /* SELECT [取得したい要素] FROM テーブル名 ORDER BY ソートしたい要素 [昇順・降順の指定(省略時は昇順)]; */ --例 -- ユーザーテーブルを年齢でソート(昇順) SELECT * FROM users ORDER BY age; -- ユーザーテーブルを年齢でソート(降順) SELECT * FROM users ORDER BY age DESC; |
GROUP BY:SELECT文と一緒に使い、グループ分けを行って抽出
1 2 3 4 5 6 7 8 9 |
-- 基本形 /* SELECT [取得したい要素] FROM [使用テーブル] GROUP BY [グループ化したい要素]; */ -- 都道府県でグループ分けをしてカウントします。 SELECT pref, count(*) FROM users GROUP BY pref; |
UPDATE:データを更新するコマンド
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-- 条件と一致する列の値を更新する --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:テーブルに新しいレコードを追加する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
-- 基本形 --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:テーブル構造に変更、追加、削除を行う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
-- 基本形 --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:テーブルやレコード、カラムを削除する
1 2 3 4 5 6 |
-- 基本形 --DELETE FROM テーブル名 WHERE 条件式; --例 -- usersテーブルのレコードを削除 DELETE FROM users WHERE birth = "1969-06-15"; |
LIMIT:使用するデータベースを指定するコマンド
1 2 3 4 5 |
-- 基本形 --DELETE FROM テーブル名 WHERE 条件 LIMIT 数値 -- ユーザーテーブルで都道府県が埼玉のユーザー2人のうち、1人を削除 DELETE FROM users WHERE pref = "埼玉" LIMIT 1; |
TRUNCATE:テーブルの全レコードを削除(ほぼ使わない)
1 2 3 4 5 6 |
-- 基本形 --TRUNCATE TABLE テーブル名 --例 -- ユーザーテーブルを削除 TRUNCATE TABLE users; |
DROP:テーブルを含めて全削除(使わない)
1 2 3 4 5 |
-- 基本形 --DROP TABLE テーブル名 --例 DROP TABLE products; |
テーブル結合
INNER JOIN:内部結合
1 2 3 4 5 6 7 8 9 10 11 |
-- 基本形 /* 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)
1 2 3 4 |
-- LEFT JOINします。 SELECT * FROM depts LEFT JOIN employees ON depts.dept_code = employees.dept_code; |
とりまこんな感じで
![]() |
![]() |
---|
コメントを残す