1. 主キー制約の概要
- 主キー: データ テーブル内の 1 つ以上のフィールド。データ テーブル内のレコードを一意に識別するために使用されます。
2. 主キー制約を追加する
2.1 テーブル作成時に制約を追加する
書き込み 1:
CREATE TABLE tb_students(
stu_num char(5) primary key,
stu_name varchar(10) not null,
stu_sex char(1) not null,
stu_age number(2) not null,
stu_tel char(11) not null
);
書き方2(裏面に記載):
CREATE TABLE tb_students(
stu_num char(5),
stu_name varchar(10) not null,
stu_sex char(1) not null,
stu_age number(2) not null,
stu_tel char(11) not null,
primary key(stu_num)
);
2.2 テーブル作成後に制約を追加する
以下を次のように変更します: ADD CONSTRAINTS
例: これで、制約なしの学生情報テーブル td_students が作成されました。
CREATE TABLE tb_students(
stu_num char(5),
stu_name varchar(10) not null,
stu_sex char(1) not null,
stu_age number(2) not null,
stu_tel char(11) not null
);
これで、次のコードを使用して、主キーを td_students テーブルの stu_nums に追加できます。
ALTER TABLE tb_students ADD CONSTRAINTS pk_students PRIMARY KEY(stu_num);
3. 結合された主キー
- 結合主キー: 2 つ以上のフィールドを主キーとして使用します。
4. 複合主キーを追加する
4.1 テーブル作成時に結合主キーを追加する
成績テーブル tb_grades を作成する
CREATE TABLE tb_grades(
course_id char(3),
course_name varchar2(50),
stu_num char(5),
stu_name varchar2(10),
score number(3),
primary key(course_id,stu_num)
);
4.2 最初にテーブルを作成し、次に結合主キーを追加します
以下を次のように変更します: ADD CONSTRAINTS
まず、制約なしでスコア テーブルを作成します。
CREATE TABLE tb_grades(
course_id char(3),
course_name varchar2(50),
stu_num char(5),
stu_name varchar2(10),
score number(3)
);
制約を追加する
ALTER TABLE tb_grades ADD CONSTRAINTS pk_grades PRIMARY KEY(course_id,stu_num);