LoginSignup
3
5

More than 5 years have passed since last update.

SQL 初心者のためのクエリ集(更新・構造操作系)

Posted at

トピック

  • データの操作ではなく、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
3
5
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
3
5