テーブルを作成する
前回に引き続きLeetCodeの問題はお休み。
db<>fiddleを使って、何も無いところからテーブルを作成するクエリを書いていきます。
SQL
CREATE TABLE テーブル名 (変数名1 変数型 オプション, 変数名2 変数型 オプション)
これが基本形。変数は1つ以上指定しないと駄目な様子。オプションは省略可。
このクエリを実行するとテーブル名で指定した名前の空のテーブルが作成できます。
変数型には、下記のものが指定できます。
| データタイプ | クエリ | 説明 |
|---|---|---|
| 整数 | BIT | 1または0の整数 |
| 整数 | TINYINT | 1Byte(8bit)までの整数つまり0-255 |
| 整数 | SMALLINT | 2Byteまでの整数 |
| 整数 | INT | 4Byteまでの整数。通常はこれで良さそう |
| 整数 | BIGINT | 8Byteまでの整数 |
| 少数 | DECIMAL[(p,s)] | []は省略可。pが整数と少数を合わせた有効桁数、sが小数部桁数 |
| 少数 | NUMERIC[(p,s)] | DECIMALと全く同じ |
| 少数 | FLOAT[(n)] | []は省略可。浮動小数点型 |
| 少数 | REAL | 4Byteの浮動小数点型 |
| 文字列 | NCHAR[(n)] | n桁の固定長のUnicode文字列 |
| 文字列 | NVARCHAR(n or MAX) | n桁の可変長のUnicod文字列、MAXの場合は2GBまで |
| 文字列 | CHAR[(n)] | n桁の固定長の文字列 |
| 文字列 | VARCHAR[(n or MAX)] | n桁の可変長の文字列、MAXの場合は2GBまで |
| 日付 | DATE | 日付のみ |
| 日付 | TIME | 時刻のみ |
| 日付 | DATETIME2 | 日付と時刻を表示 |
オプションは省略できますが、下記のものが指定できます。
| クエリ | 説明 |
|---|---|
| NOT NULL | NULLを禁止 |
| IDENTITY(開始番号, 増加数) | 数値が開始番号から増加数ずつ増えて連番で入力される |
| AUTO_INCREMENT | (これはMS SQL Serverでは使用できない)数値が連番で入力される |
| DEFAULT |
DEFAULT 0のように使用しDEFAULTの後のものが初期値になる |
| PRIMARY KEY | 主キーの設定。同時にNOT NULLの設定も必要になる |
| UNIQUE | 重複禁止。NULLはOK |
PRIMARY KEYを設定するとインデックスが自動的に作成されて、テーブル検索の速度も早くなります。
今日のポイントはCREATE TABLEでテーブルを作成するとした。