MySQL
何個かある
商用ライセンス
起動、停止
a$ mysql.server start # 起動
$ mysql.server start --skip-grant-tables # パスワード無しでログイン
$ mysql.server stop # 停止
ログイン(どっちか)
$ mysql -u root
rootでログイン
$ mysql -u mrsekut -p
user指定してログイン
ログアウト
exit
port番号角煮n
show variables like 'port';
amysql> show databases; #データベース一覧を表示
mysql> use [db_name] #使用するデータベースを選択(セミコロン不要)
mysql> create database [db_name] #データベースの作成
mysql> drop database [db_name] #データベースの削除
権限付与
GRANT ALL ON testDB.* TO 'mrsekut'@'localhost';
testDBに対するすべての権限を付与
amysql> show tables; #テーブル一覧を表示
mysql> show tables status; #テーブル一覧のステータス情報を表示
mysql> desc [table_name]; #カラム一覧を表示
mysql> show full columns from [table_name]; #カラム一覧を表示、Collation付き。
mysql> show index form [table_name]; #特定テーブルのインデックスを確認
権限付与とかの問題か
mysql> create user 'mrsekut'@localhost identified by 'passpass';
mysql> select user, host from mysql.user;
mysql> drop user 'maki'@localhost;
削除
'mysql://johndoe:randompassword@localhost:3306/mydb'
みたいなやつ
使い方概要
UPDATE dtb_order SET product_reserve_type_id=2 WHERE id=35;
みたいにUPDATEしたいときに、
UPDATE前の状態が既に product_reserve_type_id=2
になっていると、「0行が更新されました」となる
まあこれはゆるそう

UPDATE前の状態が product_reserve_type_id=NULL
になっていると、上のSQL文では一致しない
一致させるためには、末尾に AND product_reserve_type_id IS NULL
を付けないといけない
なぜ??・
これはtableの構造を変更して、本来はproduct_reserve_type_idは0,1,2しかとれないのに、NULLが入っているのが原因かもしれんが、イミフすぎる