Programmers SQL 고득점 Kit - SELECT편

1 minute read

SELECT

programmers SQL 고득점 Kit - SELECT편

1. 모든 레코드 조회하기

  • Order By

    => Select ~~~ From ~ where ~ Order By (정렬하고 싶은 열) ASC DESC
    SELECT * FROM ANIMAL_INS
    

2. 역순 정렬하기

  • SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC
    

3. 아픈 동물 찾기

  • Like

    => 특정 문자 또는 문자열을 포함하고 있는 값을 검색하고 싶을 때 사용

    Like ‘%문자열%’

    LIKE의 부정은 NOT LIKE

    SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION LIKE "SICK" ORDER BY ANIMAL_ID ASC
      
    

4. 어린 동물 찾기

  • 어린 동물은 INTAKE_CONDITION이 Aged가 아닌 경우기 때문에 Aged를 포함하지 않는 행을 출력해야 함

  • LIKE의 부정은 NOT LIKE

    SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION NOT LIKE 'Aged' ORDER BY ANIMAL_ID ASC
    

5. 동물의 아이디와 이름

  • Order By

    => Select ~~~ From ~ where ~ Order By (정렬하고 싶은 열) ASC DESC
    SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC
    

6. (*)여러 기준으로 정렬하기

  • NAME이 같을 때, DATETIME 내림차순

  • SELECT ~ FROM ~ ORDER BY (COLUMN명) ASC DESC, (COLUMN명) ASC DESC

    => ORDER BY를 이어서 사용할 수 있어, 먼저 이름을 사전 순으로(ASC) 우선적으로 정렬하고, 순차적으로 다음 정렬 실행

    SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME ASC, DATETIME DESC
    

7. (*)상위 n개 레코드

  • 특정 개수의 값 출력할 때 TOP, LIMIT 쓴다

    (*) 단, 모든 DB시스템이 SELECT TOP을 사용하지는 않는다

    MYSQL은 LIMIT절, ORACLE은 ROWNUM 사용

    => Select ~~~ From ~ where ~ Order By (정렬하고 싶은 열) ASC DESC LIMIT n(뽑고싶은 행 갯수 n)
    SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME ASC LIMIT 1
    

Leave a comment