My SQL (3) - TCP SCHOOL

13876 ワード

n.関数


フローコントロール


1. CASE


CASE演算子は、値を比較したり、式の論理値に基づいて異なる値を返したりすることができます.
1. CASE value

    WHEN [compare_value] THEN result

    [WHEN [compare_value] THEN result] ...

    [ELSE result]

END

2. CASE

    WHEN [condition] THEN result 

    [WHEN [condition] THEN result] ...

    [ELSE result]

END
最初のCASE文は、value値をcompare value値と比較し、同じ場合はTHENセクションの結果を返します.
2番目のCASE文では、条件が真の場合、結果が返されます.
ELSEセクションがなく、条件が満たされていない場合はNULLを返します.

2. IF()


IF()関数は、最初の引数として渡された式の論理値に基づいて異なる値を返します.
IF(expr1, expr2, expr3)
expr 1が真の場合、expr 2が返され、偽の場合、expr 3が返される.

3. IFNULL()


expr 1の値がNULLでない場合、expr 1自体が返され、NULLの場合、expr 2が返されます.
IFNULL(expr1, expr2)

4. NULLIF()

NULLIF(expr1, expr2)
expr 1とexpr 2の値が等しい場合はNULLを返し、そうでない場合はexpr 1を返します.

パターンマッチング


1. LIKE


LIKE演算子は、特定のパターンを含むデータのみを検索するために使用されます.
パターンが含まれているかどうかを検索する点では、=演算子とは異なります.
EX)~で始まるデータ、~で終わるデータ
SELECT * FROM Reservation

