-
DQL (SELECT)데이터베이스/Oracle 2020. 11. 6. 16:46728x90반응형
DQL
DQL이란
Data Query Language의 약자로 데이터의 검색위한 데이터질의어이다.
DQL안에 SELECT 라는 명령어가 있다.
SELECT
SELECT란
데이터를 조회한 결과를 Result Set이라고 하는데 SELECT구문에 의해 반환된 행들의 집합을 의미한다.
Result Set은 0개 이상의 행이 포함될 수 있고 Result Set은 특정한 기준에 의해 정렬이 가능하다.
한 테이블의 특정 컬럼, 특정 행, 특정 행/컬럼 또는 여러 테이블의 특정 행/컬럼 조회가 가능하다.
SELECT는 DQL과 DML에 속한다.
[ SELECT 작성법 ]
SELECT 컬럼명 [, 컬럼명, 컬럼명, ...]
FROM 테이블 명
WHERE 조건식;
SELECT : 조회하고자 하는 컬럼명 기술
- 여러 컬럼을 조회하는 경우 컬럼은 쉼표로 구분하고, 마지막 컬럼 다음은 쉼표를 사용하지 않음 모든 컬럼 조회 시 컬럼 명 대신 ‘*’ 기호 사용 가능하며 조회 결과는 기술한 컬럼 명 순으로 표시된다.
FROM : 조회 대상 컬럼이 포함된 테이블 명을 기술한다.
WHERE : 행을 선택하는 조건 기술 여러 개의 제한 조건을 포함
각각의 제한 조건은 논리 연산자로 연결 제한 조건을 만족시키는 행들만 Result Set에 포함한다.
[ SELECT 예시 ]
- 몇몇의 컬럼만을 조회할 때
SELECT EMP_ID, EMP_NAME, SALARY FROM EMPLOYEE;
- 모든 컬럼명을 조회할 때
SELECT * FROM EMPLOYEE;
컬럼 값 산술 연산
컬럼 값에 대한 산술 연산한 결과 조회가 가능하다.
[ 산술연산 예시 ]
SELECT EMP_NAME, SALARY * 12, (SALARY + (SALARY*BONUS)) * 12 FROM EMPLOYEE;
별칭
별칭이란
컬럼명 대신 사용자가 원하는 이름을 부여하여 보기 편하게 한다.
별칭의 사용방법은 3가지 방법이 있다.
1. 컬럼명 AS "별칭"
- 특수문자나 숫자, 띄어쓰기가 포함 될 경우라면 ""안에 사용해야 한다.
2. 컬럼명 AS 별칭
""가 없을 경우 띄어쓰기를 사용할 수 없다.
3. 컬럼명 별칭
AS는 생략이 가능하다.
[ 별칭 예시 ]
SELECT EMP_NAME AS 이름, SALARY*12 "연봉(원)", (SALARY + (SALARY*BONUS))*12 AS "총 소득(원)" FROM EMPLOYEE;
리터럴
리터럴이란 임의로 지정한 문자열을 SELECT절에 사용하면 테이블에 존재하는 데이터처럼 활용 가능하다.
''를 사용하여 값처럼 나타낸다.
[ 리터럴 예시 ]
SELECT EMP_ID, SALARY, '원' AS 단위 FROM EMPLOYEE;
DISTINCT
DISTINCT란 컬럼에 포함된 데이터 중 중복 값을 제외하고 한 번씩만 표시하고자 할 때 사용한다.
[ DISTINCT 예시 ]
SELECT DISTINCT JOB_CODE FROM EMPLOYEE;
WHERE
WHERE절 이란 검색할 컬럼의 조건을 설정하여 행을 결정한다.
[ WHERE절 예시 ]
부서코드가 ‘D9’인 직원의 이름, 부서코드 조회
SELECT EMP_NAME, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE = ‘D9’;
급여가 4000000보다 많은 직원 이름과 급여 조회
SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY > 4000000;
WHERE절에 여러개의 조건의 경우
여러개의 조건을 작성해야할 때 논리연산자 AND / OR 을 사용한다.
AND : AND 양쪽의 두 조건이 모두 포함해야할 때 사용한다.
OR : OR 양쪽의 두 조건중 하나만 포함해도 될 때 사용한다.
selwc
[ 여러개의 조건 예시 ]
부서코드가 ‘D6’이고 급여를 2000000보다 많이 받는 직원의 이름, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE = 'D6' AND SALARY > 2000000;
부서코드가 ‘D6’이거나 급여를 2000000보다 많이 받는 직원의 이름, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE = 'D6' OR SALARY > 2000000;
728x90반응형'데이터베이스 > Oracle' 카테고리의 다른 글
Oracle 함수(Function) - 형 변환 함수 (0) 2020.11.11 Oracle 함수(Function) - 날짜 처리 함수 (0) 2020.11.10 Oracle 함수(Function) - 숫자 처리 함수 (0) 2020.11.10 Oracle 함수(Function) - 문자 처리 함수 (0) 2020.11.09 Oracle - 연결 연산자 / 논리 연산자 / 비교 연산자 (0) 2020.11.06