トピック
-
データの操作ではなく、DBやテーブル自体を更新したり、操作したりする系の基本的なクエリ集です。(自分用メモなので怪しい所が多々あるかもしれない)
-
以下の記事に基本操作をまとめています(Python コードと並べて)
-
Udemy のこちらのコースで勉強していました。
データの更新
新規データの追加
- 新規データを1行追加
- 列リストと、values句の値リストは、数が一致している必要がある。
sql}
insert into
TABLE (COL1, COL2, ...)
values
(VALUE1, VALUE2, ...)
- 列リストを省略して新規データを追加
- テーブルの前列に対して、値を指定する
sql}
insert into
TABLE -- 3列のテーブルとする
values
(VALUE1, VALUE2, VALUE3)
- 複数行を追加
sql}
insert into
TABLE (COL1, COL2, ...)
values
(VALUE1, VALUE2, ...)
(VALUE3, VALUE4, ...)
(VALUE5, VALUE6, ...)
データの更新
- ある列すべての値を更新
sql}
set sql_safe_updates = 0; -- safe モードの解除。実務ではあまり使わない
update
TABLE
set
COL = COL * 0.9;
- 特定の行のデータだけを更新
sql}
update
TABLE
set
COL1 = COL1 * 0.9
where
col2 > 1000;
行の削除
大量のデータ(10万件以上とか)を削除する際には予想以上に時間がかかるので注意
sql}
delete from
TABLE
[where
条件式] -- 削除する行の条件を指定できる。指定なしだとテーブルの全行を削除。
DB構造の操作
DBの追加・削除
- DB確認
sql}
show databases;
-
DB追加
- 半角の英数字とアンダースコアで書く。
- マジックナンバー(命名者しか意味が分からない数字)を使った名前は避ける。
sql}
create database
DB_NAME;
- DBの削除
sql}
drop database
DB_NAME;
テーブルの追加・削除・構造変更
- テーブルの確認
sql}
-- use DB_NAME;
show tables;
- 列の確認
sql}
show columns from TABLE;
- テーブルの新規作成
sql}
create table
TABLE_NAME(COLNAME1 DATATYPE not null auto_increment primary key,
COLNAME2 DATATYPE not null);
/*
- not null: null を許可しない
- auto_increment: idを自動的に振る
- primary key: 主キーの設定
*/
- テーブルの構造変更
テーブルに列の追加
sql}
alter table TABLE -- 変更するテーブル名
add NEW_COL DATATYPE -- 新しい列の列名とデータ型
after COL; -- どの列の後ろに置くか
テーブルの列の変更
sql}
alter table TABLE
change OLD_COL NEW_COL DATATYPE;
テーブルの列の削除
sql}
alter table TABLE
drop COL;
- テーブルの削除
sql}
drop table
TABLE_NAME