1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【SQL】テーブルの作成・削除(CREATE,DROP,TRUNCATE)

Last updated at Posted at 2019-10-03

テーブルの作り方や、インデックスの貼り方とかを殴り書き

#テーブル作成
列情報を指定して空のテーブルを作る方法をいくつか

##CREAT
とりあえずシンプルなCREAT文
紙に罫線と項目名の名前だけを各イメージ。
学年別の学生一覧を作るならこんな感じ。

Create
CRATE TABLE first_grader (
   student_number int(3), --3桁以下の整数
   first_name verchar(10) NOT NULL,  --nullを認めない10文字以内の文字列
   last_name verchar(10), --null(データなし)でもよい10文字以内の文字列
   birthday date --日付
)

#テーブルの参照作成
##CREAT SELECT
既存のテーブルを参照して作る方法
列の属性がコピーされ、SELECT文で抽出されるデータもコピーされる
1年生の一覧から2年生の一覧を作るならこんな感じ

RefCreate
CREATE TABLE name_list AS
   SELECT * FROM first_grader

特定の列やデータだけをコピーすることもできる
例えば、1年生の一覧から学生番号が10以下の学生の名前だけの一覧を作るなら

RefSelectCreate
CREATE TABLE name_list AS
   SELECT first_name FROM first_grader
      WHERE student_number < 10

##CREAT INTO
参照作成の場合、CREAT文を使わずにSELECT INTO文でも作れる
さっきの例文を書き換えると

SelectInto
SELECT first_name 
   INTO name_list
   FROM first_grader
   WHERE student_number < 10 

#テーブルの削除
テーブルや、データを消す方法をいくつか

##DROP
データもテーブル情報(どんな列を持っていたかなど)を消す
リカバリも出来ないのでご利用は計画的に
手元にある表をシュレッダーにかけるイメージ

Drop
DROP TABLE first_grader

##TRUNCATE
一度テーブルを削除してから同じ構造のテーブルを再作成する
データを消す方法はDELETE文もあるけど、こちらの方が変なごみが残らない
Truncateは既存の表をシュレッダーにかけて、新しい紙に罫線と項目名を書くけど、
Deleteは消ゴムで表を消すイメージ。消しゴムだと白紙のようなキレイさにはならないよね
あと、Truncateの方が処理が早い。

TRUNCATE
TRUNCATE TABLE first_grader

##DELETE
こちらは対象の列を指定して消す
where句などを使うことで、部分的に削除することができる

DELETE
DELETE FROM first_grader
   WHERE student_number < 10
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?