テーブルの作り方や、インデックスの貼り方とかを殴り書き
テーブル作成
列情報を指定して空のテーブルを作る方法をいくつか
CREAT
とりあえずシンプルなCREAT文
紙に罫線と項目名の名前だけを各イメージ。
学年別の学生一覧を作るならこんな感じ。
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年生の一覧を作るならこんな感じ
CREATE TABLE name_list AS
SELECT * FROM first_grader
特定の列やデータだけをコピーすることもできる
例えば、1年生の一覧から学生番号が10以下の学生の名前だけの一覧を作るなら
CREATE TABLE name_list AS
SELECT first_name FROM first_grader
WHERE student_number < 10
CREAT INTO
参照作成の場合、CREAT文を使わずにSELECT INTO文でも作れる
さっきの例文を書き換えると
SELECT first_name
INTO name_list
FROM first_grader
WHERE student_number < 10
テーブルの削除
テーブルや、データを消す方法をいくつか
DROP
データもテーブル情報(どんな列を持っていたかなど)を消す
リカバリも出来ないのでご利用は計画的に
手元にある表をシュレッダーにかけるイメージ
DROP TABLE first_grader
TRUNCATE
一度テーブルを削除してから同じ構造のテーブルを再作成する
データを消す方法はDELETE文もあるけど、こちらの方が変なごみが残らない
Truncateは既存の表をシュレッダーにかけて、新しい紙に罫線と項目名を書くけど、
Deleteは消ゴムで表を消すイメージ。消しゴムだと白紙のようなキレイさにはならないよね
あと、Truncateの方が処理が早い。
TRUNCATE TABLE first_grader
DELETE
こちらは対象の列を指定して消す
where句などを使うことで、部分的に削除することができる
DELETE FROM first_grader
WHERE student_number < 10