[데이터베이스] #6 SQL 기본

September 27, 2023


선택

전체( * )

SELECT * FROM STUDENT;

특정 필드만 가져오기

SELECT sid, sname
FROM STUDENT;

중복 제거( DISTINCT )

SELECT DISTINCT deptno
FROM STUDENT;

정렬( ORDER BY )

SELECT sid, sname, grade
FROM STUDENT
ORDER BY grade;

ORDER BY grade DESC으로 성적에 따른 내림차순으로 가져올 수 있습니다.

오름차순은 ASC이며 따로 명시하지 않으면 기본적으로 오름차순입니다.

검색 조건( WHERE )

학점이 4.0 초과인 여학생 데이터 가져오기

SELECT sid, sname, grade
FROM STUDENT
WHERE gender='F' AND grade > 4.0;
  • BETWEEN 사용

WHERE grade BETWEEN 3.0 AND 3.5

-> WHERE grade >= 3.0 AND grade <= 3.5 와 동일

  • BETWEEN IN 사용

LIKE

LIKE 연산은 문자 데이터에 대한 Wild Character으로 검색을 지원하는 기능입니다.

대신 문자열 검색은 비싼 작업이라는 것을 알고리즘에서 배웠으므로 주의해서 써야할 것입니다.

% 아무 문자나 0개 이상, 없을 수도 있음
_ 무조건 1 아무 문자

같지 않음

  • 같지 않음을 표현하기 위해서는 다음을 사용합니다. !=, <>

  • 학번이 20번이 아닌 나머지 학번들 레코드 가져오기

    SELECT sid, FROM STUDENT
    WHERE sid <> 20

NOT

조건 연산자 앞에 붙여서 사용합니다.

  • 학점이 3.0과 3.5 사이가 아닌 학생들의 이름과 학점 레코드들 가져오기

    SELECT sid, sname, grade
    FROM STUDENT
    WHERE grade NOT BETWEEN 3.0 AND 3.5;
  • NOT LIKE

    주소가 S로 시작하지 않는 경우에만 출력합니다.

    SELECT sid, addr
    FROM STUDENT
    WHERE addr NOT LIKE 'S%';

NULL

NULL은 값이 존재하지 않는 속성 값을 의미합니다.

  • NULL에 대한 모든 산술 연산자의 결과는 NULL
  • NULL에 대한 모든 비교 연산자의 결과는 FALSE

주의해야 할 점은 WHERE my_column = NULL은 항상 false라는 점입니다. 해당 컬럼이 null인 경우만 찾고 싶다면, WHERE my_column IS NULL로 검색해야지 본래의 의도대로 동작합니다.


Profile picture

이재원

이해하기 쉬운 코드를 작성하려 고민합니다.


© 2024 Won's blog Built with Gatsby