반응형
오라클 시작
- 제어판 - 관리 도구 - 서비스 : 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 - 데이터 정의어
- 저장되는 테이블이나 각종 객체를 생성
- DML - 데이터 조작이
- 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가 앞쪽으로 이동한다.
- delete와 truncate의 차이
- 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';
- select last_name, first_name
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 |
댓글