NOT NULL
すべての列のデフォルト値はNULLです。 Not Null制約は、列の値がnullにならないようにします。この制約は、列に何らかの値があることを常に確認します。このフィールドに値を指定せずにレコードを挿入または更新することはできません。ユーザーは、この制約をテーブルの単一または複数またはすべての列に追加できます。構文: CREATE TABLE table_name(列1のデータ型NOT NULL、………); 例: テーブルSTUDENT(student_id int NOT NULL、student_name varchar(10)、student_dept varchar(10)NOT NULL、classyear int);を作成します。
上記の例では、 NOT NULL テーブルの作成中に、STUDENTテーブルの2つの列student_idとstudent_deptに制約が適用されます。 STUDENTテーブルの説明は、どの列をNULLにすることができるか、またはNULLにすることができないかを示しています。テーブルに値を挿入するときの出力画面を参照してください。null制約ではないため、制約が適用されるフィールドにNULL値を入力することはできません。 UNIQUE 一意の制約により、列のエントリが重複しないようにします。 1つのテーブルに複数の一意のキーを含めることができます。構文: CREATE TABLE table_name(列1のデータ型UNIQUE、………); 例: テーブルstudent(student_id int Unique、student_name varchar(10)unique、student_dept varchar(10)not null、classyear int);を作成します。
上記のクエリは他の形式で記述できます。 テーブルstudent(student_id int、student_name varchar(10)unique、student_dept varchar(10)not null、classyear int、unique(student_id));を作成します); #一度に一意の複数の列を定義します 構文: CREATE TABLE table_name(列1のデータ型、………列n、制約制約名一意(列1、..)); 例: テーブルstudent(student_id int、student_name varchar(10)unique、student_dept varchar(10)not null、classyear int、Constraint cs_studentunique(student_id、student_name));を作成します。 #ALTERステートメントを使用してUNIQUE制約を追加する構文: テーブルtable_nameAddUnique(column_name); 例:を変更します テーブルStudentAddUnique(student_id); 構文を変更: テーブルtable_nameAdd制約の変更constraint_nameUnique(column1、column2); 例: テーブルStudentAddConstraintの変更cs_studentUnique(student_id、student_name);主キー 主キーは列内の各レコードを一意に識別し、1つのテーブルには単一の主キーがあります。主キーは単一の列または列のグループにすることができます。構文: テーブルtable_name(column data type Primary key、column2 data type、………); 例:を作成します テーブルSTUDENT(student_id int Primary Key、student_name varchar(20)、student_dept varchar(20)、classyear int);を作成します。
構文: テーブルtable_name(column1データ型、column2データ型、………column nデータ型、主キー(column_name)); 例:を作成します。 テーブルStudent(student_id int、student_name varchar(10)、student_dept varchar(10)、classyear int、Primary key(student_id));を作成します。
#ALTERステートメントの使用 構文: テーブルtable_nameadd主キー(column_name);を変更します。 例: 表studentadd主キー(student_id);を変更します。
構文: 表table_namedropの主キーを変更します;例: テーブルstudentdropの主キーを変更します。
デフォルト
DEFAULT制約は、デフォルト値を列に設定するために使用されます。この制約は、単一の列または複数の列に適用できます。 NULLは、テーブル内のすべての列のデフォルト値です。ユーザーがいずれかの列にnullまたは主拘束を適用しない場合、そのデフォルト値が変更されます。構文: テーブルtable_nameを作成します(列データ型、……。列データ型のデフォルト値); 例: テーブルstudentを作成します(student_id int、student_name varchar(20)、student_dept varchar(20)default'IT'、classyear int);
出力画面にデフォルト値が表示されます「IT」 列student_deptに割り当てられます。 「IT」 列student_deptに設定された値 列student_deptに値が指定されていない場合 。 #ALTERステートメントを使用して列にDEFAULT制約を追加する 構文: alter table table_namealtercolumn_namesetデフォルト値;例: テーブルstudentalterstudent_deptsetのデフォルトの変更'CS';
構文: alter table table_namealter column_namedrop default; 例: テーブルstudentalterstudent_deptdropのデフォルトを変更します;
外部キー 外部キーは、2つのテーブル間のリンクです。あるテーブルの主キーは、別のテーブルの参照/外部キーにすることができます。子テーブルと呼ばれる外部キーを含むテーブルと、そのテーブルを参照する主キーを持つ他のテーブルが親テーブルになります。親テーブルにデータが存在しない場合、ユーザーは子テーブルの前に親テーブルにレコードを入力する必要があります。 1つのテーブルに単一の主キーを含めることができます。DEPARTMENTテーブル | DEPT_ID | DEPT_NAME | DEPT_HEAD | DEPT_LOC |
| 0001 | 06 | ||
| 0002 | 04 | ||
| 0003 | 05 | ||
| 0004 | 07 |
| STUDENT_ID | STUDENT_NAME | DEPT_NAME |
| 10001 | 02 | |
| 10002 | 04 | |
| 10003 | CS | 01 |
| 10004 | 01 |
#Alterステートメントを使用して外部キー制約を適用します 構文: alter table table_nameadd外部キー(column_name)references parent_table_name(column_name of primary key); 例: テーブルstudentadd外部キー(dept_name)referencesdepartment(dept_name); 構文を変更: 表の変更table_nameadd制約constraint_nameforeignkey(column_name)references parent_table_name(column_name of primary key); 例: テーブルstudentadd制約の変更fk_studentforeignkey(dept_name)references department(dept_name); #DROP制約 構文: alter table table_namedrop外部キーconstraint_name;例: alter table studentdrop外部キーfk_student;テーブルstudentの作成(student_id int、student_name varchar(50)not null、student_dept varchar(30)default'IT'、classyear int check(classyear<5およびclassyear>0)、主キー(student_id) );