!주의! : 이 게시물은 정보성 게시물이 아닌 개인 공부 복기용 게시물 입니다. 정확하지 않을 수 있습니다.
🤗훈수는 언제나 환영입니다🤗
SQL응용 DML-SELECT1
일반 형식
SELECT[PREDICATE] [테이블명] 속성명 [AS 별칭][, [테이블명.]속성명,]
FROM 테이블명[, 테이블명,]
[WHERE 조건]
[GRouP BY 속성명, 속성명]
[HAVING 조건]
[ORDER BY 속성명[ASC|DESC]];
SELECT 절
- DISTINCT : 중복된 튜플이 있으면 그 중 첫 번째 한개만 표시함
- 속성명 : 검색하여 불러올 속성 또는 속성을 이용한 수식을 지정함
- AS : 속성이나 연산의 이름을 다른 이름으로 표시하기 위해 사용함
FROM절
- 검색할 데이터가 들어있는 테이블 이름을 기술함
WHERE절
ORDER BY절
- 데이터를 정렬하여 검색할 때 사용함
- [ASC|DESC] : 정렬 방식으로, 'ASC'는 오름차순 'DESC'는 내림차순이다 생략시 자동으로 ASC 지정됨
조건 연산자
- = : 같다
- <> : 같지 않다
- > : 크다
- < : 작다
- <= : 작거나 같다
- >= : 크거나 같다
논리 연산자
LIKE 연산자
- 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색하기 위해 사용된다
기본 검색
- SELECT 절에 원하는 속성을 지정하여 검색한다
- 예) <사원>테이블의 모든 튜플을 검색하시오
SELECT FROM 사원;
- 예) <사원> 테이블에서 '주소'만 검색하되 같은 '주소'는 한 번만 출력하시오
SELECT DISTINCT 주소
FROM 사원;
- 예) <사원> 테이블에서 '기본급'에 특별수당 10을 더한 월급을 "xx부서의 xxx의 월급 xxx"형태로 출력하시오
SELECT 부서 + '부서의' AS 부서2, 이름 +'의 월급' AS 이름2, 기본급 + 10 AS 기본급2
FROM 사원;
조건 지정 검색
- WHERE 절에 조건을 지정하여 조건에 만족하는 튜플만 검색한다
- 예) <사원> 테이블에서 '기획'부의 모든 튜플을 검색하시오
SELECT
FROM 사원
WHERE 부서 = '기획';
- 예) <사원>테이블에서 "기획" 부서에 근무하면서 "대흥동"에 사는 사람의 튜플을 검색하시오
SELECT *
FROM 사원
WHERE 부서 = '기획' AND 주소 = '대흥동';
- 예) <사원>테이블에서 '부서'가 '기획'이거나 '인터넷' 인튜플을 검색하시오
SELECT *
FROM 사원
WHERE 부서 = '기획' OR 부서 = '인터넷';
- 예) <사원>테이블에서 성이 '김'인 사람의 튜플을 검색하시오
SELECT *
FROM 사원
WHERE 이름 LIKE '김%';
- 예) <사원>테이블에서 '생일'이 '01/01/69'에서 '12/31/73'사이인 튜플을 검색 하시오
SELECT *
FROM 사원
WHERE 셍일 BETWEEN #01/01/69# AND
#12/31/73#;
- 예) <사원>테이블에서 '주소'가 NULL인 튜플을 검색하시오
SELECT *
FROM 사원
WHERE 주소 IS NULL;
정렬 검색
- 예) <사원>테이블에서 '주소'를 기준으로 내림차순 정렬시켜 상위 2개 튜플만 검색하시오
SELECT TOP 2 *
FROM 사원
ORDER BY 주소 DESC;
- 예) <사원>테이블에서 '부서'를 기준으로 오름차순 정렬하고, 같은'부서'에 대해서는 '이름'을 기준으로 내림차순 정렬시켜서 검색하시오
SELECT *
FROM 사원
ORDER BY 부서 ASC , 이름 DESC;
하위 질의
- 주어진 잘의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용한다
- 예) '취미'가 '나이트댄스'인 사원의 '이름'과'주소'를 검색하시오
SELECT 이름,주소
FROM 사원
WHERE 이름 = (SELECT 이름 FROM 여가활동 WHERE 취미 = '나이트댄스');
- 예) 취미활동을 하지 않는 사원들을 검색하시오
SELECT *
FROM 사원
WHERE 이름 NOT IN (SELECT 이름 FROM 여가활동);
- 예) '망원동'에 거주하는 사원들의 '기본급'보다 적은'기본급'을 받는 사원의 정보를 검색하시오
SELECT 이름,기본급,주소
FROM 사원
WHERE 기본급 < ALL (SELECT 기본급 FROM 사원 WHERE 주소 = '망원동');
복수 테이블 검색
- 여러 테이블을 대상으로 검색을 수행함
- 예) '경력'이 10년 이상인 사원의 '이름', '부서', '취미', '경력'을 검색하시오
SELECT 사원.이름, 사원.부서, 사원.취미, 사원.경력
FROM 사원, 여가활동
WHERE 여가활동.경력 >= 10 AND 사원.이름 = 여가활동.이름;