テーブルの作り方や、インデックスの貼り方とかを殴り書き
#テーブル作成
列情報を指定して空のテーブルを作る方法をいくつか
##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