SQL19 [SQL] Function, Procedure, Trigger, View, Package, Index, Synonyms, Cursor Function : 매개변수를 받아 특정 계산(작업)을 수행하고 결과를 반환하는 기능 Procedure : 특정 작업을 위한 쿼리들의 블록(함수와 거의 비슷) 장점 : 1. 하나의 요청으로 여러 SQL문을 실행(네트워크 부하를 줄일 수 있음) 2. 네트워크 소요 시간을 줄여 성능 개선 3. 여러 어플리케이션과 공유 가능(API처럼 제공 가능) 4. 기능 변경이 편함 단점 : 1. 문자나 숫자열 연산에 사용하면 오히려 C, Java보다 느린 성능을 보일 수 있음 2. 유지보수가 어려움(프로시져가 앱의 어디에 사용되는지 확인 어려움) Trigger : 사전적 뜻은 총의 방아쇠로 총의 방아쇠를 당기는 것과 같이 어떤 이벤트의 자동 실행 View : 하나 이상의 테이블에서 원하는 모든 데이터를 선택하여 간단하게.. 2023. 8. 31. [SQL] 프로시저(PROCEDURE) & 함수(FUNCTION) 프로시저(PROCEDURE) 조회 쿼리 SELECT * FROM USER_SOURCE WHERE TYPE = 'PROCEDURE' AND NAME = '프로시저명' 함수(FUNCTION) 조회 쿼리 SELECT * FROM USER_SOURCE WHERE TYPE = 'FUNCTION' AND NAME = '함수명' 프로시저와 함수의 차이 프로시저(PROCEDURE) : 넓은 의미로는 어떤 업무를 수행하기 위한 절차를 뜻한다. 함수(FUNCTION) : 위의 프로시저의 각 프로세스를 수행하기 위해 필요한 기능들을 함수라 한다. 프로시저(PROCEDURE) 함수(FUNCTION) 특정 작업을 수행 특정 계산을 수행 리턴 값을 가질 수도 안 가질 수도 있음 리턴 값을 반드시 가져야 함 리턴 값을 여러 개 가.. 2023. 7. 28. [SQL] MySQL의 SQL_MODE SQL_MODE 확인 SHOW VARIABLES LIKE 'SQL_MODE' SQL_MODE 초기화 SET SQL_MODE = ''; 2022. 11. 30. [SQL] @변수 SET @변수명 = 초기값 (:= 가능) SELECT @변수명 또는 SELECT @변수명 := @변수명 + 더해줄 값 등으로 사용 가능 2022. 11. 30. [SQL] ROW_NUMBER() SELECT NAME , OCCUPATION FROM OCCUPATIONS SELECT NAME , OCCUPATION , ROW_NUMBER() OVER (ORDER BY NAME) FROM OCCUPATIONS SELECT NAME , OCCUPATION , ROW_NUMBER() OVER (PARTITION BY OCCUPATION ORDER BY NAME) FROM OCCUPATIONS 2022. 11. 30. [SQL] 대소문자 구분 없이 특정 문자열 포함하는 데이터 조회 ANIMAL_INS 테이블의 데이터 중 NAME 컬럼 값이 대소문자 구분 없이 'el'을 포함하면서 ANIMAL_TYPE이 'Dog'인 데이터의 ANIMAL_ID와 NAME을 오름차순으로 정렬 UPPER(NAME) : NAME 컬럼 값의 대문자 LOWER(NAME) : NAME 컬럼 값의 소문자 LIKE : 같은지 비교 CONCAT('A', 'B', 'C') : 'A'와 'B'와 'C'를 연결 '%' : 임의의 문자열('_' : 하나의 문자) SELECT ANIMAL_ID , NAME FROM ANIMAL_INS WHERE UPPER(NAME) LIKE UPPER('%el%') AND ANIMAL_TYPE = 'Dog' ORDER BY NAME SELECT ANIMAL_ID , NAME FROM ANIM.. 2022. 11. 29. [SQL] 집계 함수를 조건으로 사용 COUNT나 MAX와 같은 집계 함수를 조건으로 쓸 경우 'WHERE'절이 아닌 'HAVING'절에 쓴다. ------------------------------------------------------------------------------------------- EX) (X) SELECT ID , NAME , HOST_ID FROM PLACES WHERE HOST_ID IN ( SELECT HOST_ID FROM PLACES WHERE COUNT(HOST_ID) > 1 GROUP BY HOST_ID ) ORDER BY ID ------------------------------------------------------------------------------------------- EX) (.. 2022. 11. 29. [SQL] 멀티 테이블 2022. 11. 29. [SQL] MySQL & Oracle ★NULL처리★ MySQL : 빈 값과 NULL 구분함 IF( expression1, expression2, expression3 ) expression1가 참이면 expression2를, 거짓이면 expression3을 반환합니다. IFNULL( expression1, expression2 ) expression1이 NULL이 아니면 expression1을, NULL이면 expression2를 반환합니다. NULLIF( expression1, expression2 ) expression1과 expression2가 같으면 NULL을, 같지 않으면 expression1를 반환합니다. SELECT * FROM MEMBER WHERE NAME IS NULL NAME이 NULL인 경우만 나옴 SELECT * F.. 2022. 11. 29. 이전 1 2 3 다음