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 '장%';
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
IF(expr1, expr2, expr3)
IFNULL(expr1, expr2)
NULLIF(expr1, expr2)
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 TABLE 테이블이름
(
필드이름 필드타입 NOT NULL,
...
)
ALTER TABLE 테이블이름
ADD 필드이름 필드타입 NOT NULL
ALTER TABLE 테이블이름
MODIFY COLUMN 필드이름 필드타입 NOT NULL
UNIQUE
UNIQUE制約を設定する場合、このフィールドには異なる値が必要です.
つまり、この制約が設定されているフィールドは重複値を保存できません.
1. CREATE TABLE 테이블이름
(
필드명 필드타입 UNIQUE,
...
)
2. CREATE TABLE 테이블이름
(
필드이름 필드타입,
...,
[CONSTRAINT 제약조건이름] 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設定
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 UPDATE構文に設定できます.
次の操作を設定できます.
CASCADE:参照されたテーブルからデータを削除または変更すると、参照されたテーブルでも削除および変更が行われます.
SET NULL:参照されたテーブルからデータを削除または変更すると、参照されたテーブルのデータはNULLになります.
NO ACTION:参照されたテーブルからデータを削除または変更しても参照されたテーブルのデータは変更されません.
SET DEFAULT:参照されたテーブルからデータを削除または変更すると、参照されたテーブルのデータはフィールドのデフォルト値に設定されます.
RESTRICT:参照したテーブルにデータが残っている場合は、参照したテーブルのデータを削除または変更することはできません.
DEFAULT
DEFAULT制約では、フィールドのデフォルト値を設定できます.
設定方法は、一般的な制約と同じです.
CREATE TABLE 테이블이름
(
필드이름 필드타입 DEFAULT 기본값,
...
)
ALTER TABLE 테이블이름
ADD 필드이름 필드타입 DEFAULT 기본값
Reference
この問題について(My SQL (3) - TCP SCHOOL), 我々は、より多くの情報をここで見つけました https://velog.io/@bins1225/My-SQL-3-TCP-SCHOOLテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol