주다람
개미는 뚠뚠🎵 오늘도 뚠뚠🎵 열심히 개발하네✨
주다람
전체 방문자
오늘
어제
  • 분류 전체보기
    • 💭 기록해보자
      • BackEnd
      • FrontEnd
      • 회고
    • 💻 수업정리 (2020)
      • 오라클
      • 자바
      • CSS & HTML
      • JavaScript
      • Servlet
      • JSP
    • 📚 알고리즘
      • DP(다이나믹 프로그래밍)
      • 탐색(BFS,DFS)
      • 다익스트라
      • 순열과 조합
      • 백트래킹
      • 이분탐색(binarySearch)
      • 탐욕(Greedy)
      • 스택,큐,덱(Stack,Queue,Deque)
      • 유니온파인드(Union-Find)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 변환함수
  • 일반함수
  • 함수
  • group by
  • 숫자함수
  • 날짜함수
  • background-gradient
  • 문자함수
  • 오라클
  • oracle
  • 그룹함수
  • 박스모델

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
주다람

개미는 뚠뚠🎵 오늘도 뚠뚠🎵 열심히 개발하네✨

[6/12] 오라클의 개념과 조건 검색★
💻 수업정리 (2020)/오라클

[6/12] 오라클의 개념과 조건 검색★

2020. 6. 12. 15:57
  • 오라클은 데이터베이스를 여러개를 만드는 것이아니라, 하나의 데이터베이스만 만들고
  • 사용자마다 사용자 스키마가 따로 있음(그래서 그 사용자만 접근이 가능함)
  • 사용자를 만들고 사용자계정을 만들어야함
현재 접속 사용자의 스키마에 존재하는 테이블 목록 확인 SELECT TABLE_NAME FROM TABS;
테이블의 구조를 확인 DESC 테이블명;
  • VARCHAR같은 자료형은 가변형이기때문에 정해진 크기 이하만큼만 사용하면됨

[SELECT]

  • 하나이상의 테이블에서 행을 검색하기 위한 행렬
SELECT 검색대상, 검색대상...FROM 테이블명,테이블명...
------------------------------------------------------
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP;
  • 테이블이 여러 검색대상을 갖고 있겠지만, 내가 명시한 검색대상만 검색하겠다.
  • 즉, 모든행에서 원하는 값만 검색될 수 있도록 한다는 것!
  • 검색대상이란?  * (모든컬럼) -> 다른 검색대상과 같이 쓸 수 없다.(동시 사용 불가), 컬렴명, 연산식, 함수 등등
  • 결합연산자로 ||를 사용함(OR아님)
  • 문자열은 ' '를 사용함
SELECT ENAME, JOB FROM EMP;
SELECT ENAME || JOB FROM EMP; --결합연산자 : 값을 결합하기 위한 기호
SELECT ENAME || '님의 업무는 '||JOB || '입니다' FROM EMP; --문자열은 싱글
  • 중복된 컬럼값을 제외하기 위해서는 DISTINCT 키워드를 사용
  • DISTINCT 뒤에는 검색대상을 여러개 나열 할 수 있다.(ORACLE만 가능)
SELECT JOB FROM EMP; --중복되어 컬럼값 검색
SELECT DISTINCT JOB FROM EMP; --중복제외 컬럼값 검색

 

 


[WHERE]

SELECT 검색대상 FROM 테이블명 WHERE 조건식
  • 조건식을 사용하여 조건이 참인 행을 검색하는 기능을 제공
  • 값은 대소문자 구분을 하므로 값이 대문자로 저장되어 있다면 대문자로 검색해야한다.
SELECT EMPNO, ENAME, JOB, SAL FROM EMP;
----------------------------------------
SELECT JOB FROM EMP WHERE SAL >= 800;
SELECT EMPNO, ENAME FROM EMP WHERE JOB ='CLERK';
SELECT EMPNO,ENAME, JOB, SAL FROM EMP WHERE EMPNO = 7876;
  • 날짜형 상수는 ' '를 사용
  • ' ' 안에 RR/MM/DD형식의 패턴으로 표현🔽
  • 날짜형 컬럼의 검색결과도 RR/MM/DD형식의 패턴으로 출력된다.(RR년도는 알아서 4자리 년도로 인식됨)
  • YYYY-MM-DD 형식의 패턴도 사용 가능함 - 단 출력값은 RR/MM/DD로 나옴
SELECT EMPNO, ENAME, JOB, SAL , HIREDATE FROM EMP WHERE HIREDATE = '80/12/17';

 

  • 같지 않다 : != 와 <> 사용한다.
  • 문자형상수도 관계연산자를 이용해서 검색가능하다.
  • 날짜형 데이터도 관계연산자를 이용하여 검색 가능하다.
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE ENAME < 'D';
-------------------------------------------------------------------
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE HIREDATE < '81/05/01';

  • 검색조건이 두개 이상인경우 AND연산자나 OR연산자를 사용한다. 
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE (JOB = 'SALESMAN' AND SAL >= 1500);
---------------------------------------------------------------------------------
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE EMPNO = 10 OR JOB = 'MANAGER';
  • 범위연산자(BETWEEN - AND)를 이용하여 작은값부터 큰값범위에 포함되는 컬럼값을 구할 수 있다.
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE SAL BETWEEN 1500 AND 3000;
  • 선택연산자(IN (컬럼, 컬럼....))를 이용하여 컬럼값이 여러개중 하나인 경우의 조건식을 만들 수 있다.
