본문 바로가기
Computer Science & Engineering/Oracle

[SQL_오라클] 시작

by Mr.꾸 2022. 6. 8.
반응형

오라클 시작

  • 제어판 - 관리 도구 - 서비스 : Oracle service 확인
    • OracleOraDb10g_home1iSQL*Plus (잘 모르겠다.. 이 건지..)
    • OracleOraDb10g_home1TNSListener
    • OracleServiceORCL
  • C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
    • tnsnames.ora : Host가 IP로 설정되어 있는데 컴퓨터 이름으로 고쳐준다.
    • listener.ora : 마찬가지로 Host가 IP로 설정되어 있는데 컴퓨터 이름으로 고쳐준다
  • 위의 서비스를 다시 시작한다.
  • Sql*PLus를 실행
    • userName : system
    • passWord : password
  • hr - 기본적으로 설정되어 있는 user
  • alter user hr account unlock;  - hr의 lock을 푼다
  • alter user hr IDENTIFIED by password; - hr의 암호를 password로 준다
  • conn hr/password; - hr 사용자로 password라는 암호로 연결
  • Sql*Plus는 출력을 보기 힘들어서 잘 사용하지 않는다. 대신 http://www.warevalley.com/으로 가서 오렌지 Reorg for unicode를 다운로드한다.
  • orange admin 실행 부분에서 버튼 클릭
  • 기존 설치가 되어있는 경우 configuration admin을 실행시켜 new로 생성한다.
  • password와 sysdb, orcl을 설정 후 next ->... -> start를 한다.
    첨부파일
    다운로드
  • 버전에 맞는 라이선스 키를 입력

오라클 소개

  • 7, 8, 9i => i - internet
  • 10g => grid

SQL

  • 사족
    • 정보 = 가공(데이터);
    • row = 행
    • column = 열
    • SQL = Structed Query Language
    • function - return 값이 있다
    • procedure - return 값이 없다
    • Sql = DML + DDL
      • DML - 데이터 조작이
        • 추출, 저장, 삭제 등
      • DDL - 데이터 정의어
        • 저장되는 테이블이나 각종 객체를 생성
    • Null : 수학에서의 무한대에 해당
    • session : 서버와 유지되는 연결
    • transaction : 일일의 업무의 단위(?)
      • 한 session 안에는 하나이상의 transaction이 있다.
      • rollback은 commit 하기 전에 해야 효과(?)가 있다. commit 한 후에 rollback은 소용이 없다
    • Index - 쉽게 찾을 수 있게 하는 것
      • heap - 두서없이 구성이 되어 있지만 index연결은 한 것(?)
      • IOT(index organized table) - 구성이 index순으로 된 것
    • view - 가상 테이블
      • sql로 정의되어 있다
      • view를 통해서 간다는 의미는 view에 정의되어있는 sql문을 통해 간다는 의미
      • materialized view - 실체(구체화) view
        • view 이면서 실제 데이터를 가지고 있다.
        • 통계 함수와 같은 경우 데이터의 전체를 봐야 하지만 view를 사용할 경우에는 항상 데이터 전체를 봐서 성능 저하를 유발하기 때문에 Sum() 값 같은 것은 materialize view에 저장을 해서 쉽게 접근할 수 있게 한다.
        • 만약 원천 테이블의 데이터가 바뀐 다면 materialize view의 값도 자동적으로 바뀐다.
    • 성능적인 측면에서 performance가 나지 않는 부분은 disk IO이다. database 또한 disk 기반이기 때문에 DB를 이용하는 프로그램의 성능을 높이기 위해서는 DB IO를 줄여야 한다. 곧, DB에서 입출력하는 블록의 수를 줄이는 것이다.
  • 명령어
    • select - 어떤 값을 가져올 것인지
    • from - 어디서 가져올 것인지
    • where - 가져온 것 중에서 어느 부분만 볼 것인지
    • group by - 어떻게 묶을 것인지
    • having - group by 한 결과를 걸러내기 위해
    • order by - 정렬하기 위해
    • insert, create
    • drop - 객체를 삭제
    • delete - data를 삭제
    • truncate - table의 틀은 남긴다.
      • delete와 truncate의 차이
        • delete - DML
        • truncate, drop - DLL
        • 기본적은 DDL이 DML 보다 빠르다
          • DDL은 수행 후 자동 COMMIT
        • high water mark - 데이터가 가장 많았을 때의 표시
        • delete의 경우에는 데이터가 가장 많았을 때의 high water mark 표시가 남아있다.
          • high water mark 가 남아있는 곳까지는 실제로 빈 공간이지만 DB에서는 잡혀있는 공간으로 인식한다.
        • truncate은 high water mark가 앞쪽으로 이동한다.
    • ERD - entity relationship diagram
      • 건축을 위한 설계도와 같이 Database를 구축하기 위한 설계도
      • data의 무결성 등을 보장하기 위해 entity와 entity의 relationship을 추가(?)
    • alter - 객체를 수정(예로 칼럼 추가)
    • update - data를 수정
  • 예제
    • select last_name, first_name
      from employees
      where hire_date >='2000-01-01';
728x90

'Computer Science & Engineering > Oracle' 카테고리의 다른 글

[SQL_오라클] 서브쿼리  (0) 2022.06.10
[SQL_오라클] JOIN  (0) 2022.06.10
[SQL_오라클] GROUP QUERY  (0) 2022.06.10
[SQL_오라클] 1일차 숙제  (0) 2022.06.10
[SQL_오라클] WHERE 절  (0) 2022.06.08

댓글