비전공자 공부일기/:: DB - SQL

오라클 DB 용어, 명령문 정리01 - 기호, 연산자, SELECT문

와니_ 2019. 5. 17. 17:25

2019. 05. 17 수업내용 정리

내가 찾아보려고 정리한 내용

 

<오라클 기본용어>

 

  • 테이블(TABLE): DB에서 데이터를 저장하기 위한 객체
  • 스키마(SCHEMA): 논리적 공간(물리적으론 존재X)
  • 식별자: 테이블명, 컬럼명, 컬럼별명 등. 단어와 단어의 구분자로 _ (언더바)를 사용
              (대소문자 구분을 하지 않으므로 자바처럼 카멜 표기법을 사용하지 않는다)
  • PK (PRIMARY KEY): 제약조건. 절대 중복데이터가 저장되지 않는 고유값. 객체들이 서로 관계를 맺도록 함
  • FK (FOREIGN KEY): 제약조건. 여러 개의 테이블이 서로 연결될 수 있도록 함.

 

<오라클 기호>

 

  • -- : 설명문 처리(자바의 //같은 역할)
  • ; : 명령을 구분하기 위해 명령 마지막에 써주는 것. 문장의 마침표와 같은 역할
  • * : '모든 컬럼'이라는 뜻. 다른 검색 대상과 동시에 사용 불가
  • " " : 얼라이어스(컬럼의 별명)에 공백이나 특수문자를 넣고 싶을 때, "별명"으로 묶어준다. 
  • ' ' :  SELECT문에서 별명을 제외한 나머지 문자값, 숫자값, 날짜값을 표현할 때 씀
          -- 참고로 문자형 상수는 대소문자를 구분
  • | | : 여러 개의 문자열을 연결하여 하나의 문자열로 결합. 자바에서 +의 역할
  • %,  _ : 전체(%)와 문자(_)를 나타내는 검색패턴기호.
             값을 비교하기 위해 = 연산자를 사용할 경우, % 또는 _는 문자로 인식되어 처리
            ※검색패턴기호: 부정확한 값을 검색하기 위해 제공되는 기호
            -- ex) 'A%' : A로 시작하는 / %A%' : A를 포함하는 / '_A%' : 두 번째 문자가 A인

 

<오라클 연산자>

  • = : 같다
  • !=, ^=, <>, NOT(조건식) : '다르다', '~가 아니다'
  • >= , <=, >, < : 이상, 이하, 초과, 미만 -- 숫자형 뿐만 아니라 문자형, 날짜형 상수도 비교 가능(A<B)
  • AND, OR : 비교연산자 -- 자바처럼 &&, || 을 쓰면 안 된다!
  • BETWEEN 작은값 AND 큰값 : 컬럼값이 두 값 사이에 존재할 경우 TRUE 제공 -- 작은값, 큰값 순서 꼭 지켜야 함
    ※ 범위연산자 : 값1~값2의 범위값을 조건식으로 표현 --- 값>=A AND 값<=B 로 써도 되긴 됨
  • IN (값1, 값2, ...) : 컬럼값이 나열된 값들 중 하나인 경우 TRUE를 제공하는 선택연산자
  • IS (NOT) NULL : 컬럼값을 NULL과 위한 연산자 --- 값=NULL 이라고 검색할 수 없음
  • LIKE '값 또는 검색패턴기호' : '문자의 조합이 같은' 의 뜻. 검색패턴기호를 이용한 검색 시
    --- = 연산자와의 차이점은 %, _를 문자로 인식하느냐(=), 기호로 인식하느냐의 차이(LIKE)
  • ESCAPE '패턴기호' : LIKE 연산자로 검색하려는 문자열에 검색패턴기호가 포함되어 있을 때 ESCAPE 옵션으로 제어문자 표현

(TIP) 예를 들어 이름이 A로 시작하는 이름을 표현하고 싶다면, NAME<='A' 가 아니라 NAME>='A' AND NAME<='B' 로 표현해야 함.

 

 


 

 

<오라클 SELECT문 정리>

 

