LoginSignup
0
0

More than 3 years have passed since last update.

MySQl練習帖①

Posted at

コマンド羅列

create

CREATE TABLE テーブル名 (カラム名 (桁数) オプション, カラム名 (桁数) オプション...);

mysql> CREATE TABLE user (
    -> id INT AUTO_INCREMENT PRIMARY KEY,
    -> name VARCHAR(20) NOT NULL,
    -> email VARCHAR(255) UNIQUE,
    -> age INT,
    -> gender TINYINT COMMENT '1が男、2が女',
    -> created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    -> updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);


alter

mysql> ALTER TABLE (テーブル名) MODIFY (カラム名) (変更後);

insert

INSERT INTO テーブル名 (カラム1, カラム2, ...カラムn) VALUES (カラム1の値, カラム2の値, ...カラムnの値);

valuesはカンマ区切りで複数レコードを1クエリで挿入できる


delete


select

SELECT (カラム名) FROM (テーブル名) WHERE (条件);

論理演算子

  • AND(&&)
  • OR (||)
  • NOT

不等号

  • =
  • !=
  • >, >=
  • <. <=
  • BETWEEN a AND b (a < b)

LIKE

%をワイルドカードとして部分一致検索に使える

mysql> SELECT * FROM people WHERE name LIKE '%こ';

IN

リストで検索

WHERE カラム名 IN (1, 2, 3...N);

DISTINCT

SELECT DISTINCTで重複カラムを削除して取得できる。

order by

asc, desc 昇順、降順に並び替えできる


JOIN

join文の種類によって対応する値がない場合の扱いが異なる

INNNER JOIN

部分集合

LEFT JOIN

左側のテーブルは全て表示(対応する値がないセルはNULLになる)

RIGHT JOIN

LEFT JOINの右版


集計関数

  • 基本的にGROUP BYと組み合わせて集計を行う。
  • selectできるのはGROUP BYしたカラムのみ。
  • カラムみたいな扱いができる。

MIN(), MAX()

最大値。最小値

AVG()

平均

SUM()

総和


細かいところ

  • テーブル名・カラム名が予約語とかぶるときはバッククォート( ` )を使う
  • NULLを検索したいときは=ではなくISを使う
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