SELECT EMPNO, ENAME, JOB SAL FROM EMP WHERE JOB IN ('ANALYST', 'SALESMAN');
  • 검색패턴기호 : 부정확한 값을 검색하기 위해 제공되는 기호
  • % : 전체를 뜻함 (%A%면 A가포함된 값을 검색할때 사용함)
  • _  : 문자 1개를 뜻함
  • EQUAL(=)연산자를 사용하면 %와 _가 문자열로 인식되기 때문에,
  • 위와같은 문자를 이용하여 검색을 하려면 LIKE연산자를 사용해야 함
--A로 시작하는 이름을 가진 사원
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE ENAME LIKE 'A%';
--두번째가 L이 들어가는 이름을 가진 사원
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE ENAME LIKE '_L%';
  • LIKE연산자는 (=)대신 사용하기도 한다
  • ESCAPE 키워드를 이용하여 표현 불가능한 문자를 ESCAPE문자로 표현
  • _ 또는 %를 검색패턴기호가 아닌 이스케이프문자로 인색되도록 설정
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE ENAME LIKE '%\_%' ESCAPE '\';
  • NOT연산자를 이용하여 조건식의 결과를 반대로 구현할 수 있음🔽
--같은표현임
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE JOB <> 'MANAGER';
--------------------------------------------------------------
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE NOT(JOB = 'MANAGER');
  • NULL은 존재하는 값이 아니므로, 비교자체가 안된다. -> 검색오류!!!!
  • 이럴땐, IS연산자를 이용하면된다.
SELECT EMPNO, ENAME, JOB, COMM FROM EMP WHERE COMM = NULL;
---------------------★★★★★★------------------------------
SELECT EMPNO, ENAME, JOB, COMM FROM EMP WHERE COMM IS NULL;
SELECT EMPNO, ENAME, JOB, COMM FROM EMP WHERE COMM IS NOT NULL;

[orderby]

  •  
  • asc : 오름차순 정렬, desc : 내림차순정렬(오름차순 정렬은 생략가능)
  • 정렬 기능을 나열하여 선언하면 첫번째 정렬값이 같은경우 두번째 정렬값으로 정렬
  • 기본적으로는 테이블에 행이 저장된 순서대로 검색
SELECT EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP ORDER BY DEPTNO ASC;

ORDER BY DEPTNO 오름차순 정렬

  • 이름도 오름차순, 내림차순 검색이 가능 A~Z순서대로임
  • 컬럼인덱스(검색대상에대한 인덱스)가지고 정렬가능함
  • 단, 오라클에서는 인덱스가 1부터 인덱싱된다!!!!!
--ANNUAL값으로 정렬된다.
SELECT EMPNO, ENAME, (SAL * 12) ANNUAL FROM EMP ORDER BY 3 DESC; 
  • SELECT ▶ FROM ▶ WHERE ▶ ORDERBY 순으로 사용해야한다.
--같은 부서번호인 경우 급여로 내림차순 정렬하여 검색
SELECT EMPNO, ENAME, SAL FROM EMP ORDER BY DEPTNO, SAL DESC;
----------------------------------------------------------------
SELECT EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP WHERE SAL >= 3000 ORDER BY DEPTNO;

 

[COLUM ALIAS]

  • 검색대상에 별칭(임시 컬럼명)을 부여하는 기술
  • 검색대상을 명확하게 구분하여 표현하기 위해 별칭 사용
  • AS는 생략가능
  • 공백 또는 특수문자를 사용하고자 할 경우 " " 기호를 사용하여 표현
SELECT 검색대상 [AS] 별칭, 검색대상 [AS] 별칭,.... FROM 테이블명...
-------------------------------------------------------------------
SELECT EMPNO AS NO, ENAME AS NAME, DEPTNO AS DNO FROM EMP;

'💻 수업정리 (2020) > 오라클' 카테고리의 다른 글

[6/19] 제약조건과 VIEW  (0) 2020.06.19
[6/18] TCL과 TRANSATION  (0) 2020.06.18
[6/17] 오라클 서브쿼리  (0) 2020.06.17
[6/16] 분석함수  (0) 2020.06.16
[6/15] 오라클 함수사용  (0) 2020.06.15
    '💻 수업정리 (2020)/오라클' 카테고리의 다른 글
    • [6/18] TCL과 TRANSATION
    • [6/17] 오라클 서브쿼리
    • [6/16] 분석함수
    • [6/15] 오라클 함수사용
    주다람
    주다람
    신입 어린이 -> 주니어개발자 성장중

    티스토리툴바