MySQLのデータ操作
テーブルにデータを追加したり、編集するコマンドです。
データを抽出する
基本構文
全カラム抽出
指定したカラムのみ抽出
DISTINCT
重複した値は1行として抽出します。
カラムを複数指定した場合は、全てが同じものを1行として抽出します。
抽出条件
値、条件が文字列の場合は''
で囲みます。
カラムの値が一致する行を抽出
カラムの値が一致しない行を抽出
カラムの値がNULLの行を抽出
カラムの値がNULL以外の行を抽出
カラムの値がリストのいづれかと一致する行を抽出
カラムの値がリストのどれとも一致しない行を抽出
あいまい検索
前方一致や部分検索で条件を指定します。下記では、@mail.com
の手前はどんな文字列でもヒットします。
複数条件を満たす行を抽出する場合はAND
で指定します。
複数条件のいづれかと一致であればOR
で指定します。同一カラムのOR
指定はWHERE IN
と同じ意味になります。
ソート
抽出結果を指定したカラム名でソートします。
- ASC - 昇順
- DESC - 降順
レコード数の取得
全レコード数を取得
カラムの値がNULLでないレコード数を取得
結果は扱いやすいよう別名を付けます。下記ではRECORD_COUNT
として結果を取得できます。
行を追加する
一度に複数行追加する場合
削除
行を削除する
全データを削除する
データを更新する
UPDATE文
で更新したいカラムと値を指定します。
データを変えずに日時を更新したい場合
テーブル定義にて、カラム名 DATETIME default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
としても、更新前と更新後でデータが同じ場合は日時が更新されません。
データは変わらないけど、日時だけは更新したい場合は、次のようにします。
別のテーブルからデータを抽出して追加する
INSERT文
で値の部分にSELECT文
を記述します。固定値を入れたい場合は、抽出カラムではなく値を記述します。
tableAからデータを抽出して、tableBに追加する例
下記ではno
は全て固定値1
が入ります。