SQL CREATE TABLE ステートメントは、データベースにテーブルを作成するために使用されます。
テーブルを作成する場合は、テーブルに名前を付け、その列と各列のデータ型を定義する必要があります。
テーブルを作成するための簡単な構文を見てみましょう。
create table 'tablename' ('column1' 'data type', 'column2' 'data type', 'column3' 'data type', ... 'columnN' 'data type');
列のデータ型はデータベースごとに異なる場合があります。たとえば、Oracle データベースでは整数値として NUMBER がサポートされていますが、MySQL では INT がサポートされています。
ID を主キーとして STUDENTS テーブルを作成する例を考えてみましょう。NOT NULL は、テーブルにレコードを作成するときにこれらのフィールドを NULL にすることができないことを示す制約です。
SQL> CREATE TABLE STUDENTS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), PRIMARY KEY (ID) );
SQL Server によって表示されるメッセージを見てテーブルが正常に作成されたかどうかを確認できます。それ以外の場合は、次のように DESC コマンドを使用できます。
SQL> DESC 学生;
分野 | タイプ | ヌル | 鍵 | デフォルト | 余分な |
---|---|---|---|---|---|
ID | 整数(11) | いいえ | で | ||
名前 | バーチャー(20) | いいえ | |||
年 | 整数(11) | いいえ | |||
住所 | バーチャー(25) | はい | ヌル |
4 行セット (0.00 秒)
これで、データベースに STUDENTS テーブルが作成され、学生に関連する必要な情報を保存するために使用できるようになりました。
MySQL での SQL CREATE TABLE の例
MySQL データベースにテーブルを作成するコマンドを見てみましょう。
CREATE TABLE Employee ( EmployeeID int, FirstName varchar(255), LastName varchar(255), Email varchar(255), AddressLine varchar(255), City varchar(255) );
Oracle での SQL CREATE TABLE の例
Oracle データベースにテーブルを作成するコマンドを見てみましょう。
CREATE TABLE Employee ( EmployeeID number(10), FirstName varchar2(255), LastName varchar2(255), Email varchar2(255), AddressLine varchar2(255), City varchar2(255) );
Microsoft SQLServer での SQL CREATE TABLE の例
SQLServer データベースにテーブルを作成するコマンドを見てみましょう。 MySQLやOracleと同じです。
CREATE TABLE Employee ( EmployeeID int, FirstName varchar(255), LastName varchar(255), Email varchar(255), AddressLine varchar(255), City varchar(255) );
別のテーブルを使用してテーブルを作成する
create table コマンドを使用して、既存のテーブルのコピーを作成できます。新しいテーブルは、古いテーブルと同じ列署名を取得します。すべての列を選択することも、特定の列を選択することもできます。
古いテーブルを使用して新しいテーブルを作成すると、新しいテーブルには古いテーブルの既存の値が入力されます。
他のテーブルを使用してテーブルを作成するための基本的な構文は次のとおりです。
CREATE TABLE table_name AS SELECT column1, column2,... FROM old_table_name WHERE ..... ; The following SQL creates a copy of the employee table. CREATE TABLE EmployeeCopy AS SELECT EmployeeID, FirstName, Email FROM Employee;
CREATE TABLE ステートメントを使用した SQL 主キー
次のクエリは、「Employee」テーブルの作成時に「D」列に PRIMARY KEY を作成します。
MySQL
CREATE TABLE Employee( EmployeeID NOT NULL, FirstName varchar(255) NOT NULL, LastName varchar(255), City varchar(255), PRIMARY KEY (EmployeeID) );
SQL Server / Oracle / MS Access
CREATE TABLE Employee( EmployeeID NOT NULL PRIMARY KEY, FirstName varchar(255) NOT NULL, LastName varchar(255), City varchar(255) );
次のクエリを使用して、複数の列に PRIMARY KEY 制約を定義し、PRIMARY KEY 制約の名前を指定できるようにします。
MySQL / SQL Server /Oracle / MS Access の場合
CREATE TABLE Employee( EmployeeID NOT NULL, FirstName varchar(255) NOT NULL, LastName varchar(255), City varchar(255), CONSTRAINT PK_Employee PRIMARY KEY (EmployeeID, FirstName) );