DB_DML (SELECT) (1)

bbsm·2023년 1월 25일
0

학원 수업 복습

목록 보기
17/36

주요 용어

SQL (Structured Query Language)

: 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
: 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성

주요 데이터 타입


-- 자료형 크기 제시 안해도 되는 타입 : NUMBER, DATE

SELECT

: 데이터를 조회한 결과를 Result Set이라고 하는데 SELECT구문에 의해 조회된 행들의 집합을 의미
: Result Set은 0개 이상의 행이 포함될 수 있고 Result Set은 특정한 기주에 의해 정렬 가능
: 한 테이블의 특정 컬럼, 특정 행, 특정 행/컬럼 또는 여러 테이블의 특정 행/컬럼 조회 가능

[작성법]
SELECT 컬럼 명 [, 컬럼명, ...]
FROM 테이블명
WHERE 조건식;

  • SELECT
    : 조회하고자 하는 컬럼명 기술
    : 여러 컬럼을 조회하는 경우 컬럼은 쉼표로 구분하고, 마지막 컬럼 다음은 쉼표를 사용하지 않음
    : 모든 컬럼 조회 시 컬럼 명 대신 '*' 기호 사용 가능하며 조회 결과는 기술한 컬럼 명 순으로 표시 됨

  • FROM : 조회 대상 컬럼이 포함된 테이블 명 기술

  • WHERE
    : 행을 선택하는 조건 기술
    : 여러 개의 제한 조건을 포함할 수 있으며, 각각의 제한 조건은 논리 연산자로 연결
    : 제한 조건을 만족시키는 행들만 Result Set에 포함

SELECT 예시
-- 직원 전부의 사번과 이름, 월급을 조회하는 구문
SELECT EMP_ID, EMP_NAME, SALARY
FROM EMPLOYEE;

컬럼 값 산술 연산

-- EMPLOYEE 테이블에서 모든 사원의 사번, 이름, 급여, 연봉(급여12) 조회
SELECT EMP_ID, EMP_NAME, SALARY, SALARY
12 FROM EMPLOYEE;

날짜(DATE) 타입 조회

-- EMPLOYEE 테이블에서 이름, 입사일, 오늘 날짜 조회
SELECT EMP_NAME, HIRE_DATE, SYSDATE FROM EMPLOYEE;

SYSDATE : 시스템상의 현재 시간(날짜)를 나타내는 상수

날짜 + 산술연산 (+,-)

SELECT SYSDATE -1, SYSDATEM SYSDATE+1
FROM DUAL;
-- 날짜에 +/- 연산 시 일 단위로 계산이 진행 됨

컬럼 별칭 지정

: SELECT 조회 결과의 집합인 RESULT SET에 출력되는 컬럼명을 지정

컬럼명 AS 별칭 : 별칭 띄어쓰기 하면 안됨, 특수문자 안됨, 문자만 가능
컬럼명 AS "별칭" : 별칭 띄어쓰기 가능, 특수문자 가능, 문자도 가능
(AS는 생략 가능)

DB 리터럴

: 임의로 지정한 값을 기존 테이블에 존재하는 값처럼 사용하는 것
--> (필수) DB의 리터럴 표기법은 ' ' 홑따옴표
--> " " 쌍따옴표는 특수문자, 대소문자, 기호 등을 구분하여 나타낼 때 사용하는 표기법
--> 쌍따옴표 안에 작성되는 것들이 하나의 단어이다.

SELECT EMP_NAME, SALARY, '원' AS 단위 FROM EMPLOYEE;

DISTINCT

: 조회 시 컬럼에 포함된 중복 값을 한 번만 표기
-- 주의사항 1) DISTINCT 구문은 SELECT 마다 딱 한번씩만 작성 가능
-- 주의사항 2) DISTINCT 구문은 SELECT 제일 앞에 작성되어야 한다.

SELECT DISTINCT DEPT_CODE, JOB_CODE FROM EMPLOYEE;

비교연산자

: >, < >=, <=, =(같다), !=, <>(같지 않다)

-- EMPLOYEE 테이블에서 급여가 300만원 초과인 사원의 사번, 이름, 급여, 부서코드를 조회
SELECT EMP_ID , EMP_NAME , SALARY , DEPT_CODE
FROM EMPLOYEE
WHERE SALARY > 3000000;

-- EMPLOYEE 테이블에서 부서코드가 'D9'인 사원의 사번, 이름, 부서코드, 직급코드 조회
SELECT EMP_ID ,EMP_NAME ,DEPT_CODE ,JOB_CODE
FROM EMPLOYEE
WHERE DEPT_CODE ='D9';

논리 연산자 (AND, OR)

-- EMPLOYEE 테이블에서 급여가 300만 미만 또는 500만 이상인 사원의사번, 이름, 급여, 전화번호 조회
SELECT EMP_ID , EMP_NAME , SALARY ,PHONE
FROM EMPLOYEE
WHERE SALARY < 3000000 OR SALARY >= 5000000;

-- EMPLOYEE 테이블에서 급여가 300만 이상 500만 미만인 사원의 사번, 이름, 급여, 전화번호 조회
SELECT EMP_ID , EMP_NAME , SALARY ,PHONE
FROM EMPLOYEE
WHERE SALARY >= 3000000 AND SALARY < 5000000;

BETWEEN A AND B : A이상 B이하

-- 300만 이상, 600만 이하
SELECT EMP_ID , EMP_NAME , SALARY ,PHONE
FROM EMPLOYEE
WHERE SALARY BETWEEN 3000000 AND 6000000;

-- NOT 연산자 사용 가능
SELECT EMP_ID , EMP_NAME , SALARY ,PHONE
FROM EMPLOYEE
WHERE SALARY NOT BETWEEN 3000000 AND 6000000;

-- 날짜(DATE)에 BETWEEN 이용하기
-- EMPLOYEE 테이블에서 입사일이 1990-01-01 ~ 1999-12-31 사이인 직원의 이름, 입사일 조회

SELECT EMP_NAME, HIRE_DATE
FROM EMPLOYEE
WHERE HIRE_DATE BETWEEN '1990-01-01' AND '1999-12-31';

LIKE

: ~처럼, ~같은
: 비교하려는 값이 특정한 패턴을 만족 시키면 조회하는 연산자

[작성법]
WHERE 컬럼명 LIKE '패턴이 적용된 값'

0개의 댓글