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