WHERE Name LIKE '장%';

  • これとは反対のNOT LIKE演算子もあります.

  • ワイルドカード:文字列の任意の文字または文字列を置換する記号


    -“%”:0文字以上を置換します.
    -「」:1文字を置換します.
  • ex) WHERE RoomNum LIKE '20__';
    // '' 로 감싸줘야 한다.

    2. REGEXP


    LIKE演算子より複雑なパターンを検索するために使用します.

    LIKEと同様に、これとは逆のNOT REGEXP演算子も存在する.

    せいけいかん

  • BINARY

  • SELECT BINARY 'a' = 'A', // 결과 : 0
    
    'a' = 'A'; // 결과 : 1
  • CAST

  • CAST(expr AS type)
  • CONVERT

  • 1. CONVERT(expr, type)
    2. CONVERT(expr USING transcoding_name)

    こうそくじょうけん


    制約条件(constraint)とは、データ入力を受信する際に実行されるチェックルールであり、データの整合性を確保するために使用されます.
    これらの制約は、CREATE文を使用してテーブルを作成するとき、またはALTER文を使用してフィールドを追加するときに設定することもできます.

    NOT NULL


    Null以外の制約を設定すると、このフィールドはNull値を保存できません.
    この制約を設定するフィールドには、データが必要です.
  • CREATE文でNOT NULL
  • を設定
    CREATE TABLE 테이블이름
    
    (
    
        필드이름 필드타입 NOT NULL,
    
        ...
    
    )
  • ALTER文でNOT NULL
  • を設定
    ALTER TABLE 테이블이름
    
    ADD 필드이름 필드타입 NOT NULL
    
    
    ALTER TABLE 테이블이름
    
    MODIFY COLUMN 필드이름 필드타입 NOT NULL

    UNIQUE


    UNIQUE制約を設定する場合、このフィールドには異なる値が必要です.
    つまり、この制約が設定されているフィールドは重複値を保存できません.
  • CREATE文でUNIQUE
  • を設定
    1. CREATE TABLE 테이블이름
    
    (
    
        필드명 필드타입 UNIQUE,
    
        ...
    
    )
    
    2. CREATE TABLE 테이블이름
    
    (
    
        필드이름 필드타입,
    
        ...,
    
        [CONSTRAINT 제약조건이름] UNIQUE (필드이름)
    
    )
  • ALTER文でUNIQUE
  • を設定
    // 새로운 필드 생성
    1. ALTER TABLE 테이블이름
    
       ADD 필드이름 필드타입 UNIQUE
    
    2. ALTER TABLE 테이블이름
    
       ADD [CONSTRAINT 제약조건이름] UNIQUE (필드이름)
    // 기존 필드에 추가
    1. ALTER TABLE 테이블이름
    
       MODIFY COLUMN 필드이름 필드타입 UNIQUE
    
    2. ALTER TABLE 테이블이름
    
       MODIFY COLUMN [CONSTRAINT 제약조건이름] UNIQUE (필드이름)
    2番目の構文を使用して、制約名を設定します.
    制約条件の名前を設定すると、DROP文で条件を削除できます.
    ALTER TABLE 테이블 이름
    DROP INDEX 제약조건 이름

    PRIMARY KEY


    PRIMARY KEY制約を設定すると、このフィールドにはNOT NULLおよびUNIQUE制約のすべての特性があります.
    これらのPRIMARY KEY制約条件をプライマリ・キーと呼びます.
    各テーブルは、1つのフィールドにPRIMARY KEYのみ設定できます.
    これらのPRIMARY KEY制約は、テーブル内のデータをすばやく簡単に検索するのに役立ちます.
    設定方法はUNIQUEと全く同じです.
    以下の方法で設定されたPRIMARY KEY制約を削除できます.
    ALTER TABLE 테이블이름
    
    DROP PRIMARY KEY

    FOREIGN KEY

  • FOREGN KEY制約を設定するフィールドを外部キーと呼び、あるテーブルを別のテーブルに関連付ける.
  • 外部キーが設定されたテーブルにレコードが入力されると、レコードはそのテーブルの内容に従って入力される.
  • FOREGN KEY制約を設定する場合、参照するテーブルのフィールドにUNIQUEまたはPRIMARY KEY制約を設定する必要があります.
  • FOREGN KEY設定

  • CREATE TABLE 테이블이름
    (
        필드이름 필드타입,
        ...,
        [CONSTRAINT 제약조건이름]
        
        FOREIGN KEY (필드이름)
        
        REFERENCES 테이블이름 (필드이름)
    )
    
    ALTER TABLE 테이블이름
    
    ADD [CONSTRAINT 제약조건이름]
    
    FOREIGN KEY (필드이름)
    
    REFERENCES 테이블이름 (필드이름)
  • FOREGN KEYの削除

  • ALTER TABLE 테이블이름
    
    DROP FOREIGN KEY 제약조건이름

    ON DELETE, ON UPDATE


    FOREGN KEY制約で参照されるテーブルでデータを変更または削除すると、参照されるテーブルのデータも同様の影響を受けます.
    次のキーワードを使用して、FOREGN KEY制約下で参照テーブルの動作を事前設定できます.

  • ON DELETE

  • ON UPDATE
  • 参照テーブルの値が削除された場合は、の動作をON DELETE構文に設定できます.
    また、参照テーブルの値が変更された場合は、動作をON UPDATE構文に設定できます.
    次の操作を設定できます.

  • CASCADE:参照されたテーブルからデータを削除または変更すると、参照されたテーブルでも削除および変更が行われます.

  • SET NULL:参照されたテーブルからデータを削除または変更すると、参照されたテーブルのデータはNULLになります.

  • NO ACTION:参照されたテーブルからデータを削除または変更しても参照されたテーブルのデータは変更されません.

  • SET DEFAULT:参照されたテーブルからデータを削除または変更すると、参照されたテーブルのデータはフィールドのデフォルト値に設定されます.

  • RESTRICT:参照したテーブルにデータが残っている場合は、参照したテーブルのデータを削除または変更することはできません.
  • DEFAULT


    DEFAULT制約では、フィールドのデフォルト値を設定できます.
    設定方法は、一般的な制約と同じです.
    CREATE TABLE 테이블이름
    (
        필드이름 필드타입 DEFAULT 기본값,
        ...
    )
    
    
    ALTER TABLE 테이블이름
    
    ADD 필드이름 필드타입 DEFAULT 기본값