[머신 러닝] 2-7 SQL CRUD - WHERE & LIMIT

혯응·2024년 9월 6일

WHERE

1. WHERE LIKE

(문자열에 대한 패턴을 지정하여 특정 문자열이 해당 패턴을 따르는지 여부를 판단 가능)

name 열의 값이 [ "Wild" 로 시작하고 ] & [ 뒤에 0개 이상의 문자열이 있는(%) ] 행들을 선택
입력

script = """
SELECT
    trackid,
    name
FROM
    tracks
WHERE
    name LIKE 'Wild%';
""" 

출력



name 열의 값이 [ "Wild" 로 끝나고 ] & [ 앞에 0개 이상의 문자열이 있는(%) ] 행들을 선택
입력

script = """
SELECT
    trackid,
    name
FROM
    tracks
WHERE
    name LIKE '%Wild';
""" 

출력



[ "Wild" 가 사이에 들어 있고 ] & [ 앞 혹은 뒤에 0개 이상의 문자열이 있는(%) ] 행들을 선택

입력

script = """
SELECT
    trackid,
    name
FROM
    tracks
WHERE
    name LIKE '%Wild%'; 
""" 

출력



해당 위치의 문자 1개와 매칭됨 (무엇이든 문자 1개가 "_" 자리에 위치해있으면 ok)

script = """
SELECT
    trackid,
    name
FROM
    tracks
WHERE
    name LIKE '%Br_wn%'; 
""" 



2. WHERE IN

mediatypeid 열의 값이 4 혹은 5 중에 속하는(IN) 행들을 선택

script = """
SELECT
    name,
    albumid,
    mediatypeid
FROM
    tracks
WHERE
    mediatypeid IN (4, 5);      
""" 


mediatypeid 열의 값이 4 혹은 5 중에 속하지(IN) 않는(NOT) 행들을 선택

script = """
SELECT
    name,
    albumid,
    mediatypeid
FROM
    tracks
WHERE
    mediatypeid NOT IN (4, 5);    
""" 


3. WHERE & LIMIT/OFFSET

제한(LIMIT)을 걸어 위에서부터 차례대로 4개까지만 데이터를 읽음

script = """
SELECT
    trackId,
    name
FROM
    tracks
LIMIT 4;
""" 


OFFSET의 값에 해당하는 수만큼 떼어(OFF)내고(SET) 그 이후의 데이터부터 가져옴

script = """
SELECT
    trackId,
    name
FROM
    tracks
LIMIT 10 OFFSET 7; 
                  
""" 

적용 순서에 유의 (먼저 OFFSET으로 먼저 떼어낸 다음, LIMIT 제한 수만큼 데이터를 읽어들임)



4. WHERE & BETWEEN

전체 주문 수량(Total)의 값이 14.91과 18.86 사이에 해당하는 행 (between A and B)

script = """
SELECT
    InvoiceId,
    BillingAddress,
    Total
FROM
    invoices
WHERE
    Total BETWEEN 14.91 AND 18.86    -
ORDER BY
    Total; 
""" 


전체 주문 수량(Total)의 값이 [1과 20 사이에 해당하지 않는(NOT)] 행

script = """
SELECT
    InvoiceId,
    BillingAddress,
    Total
FROM
    invoices
WHERE
    Total NOT BETWEEN 1 AND 20    
ORDER BY
    Total;
""" 


5. WHERE & IS (NOT) NULL

작곡가 값이 널인 경우

script = """
SELECT
    Name, 
    Composer
FROM
    tracks
WHERE
    Composer IS NULL
ORDER BY 
    Name; 
""" 


작곡가 값이 널이 아닌 경우

script = """
SELECT
    Name, 
    Composer
FROM
    tracks
WHERE
    Composer IS NOT NULL
ORDER BY 
    Name; 
""" 
profile
감자 개발자

0개의 댓글