2016년 6월 23일 목요일

01day DB Oracle


데이터베이스 설치
  1. 윈도우 방화벽 비활성화
  2. 백신프로그램 비활성화

데이터베이스
  • DBMS (program)
    • 24시간 켜져있음 DB를 관리함
    • 이것 관리하는 사람 DB Admin
      • DB오라클 자격증 : OCA,OCD,OCM
  • DB
    • 사용이유
      • DB화 ERP : 삽입, 수정, 삭제
      • extended ERP : 선택
        • CRM (customer relationship management) 고객관리
          • →BIGDATA로 발전
        • SCM (supply chain management) 물류관리
        • SEM (strategic enterprise management)
  • Client
    • DBMS에 명령을함
      • SQL (Structured Query Language)
        • ANSI (미국표준협회)에서 SQL문의 표준을 정함 92년도/99년도
        • +a : 각 DBprogram 고유의 기능이 추가됨
        • PLSQL : SQL짜는 프로그램

데이터베이스 서버
  • DB2 (IBM제조)      : 대형 -처리용량, 데이터처리용량
  • MSSQL (MS)         : 중대형
  • MySQL (Oracle)     : 중형 (0-실무사용 추천)
  • MariaDB (MariaDB): 중형
  • SQLite (SQLite)     : 경량형
  • Oracle (Oracle)     : 중대형 (0-실무사용 추천)
    • 서버 : 백그라운드에서 실행되다가 사용자 요청이 생기면 작업을 실행해 주는 프로그램
    • 클라이언트: 사용자 요청
    • 네트워크 : 서버 ↔ 클라이언트 접속
오라클 서버에 접속할 클라이언트

  • CUI방법 : SQLPLUS (2개 방법으로 접속 가능)
    •  cmd >> sqlplus
  • GUI방법 :
    • 오라클사 SQL developer (무료)
    • Toad (유료) : 실무에서 많이 사용됨, 경량형, 편리한 기능
샘플사용자 Scott
  • Scott이 가지고 있는 테이블 : 회사에 관한 정보
    • EMP -employee 사원에 대한 정보
      • EMPNO    사원 번호
      • ENAME     이름
      • JOB          직책
      • MGR         팀장의 사원번호
      • HIREDATE  고용일자
      • SAL          급여
      • COMM      수당
      • DEPTNO    부서번호
    • DEPT -department 부서에 대한 정보
      • DEPTNO 부서번호
      • DNAME  부서이름
      • LOC 부서위치
    • SALGRADE -salary grade 호봉
      • GRADE 호봉
      • LOSAL 하한
      • HISAL 상한
    • BONUS -성과급
      • ENAME
      • JOB
      • SAL
      • COMM
SQL
  • DML (data manipulation language) 데이터 조작
    • SELECT
    • INSERT
    • UPDATE
    • DELETE
    • MERGE
  • DDL (data definition language) 데이터 공간(테이블) 정의 -객체
    • CREATE
    • ALTER
    • DROP
    • RENAME
    • TRUNCATE
  • DCL (data control language) 사용자 권한
    • GRANT
    • REVOKE
  • TCL (transaction control language) 데이터 적용 결정
    • COMMIT
    • ROLLBACK
    • SAVEPOINT


1
데이터베이스 설치






Scott의 기본 비밀번호 tiger
HR의 기본 비밀번호 hr


2
데이터베이스 설정. 필요없는기능 끄기


3

C:\Users\user>sqlplus

사용자명 입력: scott
비밀번호 입력:


SQL> SELECT * from tab;


SQL> describe emp;
--SQLPLUS의 자체 함수


SQL> select * from emp;


SQL> select empno, ename from emp;
*dual은 가상의 테이블 - 간단한 산술 계산가능
SQL> select 100*100 from dual; 
SQL> select 10/100 from dual; 
SQL> describe emp; //넘버유형은 계산을 할 수있음 
SQL> select sal, sal*12 from emp; 
4. alias 컬럼에 별칭을 주는것
SQL> select empno as 사번, ename as 이름, sal as 급여 from emp; 
SQL> select empno 사번, ename 이름, sal 급여 from emp; 
SQL> select empno "사 번", ename "이 름", sal "급 여" from emp; 
SQL> select sal*12, sal*12 "사원 연봉" from emp; 
5. 문자열 연결
SQL> select 'Hello' || 'World' from dual; 
SQL> select ename || job from emp; 
SQL> select ename || '의 직급은' || job || '이다' as "사원별 직급" from emp; 
SQL> select ename || ' 사원의 부서는 ' || deptno || '이고 연봉은 ' ||sal*12 ||'이다' as 예제 from emp; 
6. 중복의 제거
SQL> select distinct job from emp; 
SQL> select distinct deptno, job from emp;  //묶어서 쓸 수 있음 
7 select 컬럼절 from 테이블명 where 검색구문 (행선택)
  • where if
