1. トップ
  2. コラム一覧
  3. 非エンジニアでも知らないとヤバイSQL Part6 〜似て非なるTRUNCATEとDROP〜

非エンジニアでも知らないとヤバイSQL Part6 〜似て非なるTRUNCATEとDROP〜

投稿日 : 2020.07.13  |  カテゴリー : 非エンジニアでも知らないとヤバイ

非エンジニアでも知らないとヤバイSQL Part6 〜似て非なるTRUNCATEとDROP〜

前回はテーブルのデータの更新と削除を行うための「UPDATE」と「DELETE」について学びました。
今回、学んでいくのは削除を行うための「TRUNCATE」と「DROP」です。

Part1からの内容が気になる方は非エンジニアでも知らないとヤバイSQL Part1をご覧ください。

非エンジニアでも知らないとヤバイSQL

前回のおさらい

まずは前回学んだ「UPDATE」と「DELETE」についての軽いおさらいをしていきましょう。
 
UPDATE

UPDATE t_employee SET name='鮎川'AND age='20' WHERE no=5;

DELETE

DELETE FROM t_employee WHERE no=5;

このようにして書くのが「UPDATE」と「DELETE」です。こちらから前回の復習ができます→前回の記事

今回の内容

今回学ぶのは「TRUNCATE」と「DROP」という削除に関する構文です。
「えっ?削除はDELETEを使うんじゃないの?何が違うの?」と思われる方もいるかもしれません。
削除をするという点では三つとも同じですが実はまったく違うものなんです。

しっかり把握せずに使って顧客のデータを全て消してしまった…なんてことにならないようここでしっかり押さえておきましょう。

「TRUNCATE」って?

TRUNCATEを使うとテーブルを削除することができます。
下のようにして使っていきます。

TRUNCATE TABLE (テーブル名);

このように書くことでテーブルのデータを一括で消すことができます。また、テーブルの構造は消さずに残しておいてくれます。

DELETE文でもテーブルを一括で消すことができますが、TRUNCATEの方が高速で処理を行ってくれます。
テーブルの全部の行を一括で消すものの、WHERE句での指定はできないというところもDELETEとの違いになります。
※DBMSによって異なりますが、MySQLではロールバック(復元)が出来ません。

 
実際に試してみます。

これがもとの「t_employee」テーブルです

下のように書き込むと

TRUNCATE TABLE t_employee;

構造だけ残して全部のデータが消えます。

データが空っぽです、と表示されます。

 
したがって、
・テーブルのデータを一括で早く消したい
・テーブルの構造は消さずに残しておきたい
という時に使えます。

DROPって?

DROPは同じくデータを一括で消してくれる文です。
下のように書きます。

DROP TABLE (テーブル名);

TRUNCATEと同じくテーブルのデータを一挙に消してくれます。
TRUNCATEと違うところはテーブルの構造自体も残してくれないというところです。
※これもDBMSによって異なりますが、MySQLではロールバック(復元)が出来ません。

 
これも試してみます。

もう一度このテーブルを用います。

下のように書くと

DROP TABLE t_employee;

構造ごとデータが消えます。

「t_employee」というテーブルそのものがありませんという風に表示されます。

したがって、
・テーブルの構造ごと一括で消したい
という時に使えます。

まとめ

いかがでしたでしょうか?
・TRUNCATEとDROPはテーブルのデータを一挙に消すことができる。
・違いは構造を残してくれるかどうか
・どちらもMySQLではロールバックができない

ということがわかりました。

次回はテーブルとテーブルを結合させる「JOIN」について学んでいきましょう。

この記事を共有する
  • facebookでシェアする
  • ツイッターでつぶやく
  • LINEで送る
関連記事
非エンジニアでも知らないとヤバイSQL

非エンジニアでも知らないとヤバイSQL Part2 〜SELECT文でデータ抽出〜

DB、SQLについて 前回の非エンジニアでも知らないとヤバイSQL Part1では、DBの種類(「関係型」「NoSQL」「階層型」「ネットワーク型」)、その中でも現在主流になっている「ネットワーク型」(RDBMS)について、SQLについて ...

非エンジニアでも知らないとヤバイCPU Part1

そもそもCPUとは CPUとは、Central Processing Unitの略で、日本語では中央演算処理装置と言い、別名はプロッセッサーです。 入力装置などから受けっとった値を処理し、出力装置などで結果を出力します。 CPUの内部 ...

非エンジニアでも知らないとヤバイCPU Part2

コア、クロック周波数 前回の非エンジニアでも知らないとヤバイCPU Part1 では、CPUの処理性能がわかるクロック周波数と、CPUの中心をになっているコアについて触れました。 今回は、処理を効率よく進めるためのキャッシュ ...

非エンジニアでも知らないとヤバイSQL

非エンジニアでも知らないとヤバイSQL Part1

非エンジニアでもエンジニアの知識が最低限必要 IT業界で働いていくには、非エンジニアでもエンジニアの知識がある程度必要です。営業マンやマーケッター、プランナーやデザイナーであっても、同じ業界で働くためには社外の打ち合わせなどはもちろん、社 ...

非エンジニアでも知らないとヤバイSQL

非エンジニアでも知らないとヤバイSQL Part5 〜UPDATEとDELETEでデータを編集〜

span{font-size:15px;} 非エンジニアでも知らないとヤバイSQL Part5 ~UPDATEとDELETEでデータを編集~ 前回はテーブルにデータを追加するためのINSERT文について学びました。 ...

非エンジニアでも知らないとヤバイGit Part1

そもそもGitとは Gitは分散型のバージョン管理システム。 分散型とは、リポジトリと言われる開発過程が保存されているデータベースが自分やチームのマシン(パソコン)に入っているタイプ。 バージョン管理システムは、コードなどの開発過 ...

非エンジニアでも知らないとヤバイSQL

非エンジニアでも知らないとヤバイSQL Part4 〜INSERT句でデータを追加〜

非エンジニアでも知らないとヤバイSQL Part4 〜INSERT句でデータを追加〜 前回はWHEREでテーブルから指定した条件のデータを抽出する方法を学びましたね。 今回はテーブルにデータを追加して拡張してくれるINSERT文について ...

非エンジニアでも知らないとヤバイSQL

非エンジニアでも知らないとヤバイSQL Part3 〜WHERE句で検索条件を指定〜

SELECT文について 前回は、SQLにてSELECTする際、全カラム抽出、カラム指定抽出、件数指定抽出、OFFSETを使った件数指定抽出についてでした。 DBの種類(「関係型」「NoSQL」「階層型」「ネットワーク型」)、その中でも現 ...

非エンジニアでも知らないとヤバイGit Part3

はじめに 今回は競合の解決について説明する。 前回までの記事はこちら 非エンジニアでも知らないとヤバイGit Part1 非エンジニアでも知らないとヤバイGit Part2 競合の発生 リモートリポジトリとローカルリポジトリ ...

非エンジニアでも知らないとヤバイPHP Part1

プログラミング経験有無に関わらず知識は必要 タイトルに記載していますように非エンジニアの方(業界問わず)でもプログラミングに関する知識は必要です。昨今世界中においてあらゆる分野において情報化が進んでいます。これは日本も例外ではありません。 ...

Knocknote Education(ノックノートエドゥケーション)