SQL/데이터리안 SQL 분석

[백문이불여일타] 고급 SQL 2

김초송 2022. 10. 19. 00:42

5. 정규표현식 (Regular Expression)

문자열에서 특정 패턴을 찾아내는 것

예시) 자음/모음으로 시작, 문자열에 숫자 3개 이상, 이메일 패턴 등

 

REGEXP '^[string].*'

^ : 시작

.* : 뒤에 어떤 것이 와도 매치 = LIKE %

\d : 어떤 숫자든 매치

 

-> SQL은 대소문자 구별 안 함 (파이썬 자바 등 다른 언어는 구별함)

 

연습문제

1) 모음으로 시작하고 끝나는 문자열?

    REGEXP ' ^[aeiou].*[aeiou]$ '

2) 모음으로 시작하지 않는 문자열?

     NOT REGEXP '^[aeiou]'

 

 

6. 사용자 정의 함수

CREATE FUNCTION function_name (parameter_name, data_type)
	RETURNS data_type (DETERMINISTIC)
BEGIN
	DECLARE variable_name data_type;
    	SET;
    	RETURN (Query) / variable_name;
END

SELECT function_name (parameter)

- 파라미터 여러 개 가능

예시: CREATE FUNCTION add (x, y)

                        RETURNS int

 

- DETERMINISTIC : input value 가 같으면 output value는 항상 같음

   호출할 때 마다 결과 값 다르게 할거면 X

 

- BEGIN-END에서 RETURN은 반드시 필요!

   중간에 변수를 선언 필요하면 DECLARE 와 SET

   세미콜론 반드시 써야 함

 

- 조건문
   CASE WHEN ~ END

   IF 함수

   IF 문 -> begin ~ end

 

 

번외) LIMIT 심화

SELECT * FROM table LIMT 5, 10

= row 6 ~ 15

= 5까지는 제외하고 그 다음부터 10개 뽑기

 

SELECT * FROM table LIMT N, 1

= SELECT * FROM table LIMT 1 OFFSET N

= row n+1

= 앞에서 n개는 지우고 그 다음 1개를 가져와라