SQL> select * from emp where deptno=30; 
SQL> select empno, ename, sal from emp where deptno=30; 
*데이터는 대소문자를 구분함
SQL> select * from emp where ename='king'; 
SQL> select * from emp where ename='KING'; 
*날짜검색가능
SQL> select * from emp where hiredate='81/11/17'; 
*논리연산자
SQL> select empno, ename, job, sal from emp where job='SALESMAN' and sal>=1500; 
SQL> select empno, ename, job, sal from emp where job='SALESMAN' or sal>=1500; 
SQL> select empno, ename, job, sal from emp where sal<=2000 and sal>=1000; 
*between 
SQL> select empno, ename, job, sal from emp where sal between 1000 and 2000; 
SQL> select empno, ename, job, sal from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER'; 
*in (  ) 
SQL> select empno, ename, job, sal from emp where job in ('SALESMAN','ANALYST','MANAGER'); 
*문자열 부분검색 LIKE (% 0글자 이상,  _ 1글자)
SQL> select empno, ename, job from emp where ename like 'A%'; 
SQL> select empno, ename, job from emp where ename like '%S'; 
SQL> select empno, ename, job from emp where ename like '%ME%'; 
SQL> select empno, ename, job from emp where ename like '_L%'; 
//2번째 L로시작하는 글자 
SQL> select empno, ename, job from emp where ename like '____'; 
//이름이 4글자 
*특수문자 escape
SQL> select empno, ename, job from emp where ename like '%\_%' escape '\'; 
*null 검색
SQL> select sal, comm from emp where comm is null; 
8. 정렬 *디폴트 오름차순 ASC
SQL> select empno, ename, hiredate from emp order by ename; 
내림차순 DESC
SQL> select empno, ename, hiredate from emp order by ename desc; 
*날짜로 정렬가능
SQL> select empno, ename, hiredate from emp order by hiredate desc 
*계산한 컬럼으로도 정렬됨
SQL> select empno, ename, sal * 12 annual from emp order by annual; 
SQL> select empno, ename, sal * 12 annual from emp order by 3; 
*2차정렬
SQL> select empno, ename, deptno, sal * 12 annual from emp order by deptno, annual; 
9. 단일행 함수 대문자 UPPER, 소문자 LOWER, 두문자 INITCAP
SQL> select lower('HELLO'), upper('hello'), initcap('hello') from dual; 
SQL> select ename, lower(ename) from emp; 
SQL> select empno, ename, sal from emp where ename='KING'; 
SQL> select empno, ename, sal from emp where lower(ename)='king'; 
*문자 연결  --숫자연결도 가능함
SQL> select 'Hello' || 'World', concat('Hello','World') from dual; 
*문자추출 --숫자추출도 가능함
SQL> select substr('Hello World',6,3) from dual; 
*첫글자 A인사람 찾기
SQL> select ename, sal from emp where substr(ename,0,1)='A'; 
SQL> select ename, sal from emp where substr(ename,1,1)='A'; 
*문자열 길이 --숫자길이도 사용가능함
SQL> select ename, length(ename) from emp where deptno=10; 
*문자 찾기 (job, 'A', 시작찾기 위치, 몇 번째 것) --숫자찾기도 사용가능 함
SQL> select empno, job, instr(job,'A'), instr(job, 'A',1,2) from emp; 
*공백추가
SQL> select ename, sal, lpad(sal, 6, '*'), rpad(sal, 6, '*') from emp where deptno=30; 
*특정문자 제거   --숫자제거도 가능함
SQL> select empno, job, trim(leading 'S' from job) as leading, 
  2  trim(trailing 'N' from job) as trailing 
  3  from emp where empno =7844; 
*반올림
SQL> select round(45.923, 2), round(45.923, 0), round(45.923, -1) from dual;
*내림
SQL> select trunc(45.923, 2), trunc(45.923), trunc(45.923, -2) from dual;
*나눔나머지
SQL> select mod(100,30) from dual; 
*날짜 포멧변경
SQL> select sysdate from dual; 
SQL> alter session set nls_date_format='YYYY/MM/DD HH24:MI;SS'; 
SQL> select sysdate from dual; 
SQL> select hiredate from emp where deptno=10; 

댓글 없음:

댓글 쓰기