データベースにテーブルを作成する - SQL

SQLでテーブルを作成するコードを紹介します。

概要

SQLを利用して、テーブルのレコードを検索して該当するレコードを選択する場合には CREATE TABLE 文を利用します。

書式

CREATE TABLE 文は下記の書式です。
CREATE TABLE テーブル名 (
  列名1 型名1,
  列名2 型名2,
  ....
  列名n 型名n)

NULLを許容しない列を作成

列の値のNULLを許容しない場合は、NOT NULL を記述します。
CREATE TABLE テーブル名 (
  列名1 型名1 NOT NULL,
  列名2 型名2 NOT NULL,
  ....
  列名n 型名n)

上記のSQLでは、列1と列2 にNOT NULLを指定しているため、列1、列2はNULLの値を許容しない列になります。

プライマリーキーの列を作成

プライマリキーの列を作成する場合は、PRIMARY KEY を記述します。
CREATE TABLE テーブル名 (
  列名1 型名1 PRIMARY KEY
  列名2 型名2,
  ....
  列名n 型名n)

Transact-SQL でクラスターインデックスを作成する場合は次の書式を利用します。
CREATE TABLE [テーブル名] (
  [列名1] [型名1],
  [列名2] [型名2],
  ....
  [列名n] [型名n],
PRIMARY KEY CLUSTERED 
(
  [プライマリキーの列名] ASC
))

Transact-SQL で非クラスターインデックスを作成する場合は次の書式を利用します。
CREATE TABLE [テーブル名] (
  [列名1] [型名1],
  [列名2] [型名2],
  ....
  [列名n] [型名n],
PRIMARY KEY NONCLUSTERED 
(
  [プライマリキーの列名] ASC
))

オートインクリメント(自動採番)の列を作成

オートインクリメント(自動採番)の列を作成する場合は、IDENTITY を記述します。
CREATE TABLE テーブル名 (
  列名1 型名1 IDENTITY(seed, increment),
  列名2 型名2,
  ....
  列名n 型名n)

IDENTITY の seed と increment を省略した場合両方の値は (1,1) となります。
CREATE TABLE テーブル名 (
  列名1 型名1 IDENTITY,
  列名2 型名2,
  ....
  列名n 型名n)

記述例

テーブルを作成する例

CREATE TABLE test000 (
 id int,
 code int,
 amount int)

プライマリーキーを設定してテーブルを作成する例

CREATE TABLE test001 (
 id int PRIMARY KEY,
 code int,
 amount int)

プライマリーキー+非クラスター化インデックスを設定してテーブルを作成する例

CREATE TABLE [test002](
  id int,
  amount int,
  value int,
PRIMARY KEY NONCLUSTERED
(
  id asc
)
)

オートインクリメントを指定してテーブルを作成する例

CREATE TABLE test003 (
 id int IDENTITY,
 code int,
 amount int)

オートインクリメント+プライマリーキーを指定してテーブルを作成する例

CREATE TABLE test004 (
 id int PRIMARY KEY IDENTITY,
 code int,
 amount int)
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2021-05-16
作成日: 2021-03-30
iPentec all rights reserverd.