ほぼ自分用備忘録です。
詳しい説明は参考URLを見てね。
取り出したい系(抽出)
・ユニークな値を取り出したい。 DISTINCT
参考:https://www.dbonline.jp/mysql/select/index13.html
SELECT DISTINCT col_name from table_name;
・条件に一致した行だけ欲しい。WHERE
参考:https://www.sejuku.net/blog/51583
SELECT * FROM table1 WHERE col_name = 'hoge';
・どれかに一致した行だけ欲しい。WHERE IN()
参考:https://www.dbonline.jp/mysql/select/index6.html
SELECT * FROM table_name
WHERE name in ('スライム', 'ドラキー', 'ももんじゃ');
・ANDとOR両方使いたいよ。(col1 = 'a' OR col1 = 'b') AND col2 = 0
参考:https://kino-code.com/sql13/
SELECT * FROM table_name
WHERE (name = 'スライム' OR name = 'ドラキー') AND address = 'トラペッタ';
・あいまい検索したいよ。LIKE
参考:https://qiita.com/chihiro/items/46da8571d4cf37d3123c
SELECT * FROM WHERE name LIKE 'スラ%';
SELECT * FROM WHERE name LIKE '%イム';
・IDをKeyにした配列がほしいよ。
参考:https://qiita.com/mpyw/items/d52351bd1a8068344cc2
入れたい系(挿入)
・データを挿入したいよ。INSERT INTO
参考:https://www.dbonline.jp/mysql/insert/index1.html
INSERT INTO table_name (col1, col2) VALUES ('a', 'b');
・複数レコード挿入。(col1,col2) VALUES (1,'a'),(2,'b')...
参考:https://johobase.com/multiple-insert-sql/
INSERT INTO table_name
(number, name, datetime)
VALUES
(1, 'a', '2022-01-01'),
(2, 'b', '2022-01-02'),
(3, 'c', '2022-01-03');
変更したい系(更新)
・テーブルのすべてのレコードの任意列に値を設定したい。UPDATE
UPDATE table_name SET col_name = 0;
・条件に合ったレコードを変更したい。UPDATE+WHERE
参考:https://style.potepan.com/articles/23919.html
UPDATE table_name
SET
col1 = 0, col2 = 0
WHERE
col1 = 1 AND col2 = 2;
・複数列を変更(更新)したい。CASE ~ END, CASE ~ END...
UPDATE table_name SET
monster = CASE
WHEN number = 1 THEN 'スライム'
WHEN number = 2 THEN 'ドラキー'
WHEN number = 3 THEN 'ももんじゃ'
END,
hp = CASE
WHEN number = 1 THEN 8
WHEN number = 2 THEN 10
WHEN number = 3 THEN 12
END;
・連番を振りなおしたいよ。SET @ ~~
参考:https://qiita.com/MochiMochiChip/items/f05bc3fc9612b94f8004
SET @cnt_i:=0;
UPDATE table_name SET number = (@cnt_i := @cnt_i + 1 );
テーブルを操作したい系(操作)
・テーブルのレコードを全削除したい。 TRUNCATE
参考:https://johobase.com/truncate-table-sql/#TRUNCATE_TABLE
TRUNCATE TABLE table_name;
・テーブルをコピーしたいけどデータはいらない。CREATE TABLE ~ LIKE
参考:https://www.dbonline.jp/mysql/table/index15.html
CREATE TABLE new_table LIKE table_name;