データテーブルの作成と変更の管理 (テーブル整合性制約)

1. 実験の目的

1.時計の基礎知識をマスターする。

2. Navicat またはその他のサードパーティ管理ツールと SQL ステートメントを使用してテーブルを作成する方法を習得します。

3. テーブルの変更、表示、削除などの基本的な操作方法をマスターします。

4. テーブル内の整合性制約の定義をマスターします。

5. 整合性制約の役割をマスターする

2. 実験内容と要件

1.テーブルの定義と変更の操作

schoolInfo データベースに TeacherInfo テーブルを作成します。テーブル構造は次のとおりです。

2. Staffinfo データベースを作成し、部門テーブルと従業員テーブルを定義して、2 つのテーブル間の整合性制約を完了します。

部門テーブルの構造

フィールド名

フィールドの説明

データの種類

主キー

外部キー

空ではない

それだけ

自己増加

した

部門番号

INT(4)

はい

いいえ

はい

はい

いいえ

d_name

部署名

VARCHAR(20)

いいえ

いいえ

はい

はい

いいえ

関数

部門機能

VARCHAR(50)

いいえ

いいえ

いいえ

いいえ

いいえ

住所

部署の所在地

VARCHAR(20)

いいえ

いいえ

いいえ

いいえ

いいえ

Worker テーブルの構造

フィールド名

フィールドの説明

データの種類

主キー

外部キー

空ではない

それだけ

自己増加

ID

シリアルナンバー

INT(4)

はい

いいえ

はい

はい

はい

番号

従業員ID

INT(10)

いいえ

いいえ

はい

はい

いいえ

した

部門番号

INT(4)

いいえ

はい

いいえ

いいえ

いいえ

名前

名前

VARCHAR(20)

いいえ

いいえ

はい

いいえ

いいえ

セックス

性別

VARCHAR(4)

いいえ

いいえ

はい

いいえ

いいえ

誕生日

生年月日

日にち

いいえ

いいえ

いいえ

いいえ

いいえ

住所

自宅の住所

VARCHAR(50)

いいえ

いいえ

いいえ

いいえ

いいえ

3. 実験方法と手順

1.テーブルの定義と変更の操作

(1) まずデータベース schoolInfo を作成します。

(2) TeacherInfoテーブルを作成します。

(3) TeacherInfo テーブルの name フィールドのデータ型を VARCHAR(30) に変更します。

(4) 誕生日欄の位置を性別欄の前に変更します。

(5) num フィールドの名前を t_id に変更します。

(6) TeacherInfoテーブルのアドレスフィールドを削除します。

(7) TeacherInfo テーブルに、wage という名前のフィールドを追加します。データ型は FLOAT です。

(8) TeacherInfo テーブルの名前を TeacherInfo_Info に変更します。

(9) TeacherInfo_InfoテーブルのストレージエンジンをMyISAMタイプに変更します。

2. Staffinfo データベースを作成し、部門テーブルと従業員テーブルを定義して、2 つのテーブル間の整合性制約を完了します。

(1) Staffinfo データベースの下に、部門テーブルと従業員テーブルを作成します。

(2) 部門テーブルを削除します。

(3) 部門テーブルを削除する

(4) ワーカーテーブルの外部キー制約を削除する

(5) 再度部門テーブルを削除します。

4. 実験結果

1.テーブルの定義と変更の操作

(1) まずデータベース schoolInfo を作成します。

コード:

データベース schoolInfo を作成します。

結果:

(2) TeacherInfoテーブルを作成します。

コード:

 テーブル TeacherInfo を作成 (

id int(4) not null 一意の主キー auto_increment、

num int(10)null ではありません、

名前 varchar(20) が null ではありません。

性別 VARCHAR(4) が null ではありません。

誕生日の日時、

アドレス varchar(50)

);

結果:

(3) TeacherInfo テーブルの name フィールドのデータ型を VARCHAR(30) に変更します。

コード:

テーブル TeacherInfo を変更します。名前 varchar(30) が null ではありません。

結果:

(4) 誕生日欄の位置を性別欄の前に変更します。

コード:

 テーブル TeacherInfo を変更し、名前の後の誕生日日時を変更します。

結果:

(5) num フィールドの名前を t_id に変更します。

コード:

 テーブル TeacherInfo の変更 num t_id int(10) が null ではありません。

結果:

(6) TeacherInfoテーブルのアドレスフィールドを削除します。

コード:

 テーブル TeacherInfo を変更してアドレスを削除します。

結果:

(7) TeacherInfo テーブルに、wage という名前のフィールドを追加します。データ型は FLOAT です。

コード:

テーブル TeacherInfo を変更して賃金フロートを追加します。

結果:

 

(8) TeacherInfo テーブルの名前を TeacherInfo_Info に変更します。

コード:

 テーブル TeacherInfo を変更します。 TeacherInfo_Info の名前を変更します。

結果:

(9) TeacherInfo_InfoテーブルのストレージエンジンをMyISAMタイプに変更します。

コード:

 テーブル TeacherInfo_Info エンジン = MyISAM を変更します。

結果:

2. Staffinfo データベースを作成し、部門テーブルと従業員テーブルを定義して、2 つのテーブル間の整合性制約を完了します。

(1) Staffinfo データベースの下に、部門テーブルと従業員テーブルを作成します。

コード:

CREATE TABLE 部門(

d_id INT(4) NOT NULL 一意の主キー、

d_name VARCHAR(20) NOT NULL UNIQUE、

`関数` VARCHAR(50)、

 アドレス VARCHAR(50)

 );

テーブルワーカーを作成(

id int(4) not null 一意の主キー auto_increment、

num int(10) null 一意ではありません。

d_id int(4)、

名前 varchar(20) が null ではありません。

sex varchar(4) が null ではありません。

誕生日の日付、

アドレス varchar(50)

);

結果:

(2) 部門テーブルを削除します。

コード:

ドロップテーブル部門。

結果:

(3) 部門テーブルを削除する

コード:

ドロップテーブル部門。

結果:

部門テーブルは以前に削除されているため、再度削除に失敗し、不明なテーブルが表示されます

(4) ワーカーテーブルの外部キー制約を削除する

コード:

テーブルの作成時に外部キーを直接追加できないため、ここではテーブルの作成後に外部キーを追加する必要があります。

テーブルワーカーを変更して制約を追加します。 d_id 外部キー ( d_id ) は部門( d_id ) を参照します。

ワーカーはスレーブテーブルの名前です

d_idは 1 つの外部キー制約名です

部門はメインテーブル名です

テーブルワーカーを変更して外部キー d_id を削除します。

結果:

(5) 再度部門テーブルを削除します。

コード:

ドロップテーブル部門。

結果:

5. 知識ポイントのまとめ

テーブルの整合性制約には次のものが含まれます。

主キー #レコードを一意に識別できるテーブルの主キーとしてフィールドを識別します

外部キー #フィールドをテーブルの外部キーとして識別します

not null # フィールドを空にすることはできず、値を割り当てる必要があることを示します

一意のキー # フィールドが一意であることを識別します

auto_increment #フィールド (整数型および主キー) の値の自動増加を識別します。

default # このフィールドにデフォルト値を設定し、レコードを挿入するときにフィールドに値を割り当てずにデフォルト値を使用します。

unsigned # unsigned (署名など)

zerofill # 0で埋める

 

おすすめ

転載: blog.csdn.net/m0_61607990/article/details/127160386