SQL(更新中) - user000422/0 GitHub Wiki

データベースを削除 , 作成 , 選択

drop database if exists データベース名 ; -- データベースを削除
create database if not exists データベース名 ; -- データベースを作成
use データベース名 ; -- 使用するデータベースを選択

テーブルを作成 create table テーブル名 ( … );
テーブル名は複数形で ---s

create table テーブル名(
	id int, -- id を 整数型の int で作成
	password varchar(16), -- password を 文字列16文字以下の varchar(16) で作成
	type int DEFAULT 1, -- type の 初期値(指定されない場合のデフォルト値)設定
	update_date datetime -- 更新日用のカラム
);

id int primary key not null auto_increment … ID連番のテンプレート

テーブルへデータを挿入
INSERT INTO テーブル名 ( データA, データB ) VALUES(A挿入データ, B挿入データ) ;

-- 単一
INSERT INTO blueteam(id, password) VALUES(1, "123");

-- 複数
INSERT INTO blueteam(id, password) VALUES(1, "123"),(2, "456");

SELECT( 選択、検索 )

SELECT * FROM sample_table; -- 基本型

-- カラムを指定して検索 複数条件指定はカンマで区切る
SELECT id FROM sample_table;
SELECT id, password FROM sample_table;

-- WHERE 基本型
SELECT * FROM テーブル名 WHERE point >= 80;

-- BETWEEN 範囲検索( 最小値 AND 最大値 )
SELECT * FROM テーブル名 WHERE point BETWEEN 60 AND 80;

-- IN 含まれているか
SELECT * FROM テーブル名 WHERE team IN ('red','green');

-- NOT IN 含まれていなければ
SELECT * FROM テーブル名 WHERE team NOT IN ('red','green');

-- 条件つき検索( 名前 の 頭文字 が T で 始まる データ )
SELECT * FROM テーブル名 WHERE name like 'T%';

-- NOT NULL NULL以外
SELECT * FROM テーブル名 WHERE name IS NOT NULL;

-- LIMIT 検索結果の上限設定
SELECT * FROM sample_table LIMIT 1;
SELECT * FROM sample_table WHERE color='red' LIMIT 1; -- 条件

並び替え

SELECT * FROM sampleTable ORDER BY 基準フィールド ASC;  -- ASC 昇順(省略可)
SELECT * FROM sampleTable ORDER BY 基準フィールド DESC; -- DESC 降順

-- 複数指定
SELECT * FROM テーブル名 ORDER BY 基準フィールドA DESC, 基準フィールドB DESC;

サブクエリ

SELECT stock
  ( SELECT item FROM sample_table WHERE price < 100 ) AS item
FROM sample_table;

集計

SELECT COUNT(*) FROM sample_table; -- 件数
SELECT COUNT(*) AS レコード件数 FROM sample_table; -- 集計名設定(件数)

SELECT SUM(フィールド名) FROM sample_table; -- 合計値
SELECT MAX(フィールド名) FROM sample_table; -- 最高値
SELECT AVG(フィールド名) FROM sample_table; -- 平均値

更新

-- テーブル の データ を 更新
UPDATE テーブル名 SET フィールド名 =WHERE 条件句;

-- 更新( id が 1 の point の データを 100 に 更新 )
UPDATE テーブル名 SET point = 100 WHERE id = 1;

DELETE( 削除 )

-- 削除
DELETE FROM テーブル名 WHERE 条件句;

-- 削除( point が 60 未満 の データ を 削除 )
DELETE FROM テーブル名 WHERE point < 60;

-- 削除( 指定 テーブル の データ を 全て 削除 )
DELETE FROM テーブル名;

構造変更

-- 構造変更( フィールド1 の 後 に 新フィールド を 追加 )
ALTER TABLE テーブル名 ADD 新フィールド名 AFTER フィールド1;

-- 構造変更( フィールド1 の 名称 を 新フィールド名 に 変更 )
ALTER TABLE テーブル名 CHANGE フィールド1 新フィールド;

-- 構造変更( 既存フィールド に オプション を 追加 )( primary key 等 )
ALTER TABLE テーブル名 ADD オプション名(フィールド名);

-- 構造変更( 既存フィールド に オプション を 追加 )( auto_increment 等 )
ALTER TABLE テーブル名 CHANGE フィールド名 フィールド名 データ型 not null オプション名;

-- 構造変更( フィールドオプション を 削除 )
ALTER TABLE テーブル名 DROP オプション名;

テーブル結合
JOINで結合し、ONで関連させるカラムを指定
NULlを含む結果が欲しい場合は LEFT JOIN、そうでなければ INNER JOIN
select 後 に「 * 」も 使える
UNIONは重複レコード以外すべて、UNIONALLは重複レコードもすべて

-- 内部結合( テーブルA の フィールド2 と テーブルB の フィールド2 が 一致する テーブルA の フィールド1 と テーブルB の フィールド2を 結合表示 )
SELECT テーブルA.フィールド1, テーブルB.フィールド1
FROM テーブルA JOIN テーブルB
ON テーブルA.フィールド2 = テーブルB.フィールド2;

-- 外部結合 LEFT()
SELECT テーブルA.フィールド1,テーブルB.フィールド1
FROM テーブルA LEFT JOIN テーブルB
ON テーブルA.フィールド2 = テーブルB.フィールド2;

-- 外部結合 LEFT()
SELECT * FROM テーブルA LEFT JOIN テーブルB
ON テーブルA.フィールド1 = テーブルB.フィールド2;

⚠️ **GitHub.com Fallback** ⚠️