SyntaxHighlighter.all(); [데이터베이스] 2. 데이터 타입 (숫자, 문자열, 날짜와 시간타입) & 패턴매칭(와일드 카드과 REGEXP) :: 게을러지고 싶어 부지런한 개발자

숫자 타입

1. 정수 타입 

2. 고정 소수점 타입

3. 부동 소수점 타입 

 

 

문자열 타입

1. CHAR와 VARCHAR

  • 공통점: 둘 다 문자열 데이터를 저장
  • 차이점:  CHAR은 문자열 길이 한 번 설정되면 그대로 고정. VARCHAR는 길이 고정되지 않는 가변 길이

2. BINARY와 VARBINARY

3. BLOB과 TEXT

4. ENUM

5. SET

 

 

날짜와 시간 타입 

1. DATE, DATETIME, TIMESTAMP

  • DATE: 날짜를 저장할 수 있는 타입 (YYYY-MM-DD) 
  • DATETIME: 날짜 + 시간까지 저장할 수 있는 타입(YYYY-MM-DD HH:MM:SS)
  • TIMESTAMP: 날짜와 시간을 나타내는 타임스탬프를 저장할 수 있는 타입. 사용자가 별다른 입력을 주지 않으면 데이터가 마지막으로 입력되거나 변경된 시간이 저장되므로, 최종 변경 시각을 저장하고 확인하는 데 유용

2. TIME : 시간을 저장 (HH:MM:SS) 

3. YEAR : 연도를 저장

 

YEAR(4)는 4자리의 연도를 저장할 수 있습니다.

 

1. 4자리 숫자로 저장하면, 저장할 수 있는 범위는 1901년부터 2155년까지가 됩니다.

2. 4자리 문자열로 저장하면, 저장할 수 있는 범위는 1901년부터 2155년까지가 됩니다.

3. 숫자 0을 저장하면, 2000년이 아닌 0000년으로 저장되므로, 2000년은 반드시 문자열 '0' 또는 '00'으로 입력해야 함. 

유효하지 않은 연도는 '0000'으로 저장됩니다.

 

 

패턴매칭:  1) 와일드 카드

- 문자열 내에서 임의의 문자나 문자열을 대체하기 위해 사용되는 기호

% 0개 이상의 문자를 대체함 ex) SELECT * FROM Reservation WHERE Name NOT LIKE '장%';
_ 1개의 문자를 대체함  ex) SELECT * FROM Reservation WHERE RoomNum LIKE '20__';

패턴매칭:  2) REGEXP

- LIKE 연산자보다 더욱 복잡한 패턴을 검색하고 싶을 때 사용 

- REGEXP 연산자는 정규 표현식을 토대로 하는 패턴 매칭 연산을 제공 

- 만약 해당 패턴과 불일치한 데이터 찾고자할 땐 NOT REGEXP 연산자 사용 

. 줄 바꿈 문자(\n)를 제외한 임의의 한 문자를 의미함.
* 해당 문자 패턴이 0번 이상 반복됨.
+ 해당 문자 패턴이 1번 이상 반복됨.
^ 문자열의 처음을 의미함.
$ 문자열의 끝을 의미함.
| 선택을 의미함.(OR)
[...] 괄호([]) 안에 있는 어떠한 문자를 의미함.
[^...] 괄호([]) 안에 있지 않은 어떠한 문자를 의미함.
{n} 반복되는 횟수를 지정함.
{m,n} 반복되는 횟수의 최솟값과 최댓값을 지정함.

ex) Name 필드(속성)의 값이 '홍'으로 시작하거나, '산'으로 끝나는 레코드(행)를 선택

SELECT * FROM Reservation WHERE Name REGEXP '^홍|산$';

+ Recent posts