https://school.programmers.co.kr/learn/courses/30/lessons/131112
▶ LIKE를 이용한 검색
검색 조건을 부분적으로만 알고 있다면 LIKE 키워드를 이용해 검색할 수 있다. 검색 조건을 정확히 알면 = 연산자로 조건을 표현하면 되지만 부분적으로만 알고 있다면 = 대신 LIKE 키워드를 사용한다.
단, LIKE 키워드는 문자열을 이용하는 조건에만 사용할 수 있다.
LIKE 키워드와 함께 사용할 수 있는 대표 기호는 아래와 같다.
기호 | 설명 |
% | 0개 이상의 문자 (문자의 내용과 개수는 상관 없음) |
_ | 1개의 문자 (문자의 내용은 상관 없음) |
LIKE 키워드와 함께 사용할 수 있는 예는 아래와 같다.
사용 예 | 설명 |
LIKE '데이터%' | 데이터로 시작하는 문자열(데이터로 시작하기만 하면 길이 상관무) |
LIKE '%데이터' | 데이터로 끝나는 문자열(데이터로 끝나기만 하면 길이 상관무) |
LIKE '%데이터%' | 데이터가 포함된 문자열 |
LIKE '데이터___' | 데이터로 시작하는 6자 길이의 문자열 |
LIKE '__한%' | 세 번째 글자가 '한'인 문자열 |
[프로그래머스 문제 설명]
다음은 식품공장의 정보를 담은 FOOD_FACTORY 테이블입니다. FOOD_FACTORY 테이블은 다음과 같으며 FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO는 각각 공장 ID, 공장 이름, 주소, 전화번호를 의미합니다.
Column nameTypeNullable
FACTORY_ID | VARCHAR(10) | FALSE |
FACTORY_NAME | VARCHAR(50) | FALSE |
ADDRESS | VARCHAR(100) | FALSE |
TLNO | VARCHAR(20) | TRUE |
문제
FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID ASC;
▶ NULL 값 대체
[ORACLE] NVL 함수
: 널처리 함수. data 값이 null 값일때 임의설정값으로 처리해주기
NVL("값","지정값")
값이 null 인 경우, 지정 값을 출력하고 그렇지 않으면 원래값을 그대로 출력한다.
SQL별 null 처리함수
DB 언어 | 처리함수 |
ORACLE | NVL(expr1, expr2) |
MSSQL | ISNULL(expr1, expr2) |
MYSQL | IFNULL(expr1,expr2) |
MYSQL | COALESCE(expr1,expr2,...expr) |
https://school.programmers.co.kr/learn/courses/30/lessons/132201
문제 설명
다음은 종합병원에 등록된 환자정보를 담은 PATIENT 테이블입니다. PATIENT 테이블은 다음과 같으며 PT_NO, PT_NAME, GEND_CD, AGE, TLNO는 각각 환자번호, 환자이름, 성별코드, 나이, 전화번호를 의미합니다.
Column nameTypeNullablePT_NO | VARCHAR(10) | FALSE |
PT_NAME | VARCHAR(20) | FALSE |
GEND_CD | VARCHAR(1) | FALSE |
AGE | INTEGER | FALSE |
TLNO | VARCHAR(50) | TRUE |
문제
PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.
SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE') as TLNO
FROM PATIENT
WHERE AGE <= 12 and GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;
'CS > 데이터베이스' 카테고리의 다른 글
SQL - 날짜 관련 함수 (0) | 2023.02.22 |
---|---|
SQL - SELECT : 여러 가지 조건 처리 (0) | 2023.02.21 |
데이터베이스 : SQL (0) | 2023.01.21 |
데이터베이스 : 정규화(2) - 기본 정규형과 정규화 과정 (0) | 2022.05.31 |
데이터베이스 - 정규화 (1) : 이상 현상과 함수 종속 (0) | 2022.05.26 |