ჷჷჷ񪂧MySQL 4-1.기기기기기기기기,기기기기기기

13828 ワード

1.プライマリ・キーの詳細
  • の重複しない一意の値
  • のみを許可する.
  • NULL値
  • は許可されていません.
  • 各テーブルには、1つのプライマリ・キー
  • しか指定できません.
    -- 기본키 넣는 방법 1
    CREATE TABLE people (
      first_name CHAR(2) PRIMARY KEY,
      last_name CHAR(3),
      nickname VARCHAR(10)
    );
    -- 기본키 넣는 방법 2
    CREATE TABLE people (
      first_name CHAR(2),
      last_name CHAR(3),
      nickname VARCHAR(10),
      PRIMARY KEY (first_name)
    );
    プライマリ・キーの変更
    ALTER TABLE people DROP PRIMARY KEY;
    ALTER TABLE people ADD PRIMARY KEY (last_name);
    複数のプライマリ・キー
    CREATE TABLE people (
      first_name CHAR(2),
      last_name CHAR(3),
      nickname VARCHAR(10),
      PRIMARY KEY (first_name, last_name)
    );
    INSERT INTO PEOPLE VALUES('홍', '길동', '별명');
    INSERT INTO PEOPLE VALUES('전', '우치', '별명');
    INSERT INTO PEOPLE VALUES('전', '길동', '별명');
    INSERT INTO PEOPLE VALUES('홍', '우치', '별명');
    INSERT INTO PEOPLE VALUES('홍', '길동', '별명');
    INSERT INTO PEOPLE VALUES('전', '우치', '별명');
    2.一意鍵の詳細について
  • 繰返し制限、NULL値
  • -- 고유키 넣는 방법 1
    CREATE TABLE people (
      person_id INT AUTO_INCREMENT PRIMARY KEY,
      first_name CHAR(2) UNIQUE,
      last_name CHAR(3)
    );
    -- 고유키 넣는 방법 2
    CREATE TABLE people (
      person_id INT AUTO_INCREMENT PRIMARY KEY,
      first_name CHAR(2),
      last_name CHAR(3),
      UNIQUE (first_name)
    );
    -- 다중 고유키
    CREATE TABLE people (
      person_id INT AUTO_INCREMENT PRIMARY KEY,
      first_name CHAR(2),
      last_name CHAR(3),
      UNIQUE (first_name, last_name)
    );
    3.外部キー
    外部キーの追加
    ALTER TABLE _자식테이블명
      ADD CONSTRAINT _제약명 
      FOREIGN KEY ( _자식테이블외래키 )
      REFERENCES 부모테이블명 ( _부모테이블기본키 )
      -- ON DELETE _삭제시제약 
      -- ON UPDATE _수정시제약 
    外部キーの削除
    ALTER TABLE _자식테이블명 DROP FOREIGN KEY _자식테이블외래키
  • 💡 外部キーはNULL値であるか、親テーブルのデフォルトキー値と同じである必要があります.
  • ビジネスでsectionsの外部キーを設定し、実行します.
    INSERT INTO businesses 
      (fk_section_id, business_name, status, can_takeout) 
      VALUES ('8', '섹션에없는식당', 'OPN', '1');
    外部キーコンストレイント
    制約説明注記NO ACTION、RESTRICTサブテーブルにこの外部キーが含まれている場合、CASCADEサブテーブルの行もSET NULLサブテーブルの外部キーをNULLとして修正/削除し、サブテーブルの外部キーがNOT NULLである場合、SET DEFAULTサブテーブルの外部キーをデフォルト値として設定することはできず、InnoDBエンジンでは使用できません.
    💡 企業の外部キーをRESTRICTとCASCADEに変換し、次の操作を行います.
    DELETE FROM sections WHERE section_id = 1;
    DELETE FROM sections WHERE section_id = 2;
    UPDATE sections SET section_id = 10
    WHERE section_id = 3;
    UPDATE sections SET section_id = 11
    WHERE section_id = 4;