--------------------------------기본 개념--------------------------------

테이블이나 뷰에 있는 데이터를 조회할 때 사용하는 문장

---------------------------------------------------------------------------

 

--------------------------------기본 구문--------------------------------

SELECT * 혹은 컬럼

FROM 테이블명

WHERE 조건

ORDER BY 컬럼;

---------------------------------------------------------------------------

 

  • SELECT : 하나 이상의 테이블에서 행을 검색하기 위한 명령
  • SELECT  검색대상, 검색대상, ... FROM 테이블명, 테이블명, ...;  
    -- 원하는 테이블에서 원하는 데이터를 조회할 때 쓰는 문장
    ※ 검색대상 : *(모든 컬럼) - 다른 검색 대상과 동시 사용 불가, 컬럼명, 연산식, 함수 등
  • SELECT TABLE_NAME FROM TABS;
    -- 현재 접속 사용자의 스키마에 존재하는 테이블 목록 확인
  • SELECT * FROM TAB;
    -- 위 명령어와 같은 역할
  • SELECT 검색대상 AS 별명, 검색대상 AS 별명, ... FROM 테이블명, ...;
    -- -- 여기서 AS는 ALIAS란 뜻
    ※ COLUMN ALIAS: 검색대상에 별명을 붙여 임시 컬럼명으로 나타내는 기능
                             검색대상을 간단하게 표현하거나 명확한 의미를 부여하기 위해 사용
    ※ 원래 별명에 띄어쓰기나 특수문자는 쓸 수 없지만, "별명" 으로 묶어 표현하면 가능.
  • SELECT 20+10 RESULT FROM DUAL;
    -- 테이블이 필요 없는 SELECT 명령 수행하기 위해 . 연산식을 
    -- 연산식의 결과가 나타나는 컬럼명이 RESULT로 지정됨
    ※ DUAL: 테이블이 필요 없는 SELECT 명령을 사용할 경우 제공되는 가상의 테이블
  • SELECT DISTINCT 검색대상 FROM EMP;
    -- 중복 컬럼값을 제외하고 하나의 결과값만 보여줌
    ※ 오라클에서는 DISTINCT 키워드에 검색대상을 여러 개 나열하여 사용 가능
  • SELECT 검색대상 FROM 테이블명 WHERE 조건식;
    -- 조건식을 만족하는 경우의 검색결과를 보여줌
    ※ WHERE: 조건식을 사용하여 조건이 참인 행만 검색하는 기능을 제공하는 키워드
    ※ 하나의 행만 검색하려고 할 경우, PK 제약조건이 부여된 컬럼을 이용하여 검색(중복값이 없으므로)
  • SELECT 검색대상 FROM 테이블명 [WHERE 조건식]
          ORDER BY {컬럼명|연산식|컬럼별명|INDEXT} {ASC|DESC}, {컬럼명|연산식|컬럼별명|INDEXT} {ASC|DESC}, ...
    -- 검색 결과를 정렬하여 출력해주는 명령어(ASC:오름차순 / DESC:내림차순/지정 안하면 자동으로 ASC)
    -- 첫 번째 조건의 정렬값이 동일할 경우, 두 번째 정렬값 이용
    -- ORDER BY 없이 하는 일반 검색은 테이블에 저장된 순서대로 검색하여 결과를 출력한다.(너저분)
    -- SELECT~WHERE 까지의 명령어를 먼저 실행한 뒤 ORDER BY 명령어 실행(뒤로 가면 중요!)

 

<기타>

  • DESC 테이블명; -- 테이블 속성정보 확인(컬럼명과 자료형)
  • NUMBER(n) -- n자릿수까지 쓸 수 있다는 뜻
  • DATE -- 오라클의 날짜형 상수는 기본적으로 'RR/MM/DD' 패턴으로 표현. 다른 DBMS에선 일반적으로 'YYYY-MM-DD' 형식으로 표현 가능. 오라클도 쓸 수 있다.
  • DQL(DATA QUERY LANGUAGE) -- 데이터 질의어(QUERY 쿼리)