データベースってどうやって
テーブルってどうやって作成するの?
データの型ってなに?
NOT NULL制約、主キー制約ってなに?
わかりやすく教えて欲しい!
こういった疑問にこたえます。
エンジニアの僕がわかりやすく解説します。
データベースの作成(CREATE DATABASE)
テーブルを作成するには、テーブルを格納しておくためのデータベースを作成しておく必要があります。
RDBMS上にデータベースを作成するにはCREATE DATABASE文を実行します。
CREATE DATABASE文の構文は次の通りです。
CREATE DATABASE <データベース名>;
例えば、データベース名を「shop」とするなら次のようになります。
CREATE DATABASE shop;
テーブルの作成(CREATE TABLE)
データベースが作成できたら、テーブルを作成します。
テーブルを作成するにはCREATE TABLE文を実行します。
CREATE TABLE文の構文は次の通りです。
CREATE TABLE <テーブル名>
(
<列名1> <データ型> <この列の制約>,
<列名2> <データ型> <この列の制約>,
<列名3> <データ型> <この列の制約>,
<列名4> <データ型> <この列の制約>,
<列名5> <データ型> <この列の制約>,
・
・
・
<このテーブルの制約1>, <このテーブルの制約2>, ・・・
);
実際にテーブルを作成してみましょう。
CREATE TABLE shohin
(
shohin_id CHAR(4) NOT NULL,
shohin_mei VARCHAR(255) NOT NULL,
shohin_bunrui VARCHAR(255) NOT NULL,
hanbai_tanka INTEGER,
shiire_tanka INTEGER,
torokubi DATE,
PRIMARY KEY (shohin_id)
);
データベースとテーブルの命名規則
データベースやテーブルには命名規則があります。
これらを守ってデータベースやテーブルを作成するようにしましょう。
テーブルのデータ型
テーブル作成時にデータ型を指定しました。全ての列にデータ型を指定する必要があります。
テーブルの列には指定された型のデータしか入れることができません。
INTEGER型
INTEGER型は整数を入れる列に指定するデータ型です。
少数のデータは入りません。
CHAR型
CHAR型はCHARACTERの略で文字列を表します。
CHAR(4)やCHAR(200)のように列の中に数字を入れることで文字列の長さを指定することができます。
カッコ内で指定した文字数以上の文字列は入りません。
CHAR型の列には固定長文字列という形式で文字列が格納されます。
固定超文字列の列では、文字数が最大長になるまで空いているところを半角スペースで埋めます。
例えば、’abc’という文字列を入れたとすると、’abc ‘という形で格納されます。
VARCHAR型
VARCHAR型はCHAR型と同じく文字列を格納するときに指定しますが、こちらは可変長文字列です。
最大文字数未満の文字列が入れられた場合に、スペースで空きを埋めることをしません。
例えば、’abc’という文字列を入れると’abc’とそのまま格納されます。
DATE型
DATE型は日付を入れる列に指定するデータ型です。
制約の設定
制約とはデータ型のほかに列に入れるデータに制約や条件を追加する機能です。
shohinテーブルにはNOT NULL制約と主キー制約を設定しています。
NOT NULL制約
NOT NULL制約を指定すると、その列は無記入ではいけないようになります。
その列には必ずデータを入れる必要があります。無記入ではエラーになります。
PRIMARY KEY制約(主キー制約)
主キー制約を設定された列には一つの行 (レコード)を特定できるデータが入ります。
必ず一意のデータが格納されます。重複するデータを入れようとするとエラーになります。
【SQL】テーブルの作成方法まとめ
解説の内容をまとめます。
- データベースの作成はCREATE DATABASE 文
- テーブルの作成はCREATE TABLE 文
- 列にはデータ型を指定する必要がある
- 列に制約を設定できる
以上、お疲れ様でした。
コメント