MySQLプライマリ・キー制約、NULL以外の制約、一意の制約、外部キー制約

7030 ワード

MySQLプライマリ・キー制約、NULL以外の制約、一意の制約、外部キー制約
  • 概念:テーブル内のデータを制約(限定)し、データの正確性、有効性、完全性を保証する
  • 分類:
  • プライマリ・キー制約:primary key
  • 非空拘束:not null
  • 一意制約:unique
  • 外部キー制約:foreign key
  • primary key:プライマリ・キー制約
  • の意味:一意かつ非空
  • テーブルには、プライマリ・キー
  • のフィールドが1つしかありません.
  • プライマリ・キーは、テーブルに記録する一意の識別子
  • である.
  • テーブルの作成時にプライマリ・キー
    CREATE TABLE student(
    	s_id int primary key, -- s_id      
        name varchar(20)
    );
    
  • を追加
  • テーブルを作成したら、プライマリ・キー
    ALTER TABLE student MODIFY id INT PRIMARY KEY;
    
  • を追加します.
  • プライマリ・キー制約
    ALTER TABLE student DROP PRIMARY KEY;
    
  • を削除する.
  • not null:Null以外の制約
  • 追加カラムデータはNULL
  • にはできません.
  • テーブルの作成時に、空でない制約
    CREATE TABLE student(
    	s_id int,
        name varchar(20) NOT NULL --name      
    );
    
  • を追加する.
  • テーブルの作成後、空でない制約
    ALTER TABLE student MODIFY name VARCHAR(20) NOT NULL;
    
  • を追加します.
  • プライマリ・キー制約
    ALTER TABLE student MODIFY name VARCHAR(20);
    
  • を削除する.
  • unique:一意の制約
  • カラムデータの追加
  • を繰り返すことはできません.
  • はNULL値を持つことができますが、
  • は1つしかありません.
  • テーブルの作成時に一意制約
    CREATE TABLE student(
    	s_id int,
        phone varchar(20) NUIQUE --phone      
    );
    
  • を追加
  • テーブルを作成したら、一意制約
    ALTER TABLE student MODIFY phone VARCHAR(20) UNIQUE;
    
  • を追加します.
  • 一意制約
    ALTER TABLE student DROP INDEX phone;
    
  • を削除する.
  • foreign key:外部キー制約
  • テーブルの作成時に外部キー制約
    CREATE TABLE   (
    	...
    	   ,
    	CONSTRAINT      FOREIGN KEY (     ) REFERENCE     (     );
    );
    
  • を追加する.
  • テーブルを作成した後、外部キー
    ALTER TABLE    ADD CONSTRAINT      FOREIGN KEY (    ) REFERCES     (     );
    
  • を追加します.
  • 外部キー
    ALTER TABLE    DROP FOREIGN KEY     ;
    
  • を削除する.
  • カスケード操作
  • カスケード操作
    ALTER TABLE    ADD CONSTRAINT      FOREIGN KEY (    ) REFERCES     (     ) ON UPDATE CASCADE ON DELETE CASCADE;
    
  • を追加する.
  • カスケード更新:ON UPDATE CASCADE
  • カスケード削除:ON DELETE CASCADE