728x90
SELECT : 데이터 조회, 질의
- SELECT [컬럼명 또는 표현식] FROM [테이블명, 뷰명];
- 모든 컬럼 조회 : * 사용
- SELECT * FROM ex;
- 원하는 컬럼만 조회, 콤마(',')로 컬럼 구분 및 나열
- SELECT name, no FROM ex;
- 컬럼 별칭(alias)을 사용하여 출력하기
- SELECT no 학번, name 이름 FROM ex;
- 컬럼 별칭(alias)에 띄어쓰기가 있으면 쌍따옴표 "~"로 묶어주기, AS도 사용가능
- SELECT no "학번", name AS 이름 FROM ex;
- 모든 컬럼 조회 : * 사용
DISTINCT : 중복값 제거하고 출력
- SELECT DISTINCT [컬럼명 또는 표현식] FROM [테이블명, 뷰명];
- SELECT DISTINCT no FROM ex;
|| : 필드, 문자열 연결
- SELECT no || '~' || name FROM ex;
산술연산자 : +, -, *, /
- SELECT name, no, no + 10 FROM ex;
- SELECT no, no + 100 / 2, (no + 50) / 4 FROM ex;
WHERE : 데이터 검색 조건
- SELECT [컬럼명 또는 표현식] FROM [테이블명, 뷰명] WHERE [조건절];
- SELECT * FROM ex WHERE ex = 'TEST';
- '' 안 내용은 대소문자를 구분한다.
- NOT 비교
- IS NULL : NULL이면
- IS NOT NULL : NULL이 아니면
- BETWEEN a AND b : 특정 범위의 값을 검색
- SELECT name, no FROM ex WHERE no BETWEEN 100 AND 200;
- SELECT name, date FROM ex WHERE date BETWEEN '1990/01/01' AND '2000/2/2';
- IN (a, b, c, ...) : 여러개의 값을 동시에 비교
- SELECT name, job FROM ex WHERE job IN ('teacher', 'student');
- LIKE + wildcard : 포함한 문자 찾기
- %(없거나 여러개의 문자 대체), _(한 문자 대체)
- SELECT name FROM ex WHERE name LIKE 'A%';
- SELECT name FROM ex WHERE name LIKE '%A%';
- SELECT name FROM ex WHERE name LIKE '_A%';
- %(없거나 여러개의 문자 대체), _(한 문자 대체)
- SELECT * FROM ex WHERE ex = 'TEST';
WHERE 조건절에 다양한 연산자
- 비교연산자
- = : 같다.
- : 보다 크다.
- < : 보다 작다.
- = : 크거나 같다.
- <= : 작거나 같다.
- SQL 연산자
- BETWEEN a AND b : a와 b의 값 사이에 있으면 된다.(a와 b값이 포함)
- IN (list) : list에 있는 값 중에서 어느 하나라도 일치하면 된다.
- LIKE '비교문자열' : 비교문자열과 형태가 일치하면 된다. (%, _ 사용)
- IS NULL : NULL 값인 경우
- 논리 연산자
- AND : 앞의 조건과 뒤의 조건이 동시에 만족해야한다.
- OR : 앞 뒤 조건 중 하나만 만족하면 된다.
- NOT : 뒤에 오는 조건에 반대되는 결과를 되돌려 준다.
- 부정 비교 연산자
- != : 같지 않다.
- ^= : 같지 않다.
- <> : 같지 않다.
- NOT 컬럼명 = : ~와 같지 않다.
- NOT 컬럼명 > : ~보다 크지 않다.
- 부정 SQL 연산자
- NOT BETWEEN a AND b : a와 b의 값 사이에 있지 않으면. (a와 b값을 포함하지 않음)
- NOT IN (list) : list 값과 일치하지 않는다.
- IS NOT NULL : NULL 값을 갖지 않는다.
ORDER BY : 정렬하여 출력하기
- SELECT [컬럼명 또는 표현식] FROM [테이블명, 뷰명] WHERE [조건절] ORDER BY [정렬열] [ASC/DESC];
- ASC : 오름차순
- DESC : 내림차순
- SELECT name FROM ex WHERE name LIKE '%A%' ORDER BY name ASC;
- SELECT name, job, no FROM ex ORDER BY no ASC, job DESC;
728x90