DML(SELECT)

sue·2020년 7월 31일
0

oracle note

목록 보기
2/2

주요 용어

① 행(Row), 튜플
② 컬럼, 도메인
: 하나의 열 단위
③ 기본키(Primary Key)
각각의 행(사원들) 유일하게 구분지어줄 수 있는 식별자
절대 값이 겹치거나 없을 일 x
④ 외래키(Foreign Key)
다른 테이블과 연결고리가 될 수 있는 컬럼
⑤ Null
Null도 컬럼값 가능
⑥ 컬럼값, 속성값

주요 데이터 타입


문자 다 CHAR로
숫다 다 NUMBER로

SQL(Structured Query Language)

관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성
기술하는 모든 구문들이 SQL이라고 생각하면됨. 나름의 Language.

주로 크게 3가지로 표현
DML(Data Manipulation Language) : INSERT, UPDATE, DELETE, SELECT (새로운 데이터 추가, 변경, 삭제, 실제 데이터 조회)
DDL(Data Definition Language) : CREATE, DROP, ALTER
(큰 틀 생성, 날리기, 변경)
DCL(Data Control Language) : GRANT, REVOKE, COMMIT, ROLLBACK
(권한부여, 권한회수, 확정, 되돌리기)

SELECT

데이터를 조회할 때 사용하는 명령어 (DML, DQL)
RESULT SET : SELECT문을 통해 조회된 결과물 (조회된 행들의 집합)

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

[표현법] 
    SELECT 조회하고자하는컬럼, 컬럼, 컬럼...
    FROM 테이블명;
    => 어떤 테이블로부터 조회를 할건지! 이 계정에만 해도 여러개의 테이블, 중복 컬럼명 있을 수 있기 때문에 
  	보통 SELECT, FROM절이라고 부른다. 
    - 모든 컬럼일 경우 SELECT *
    - 키워드, 테이블명, 컬럼명 등등 대소문자를 가리지 않음 
      (, 실제 담겨있는 데이터값은 가린다!)

< 컬럼 값 산술 연산 >

SELECT절에 산술연산자(+-/)를 기입해서 산술연산된 결과 조회 가능
SELECT EMP_NAME, SALARY
12, (SALARY + (SALARYBONUS)) 12
FROM EMPLOYEE;

산술연산 중에 NULL값이 존재할 경우 산술연산한 결과마저도 무조건 NULL값으로 조회됨!

< 컬럼명에 별칭 지정 >

[표현법]
컬럼명 AS 별칭 | 컬럼명 AS "별칭" | 컬럼명 별칭 | 컬럼명 "별칭"

AS를 붙이든 안붙이든간에 부여하고자 하는 별칭에 특수문자 또는 띄어쓰기가 포함될 경우 반드시 쌍따옴표를 써야한다!

< 리터럴 >

임의로 지정한 문자열(' ')을 SELECT절에 기술하면
실제 그 테이블에 존재하는 데이터처럼 조회가능

SELECT절에 제시한 리터럴 값은 조회 결과의 모든 행에 반복적으로 출력됨

< DISTINCT >

컬럼에 포함된 중복값을 단 한번씩만 표시하고자 할 때 사용
(단, SELECT절에 단 한개만 기입 가능)  

< WHERE 절 >

조회하고자 하는 테이블에서 특정 조건에 만족하는 데이터만을 조회하고자 할 때 기술하는 구문

[표현법]
    SELECT 조회하고자하는컬럼, 컬럼, ....
    FROM 테이블명
    WHERE 조건식;
    -> 조건식에 다양한 연산자들 사용 가능

< 비교연산자 >

대소비교 ( >, <, >=, <= )
동등비교 ( = ) // 자바처럼 == 아님!
부등비교 ( !=, ^=, <> )

< 논리 연산자 >

여러개의 조건을 엮을 때 사용
AND(~이면서, 그리고), OR(~이거나, 또는)

< BETWEEEN AND >

몇 이상 몇 이하인 범위에 대한 조건을 제시할 때 사용
[표현법]
비교대상컬럼명 BETWEEN 하한값 AND 상한값

  • NOT을 붙이게 되면 해당 조건의 반대되는 조건 조회
  • BETWEEN AND 연산자 DATE형식간에도 사용 가능

< LIKE '특정패턴' >

비교하려는 컬럼값이 내가 지정한 특정 패턴에 만족될 경우 조회
[표현법]
비교대상컬럼명 LIKE '특정패턴'

  • 특정패턴에 '%', '_'를 와일드 카드로 사용할 수 있음

    '%' : 0글자 이상

    EX) 비교대상컬럼명 LIKE '문자%'
    => 컬럼값 중 해당 '문자'로 "시작"되는 걸 조회
    비교대상컬럼명 LIKE '%문자'
    => 컬럼값 중 해당 '문자'로 "끝"나는 걸 조회
    비교대상컬럼명 LIKE '%문자%'
    => 컬럼값 중 해당 '문자'가 "포함"되는 걸 조회



    '_' : 1글자

    EX) 비교대상컬럼명 LIKE '_문자'
    => 컬럼값 중 '문자'앞에 무조건 한글자가 올 경우 조회
    비교대상컬럼명 LIKE '__문자'
    => 컬럼값 중 '문자'앞에 무조건 두글자가 올 경우 조회
  • 와일드 카드로 사용되는 문자와 실제 담겨있는 컬럼값이 동일할 경우 문제 발생

    --> 와일드값과 데이터값 구분 필요 (ESCAPE사용)
    WHERE EMAIL LIKE '___$_%' ESCAPE '$'

< IS NULL / IS NOT NULL >

[표현법]
비교대상컬럼 IS NULL : 컬럼값이 NULL일 경우
비교대상컬럼 IS NOT NULL : 컬럼값이 NULL이 아닐 경우

0개의 댓글