SQL: Fundamentals 1 : Chapter 1
Qualification/OCP / 2007/12/24 13:13
오라클 교육 1일차
이번 주는 SQL에 대해서 5일 간 배우게 된다.
기억을 되살리고 암기를 하기 위해 배운 것들을 요약 정리해 보려고 한다.
난 SQL에 취약하다.. ㅡ,.ㅡ;; 왠지 정감 안가는 문장...;;;
기본 적인 오라클에 대한 설명
9i 의 i는 internet의 약자로써 Java를 지원하며 메소드 제작기능을 추가하여 인터넷에서
사용을 지원한다는 것을 자랑하기 위해서 넣은 글자라고 한다.
10g의 g는 grid의 약자로써 한창 그리드 컴퓨팅이 뜰때 그리드 컴퓨팅 환경도 지원한다
는 것을 자랑 하기 위해서 넣었다고 한다.. ㅡ,.ㅡ 다 자랑 할라고 넣었단다..
뭐 이런 것들은 집어 치고 SQL요약에 들어가 보겠다.
Retrieving Data using the SQL select Statement
Capabilities of SQL select statements
- Projection - 원하는 컬럼만 보는 것
- selection - 특정 row만 검색하는 것으로 where 조건절을 사용한다.
- join 테이블을 엮어 결과값을 도출 하는 것이다.
select *
from departments;
departments 테이블의 모든것을 보는 명령어가 된다.
대충 이렇게 이해 하려고 한다. select에는 결과값에 보고 싶은 속성을 써주면 되고
from은 말 그대로 보려고 하는 속성이 어느 테이블에 있는 지를 명시해 주면 된다. 그럼 해서기는 from에 먼저 접근하여 테이블을 확인하고 select의 속성들을 확인후 보여 주게 되는 것이다.
SQL문의 특성
- 대소문자를 구분 하지 않음
- 룰에 맞게 하는 것이 메모리를 정약하고 속도를 올리수 있다.
- select문을 잘쓰는 것이 DB 튜닝이다.
- 여러 SQL문을 사용할때는 ; 세미콜론으로 구분하여 쓴다.
Arithmetic Expressions
+, -, *, / 의 사칙연산을 SQL에 사용할수 있다.
select last_name, salary, 12*(salary+100)
from employees;
salary 값에 100을 더한후 12를 곱하여 연봉을 계산 하는 문장이 된다.
Defining a Null Value
SQL 문을 사용할때는 NULL값에 주의 해야 한다
NULL은 값이 아니다. 즉 계산이 될수 없으며 공백이나 0이라 생각하면 오산이다.
NULL과 계산된것을 알수 없는 것과 계산이 된것이므로 NULL값이 된다.
이 NULL값을 처리 하는 것은 뒤에 가다보면 나온다.
Defining a Column Alias
헤딩의 이름을 바꾸는 것이라 생각하면 된다. 계산에 유용하게 하용될수 있으며 AS라는 키워드를 사용하여 나타내 준다. 또한 쌍따옴표(double quotation)으로 나타내는 방법과 공백으로도 나타낼수 있다.
select last_name AS name, commmission_pct comm
from employees;
select last_name "Name" , salary*12 " Annual Salary"
from employees;
이 두분장의 차이점은 쌍다옴표로 묶은 것과 그냥 띄어 쓰기후 별명을 넣은 것이 무슨 차이가 있나가 궁금해 질수 있다. 간단하다 쌍따옴표로 묶는 것은 쓰여진 그대로 대소문자가 구분되서 나타나나 띄어 쓰기후 작성한 것은 모두 대문자로 표기되어 화면에 뿌려지게 된다.
Concatenation Operator
컬럼과 문자나 문자열 그리고 다른 컬럼을 연결시켜 주는 역할을 한다.
|| 로 표시하게 되며 결과 값도 컬럼이 합쳐져서 나타나게 되는 것이 특징
select last_name || job_id AS " Employees"
from employees;
last_name 컬럼의 결과갑과 job_id 컬럼의 값이 Employees헤딩으로 합쳐져서 결과값 출력
select last_name || ' is a ' || job_id AS " Employee Details"
from employees;
조금 복잡해 졌지만 보면 간단히 이해가 가능한 문장이다 is a 라는 문장을 결과 값에 반영하고 자 할때 사용하면 된다. 당연히 헤드는 Employee Details 가 된다.
King is a AD_PRES 이런 식으로 결과 값이 나오게 된다. (row)
Alternative Quote (q) Operator
문자열을 출력하는 다른 방법중 하나 이다.
select department_name || q'[, it's assigned manager Id: ]'
|| manager_id AS " Department and Manager"
from departments;
q(쿼트) 를 사용하여 ' ' 로 묶어 주면 되는데 그 영역을 정해 주는 delimiter는 마음대로 선택해도 된다 ([],{},(),or <>)이런 것들을 선택해서 영역을 정해 주면 된다.
당연히 결과값에(row) 문장이 첨가 되어 나타나므로 쉽게 이해할수 있는데 도움을 준다.
Duplicate Rows - 반복제거 키워드
select distinct department_id
from employees;
반복을 제거해 주려는 컬럼 앞에 distinct 를 써주게 되면 중복이 제거되어 결과값이 출력된다. 의외로 많이 사용하게 된다. 데이터는 같은 값이 여러곳에 걸쳐서 나타나는 경우가 많으므로 그냥 select문을 작성하게 되면 보기 힘들 경우가 종종 발생한다. 그때 사용해 준다
SQL PLUS는 단순한 어플리케이션 이며
iSQL PLUS는 브라우저에서 작동하는 차이점이 있다. 물론 혼자 동작할수 없으므로 SQL서버가 구동되어야 작동한다는 단점이 있으나 사용하기에는 더 편하다. 실무에서는 iSQL PLUS를 사용하기위해 일부러 SQL 서버를 구동시키지 않으니 SQL PLUS에 익숙해 지라고 하셨다.
다음에는 iSQL PLUS 사용법이 나오면서 1장이 끝난다.
