선택
전체( * )
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
로 검색해야지 본래의 의도대로 동작합니다.