일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Pay1oad
- r
- db
- SQL
- 스키마 생성
- select
- 무결성 제약조건
- ZIP
- Python
- Programming
- Database
- enumerate
- SECCON
- android
- __name__
- Android 디컴파일
- rps.apk
- CodeEngn
- 릴레이션 생성
- sys
- 데이터 무결성
- ADB
- main
- Android 서명
- __main__
- 인자 전달
- RPS
- 데이터베이스
Archives
- Today
- Total
블로그
DB SELECT - 1 본문
SELECT
DATABASE에서 특정 조건을 가진 투플을 검색할 때 사용하는 SQL문이다.
SELECT문의 구조
-- 필수적인 절
SELECT 애드리뷰트(들)
FROM 릴레이션(들)
-- 선택적인 절
WHERE 애트리뷰트 조건(들)
GROUP BY 그룹화 할 애트리뷰트(들)
HAVING GROUP BY에 사용된 애트리뷰트 조건(들)
ORDER BY 정렬의 기준이 되는 애트리뷰트(들);
SELECT절
질의 결과에 포함시킬 애트리뷰트들을 열거한다. DISTINCT절을 추가하여 중복 제거가 가능하다.
-- EMPLOYEE에 있는 모든 데이터 조회
SELECT *
FROM EMPLOYEE;
-- EMPLOYEE에 있는 모든 데이터를 중복 제거 후 조회
SELECT DISTINCT *
FROM EMPLOYEE;
FROM절
질의 결과를 조회하는데 필요한 릴레이션들을 열거한다. WHERE절에 사용된 애트리뷰트를 포함하고 있는 릴레이션도 열거해야한다.
-- EMPLOYEE에 있는 SSN이라는 애트리뷰트를 조회
SELECT SSN
FROM EMPLOYEE;
-- DEPARTMENT에 있는 DNAME이라는 애트리뷰트를 조회
SELECT DNAME
FROM DEPARTMENT;
WHERE절
FROM절에 열거한 릴레이션에 포함되는 애트리뷰트만 사용해야 한다. WHERE절의 조건은 릴레이션의 투플들이 만족시켜야 하는 조건이다.
-- DNO가 1인 사원을 조회
SELECT *
FROM EMPLOYEE
WHERE DNO = 1;
-- DNO가 1이고, SALARY가 30000보다 큰 사원을 조회
SELECT *
FROM EMPLOYEE
WHERE DNO = 1 AND SALARY > 30000;
-- 이름이 JOHN SMITH인 사원을 검색
SELECT *
FROM EMPLOYEE
WHERE FNAME = 'John' AND LNAME = 'Smith';
GROUP BY절
질의 결과에서 열거된 애트리뷰트에 대하여 동일한 값을 가지는 투플들을 하나의 그룹으로 묶는다.
-- 각 부서별 SALARY의 평균을 구해라
SELECT DNO, AVG(SALARY)
FROM EMPLOYEE
GROUP BY DNO;
HAVING절
GROUP BY절에서 만들어진 그룹이 만족해야 하는 조건을 나타낸다.
-- 부서별 SALARY의 평균을 구하고, 평균이 40000을 넘는 부서만 조회하라.
SELECT DNO, AVG(SALARY)
FROM EMPLOYEE
GROUP BY DNO
HAVING AVG(SALARY) > 40000;
ORDER BY절
결과로 나온 투플들을 정렬해준다.
-- 부서별 SALARY의 평균을 구하고, 부서 번호의 오름차순으로 정렬하라.
SELECT DNO, AVG(SALARY)
FROM EMPLOYEE
GROUP BY DNO
ORDER BY DNO;
-- 부서별 SALARY의 평균을 구하고, 부서 번호의 내림차순으로 정렬하라.
SELECT DNO, AVG(SALARY)
FROM EMPLOYEE
GROUP BY DNO
ORDER BY DNO DESC;
'Computer engineering > 데이터베이스' 카테고리의 다른 글
DB SELECT - 2 (0) | 2021.11.07 |
---|---|
DB 데이터 정의어 (0) | 2021.10.24 |
DB SQL 정리 (0) | 2021.10.24 |
DB데이터 무결성 및 무결성 제약조건 정리 (0) | 2021.10.24 |
DB릴레이션 키 정리 (0) | 2021.10.24 |
Comments