SQL-CREATE TABLE
この記事では、データベーステーブル構造の確立に関するCREATEステートメントについて説明します。postgreSQLを使用して実現します。他のステートメントも同様で、主にSQLステートメントを理解する必要があります。
文法
CREATETABLEの構文形式は次のとおりです。
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
...
);
CREATE TABLEはキーワード、table_nameはテーブル名であり、同じスキーマ内の他のテーブル、シーケンス、インデックス、ビュー、または外部テーブル名の中で一意である必要があることを示します。
例と説明
ここでは、その時点でデータベースの仕事を直接引き受けて、テーブル構造の確立に関するいくつかの内容を詳細に説明します。
要件は次のとおりです。
ここで、実装コードは次のとおりです。
CREATE TABLE student(
sno varchar(8) primary key not null,
sname varchar(8) not null,
ssex varchar(2) check((ssex = 'M') or (ssex='F')),
sbirthday date,
classno varchar(6) references class(classno),
Totalcredit smallint default 0
);
CREATE TABLE class(
classno varchar(6) primary key,
classname varchar(20) not null,
classmajor varchar(20),
classdept varchar(20),
studentnumber smallint check((studentnumber >=20) and (studentnumber <=40))
);
CREATE TABLE course(
cno varchar(6) primary key,
cname varchar(30) not null,
ccredit smallint check((ccredit>=0) and (ccredit<=100))
);
CREATE TABLE sc(
sno varchar(8) references student(sno),
cno varchar(6) references course(cno),
grade integer check((grade>=0) and (grade <= 100))
);
CREATE TABLE teacher(
tno numeric(6) primary key,
tname varchar(8) not null,
tsex varchar(2) check ((tsex = 'M') or (tsex='F')),
tbirthday date,
ttitle varchar(20)
);
CREATE TABLE teaching(
tno numeric(6) references teacher(tno),
cno varchar(6) references course(cno),
language varchar(10) check((language = 'Chinese') or (language = 'Bilingual') or (language = 'English'))
);
ここで\ dを使用して、テーブルが正常に作成されたかどうかを確認します。
説明する
CREATETABLE学生を選択します。CREATETABLE学生の最初の行は、「student」という名前のテーブルを作成することです。変数は次のとおりです。
- sno(varcharタイプ、長さ8ビット、プライマリキーとして)
- sname(varcharタイプ、長さ8ビット、空ではない)
- ssex(varcharタイプ、長さは2桁、「M」または「F」のみ)
- sbirthday(日付タイプ)
- classno(varcharタイプ、長さは6桁、このキーは外部キーです。クラステーブルのclassnoの値を参照してください)
- TotalCredit(smallintタイプ、デフォルト値は0)
\ d tablenameを使用して、テーブルの情報を表示できます。
ここでは、最初の行のインデックスで何が起こっているかを説明します。ここでのインデックスは自動的に作成されます。postgreSQLによって作成されるデフォルトのインデックスはbtreeインデックスです。snoによると、これは私のテーブルのインデックスです。主な鍵が確立されています。インデックスとは何かについては、かつてブログを書いたことがあります。興味のある友達はチェックしてみてください↓
BPTreeインデックス
以下の行は一目でわかります。説明する必要はないと思います。みなさん、ようこそ。