0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

初歩的なSQLコマンドをまとめてみました。

Last updated at Posted at 2022-02-20

はじめに

明日の訓練所でのテスト対策で、SQLコマンドを整理してみました。投稿数稼ぎです。
とってもとっても初歩的なので、将来データベース忘れた時には役立つかもしれません。
なのでチートシートなんて名乗れません、そんな程度です。
あとPHPもテスト範囲に含まれているので、そっちの方もいずれ投稿しようと思っています。
Linux、HTML、JavaScript、PHP、JAVAと、この4ヶ月で詰め込んで来たので、もうどれがどうだったか。。。
XAMPPをインストールしての授業だったので、MariaDBです。
MariaDBのサイトの『A Quick SQL Cheat Sheet』を自分用に簡単にまとめてみました。
英語に苦しくなってきた時はこっちの『MySQL5.6リファレンスマニュアル 第13章SQLステートメントの構文』を見てました。

データベースオブジェクトの操作

作成

-- データベースの作成
CREATE (OR REPLACE) DATABASE db_name;
-- テーブルの作成 PRIMARYとUNIQUEは最後に記述してもカラムの都度でもいい。
CREATE (OR REPLACE) TABLE tbl_name (create_definition,...,PRIMARY KEY(coi_name) UNIQUE KEY(col_name));
-- ビューの作成
CREATE (OR REPLACE) VIEW view_name AS select_statement;
-- インデックスの作成
CREATE (OR REPLACE) INDEX index_name;

# Columnの追加(作成)
/* CREATE COLUMN はナイよテーブルを先に作っちゃってて、後から追加する時。
1個ずつしか追加できない。(コレ間違い 出来る。)
*/
ALTER TABLE tbl_name ADD col_name column_definition,[FIRST|AFTER col_name];

/* create_definition */
{col_name column_definition}  #index_definitionとかperiod_definitionとか省略 
/* column_definition */
data_type [NOT NULL|NULL][UNIQUE|PRIMARY KEY][COMMENT 'string'] #もっとあるけど省略

data_typeはいっぱいあるので、Data Typesを参照。

変更

-- データベースの変更
#ALTER DATABASEはあるけど。。。使わないな
#RENAME DATABASEはナイ 新しくデータベース作ってコピーするとか。。。面倒らしい
-- テーブルとカラムの変更・追加
RENAME TABLE old_tbl_name TO new_tbl_name;
ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition; #カラムの名前と定義の変更
ALTER TABLE tbl_name MODIFY col_name colmun_definition; #カラムの定義の変更
ALTER TABLE tbl_name ADD col_name column_definition; #カラムの追加
-- ビューの変更
ALTER VIEW view_name AS select_statement;

表示

--データベースの表示
SHOW DATABASES;
--テーブルの表示
SHOW TABLES; #データベース内のテーブル一覧
SHOW CREATE TABEL tbl_name; #テーブルを作るときのCREATE TABLE
{DESCRIBE|DESC} tbl_name; #テーブルの構造
SHOW COLUMNS FROM tbl_name; 
--ビューの表示
SHOW CREATE VIEW view_name;#ビューを作るときのCREATE VIEW
--インデックスの表示
SHOW {INDEX | INDEXES | KEYS} FROM tbl_name [FROM db_name];

削除

-- データベースの削除
DROP DATABASE db_name;
-- テーブルの削除
DROP TABLE tbl_name;
-- ビューの削除
DROP VIEW view_name;
-- インデックスの削除
DROP INDEX index_name;

レコードの操作

--追加
INSERT INTO tbl_name(col_names,...) VALUES(values,...); 
INSERT INTO tbl_name VALUES([values|null],...); 
--更新
UPDATE tbl_name SET col_name = value,[col_name = value],...[WHERE where_condition];
--置換
REPLACE [INTO] tbl_name VALUES([values|null],...);
--削除
DELETE FROM tbl_name WHERE where_condition;

テーブル結合

--UNION
SELECT * FROM tbl_1 UNION tbl_2; #重複なし
SELECT * FROM tbl_1 UNION ALL tbl_2; #重複あり
--内部結合
SELECT * FROM tbl_1 INNER JOIN tbl_2 ON tbl_1.col = tbl_2.col;
--外部結合
SELECT * FROM tbl_1 LEFT OUTER JOIN tbl_2 ON tbl_1.col = tbl_2.col; #tbl_1全部とtbl_2の共通部分
SELECT * FROM tbl_1 RIGHT OUTER JOIN tbl_2 ON tbl_1.col = tbl_2.col; #tbl_1の共通部分とtbl_2の全部
--

ユーザー関係

-- 作成
CREATE (OR REPLACE) USER user_name IDENTIFIED BY password;
-- 変更
RENAME USER old_user_name TO new_user_name;
ALTER USER IDENTIFIED BY new_password;
-- 表示
SHOW CREATE USER user_name
--削除
DROP USER user_name;

まとめ

 ほんとサラッとしか習ってない印象です。
まちがいも多々あると思います、明日のテストには間に合いませんが、後学のためにもご教示くださいますと助かります。
自分でも気がついたらちょこちょこ直していきます。

 あらためて、SQLを調べてみて、アレこんなの習ったっけ?てのがありました。
ユーザー関係はほとんど触れてませんでしたし、UPDATEなんで怪しいもんです。。。
なかなか普段は自分でデータベースを作ることが無いので、課題を見つけて作ってみないと理解は深まりませんね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?