SQL 1강

그냥 처음 시작해서 1강임.
범위는 맘데로.. ㅡ,.ㅡ;;;
자~~ 시작!!!

* SQL (Structure Query Language)

다음과 같이 5가지로 분류할 수 있다.

1. Query  --> select
2. DML  --> insert, update, delete   
3. DDL  --> create, alter, drop, truncate, rename
4. DCL  --> grant, revoke
5. TCL  --> commit, rollback, savepoint


이제부터는 오라클에서의 예제다. (오라클 설치는 잘 해보자!!)

오라클의 테스트 계정은 scott 이고 pw는 tiger이다.

sqlplus을 실행시켜서 접속해보자.

cmd창에서 sqlplus scott/tiger 를 입력하자.

lock이 걸려있으면 sqlplus /as sysdba 로 접속

alter user scott account unlick; 를 입력하자.

입력하면 '사용자가 변경되었습니다.' 라는 메시지가 나온다.

사용자 변경 구문 : connect scott/tiger

scott 로 접속했으면 이제부터 진짜 실습

SQL> 입력창에서

select * from emp; 입력한다. 테이블 구조가 깨져서 보이면 다음을 입력한다.

SQL> set lines 300    <--- 가로
SQL> set pages 40   <--- 세로
위 두줄은 항상 입력해야한다. (sqlplus 를 종료한 후에 다시 접속할 때마다)


오라클에는 기본 테이블이 몇개 있는데 지금 사용할 테이블은

emp(사원) 테이블과 dept(부서) 테이블이다.


===== emp(사원) 테이블 =====

empno 사원번호
ename 사원이름
job 직업
sal 월급
comm 커미션
mgr 관리자의 사원번호
deptno 부서번호
hiredate 입사일

=============================

===== dept(부서) 테이블 =====

deptno 부서번호
loc 부서위치
dname 부서명

=============================


이제 이 두 테이블로 실습해 보자.

--사원번호, 사원이름, 부서번호, 입사일을 출력!
SQL> select empno, ename, deptno, hiredate from emp;
뒤에 종결자로 ;(세미콜론)을 붙여준다.
한줄에 select, from을 다 쓰려하지 말고 다음과 같이 줄을 나눠서 쓰도록 한다.
다음줄에 쓸때도 from 절 앞에 공간을 주도록 한다. (가독성을 높이기 위해)

SQL> select empno, ename, deptno, hiredate
  2          from emp;

select 는 이처럼 쉽다!!! ㅡ,.ㅡ;

쿼리에 연산자도 사용할수 있는데 연산자에는 3종류가 있다.

1. 산술연산자 : * / + -

2. 비교연산자 : > , < , >= , <= , = , <> , != , ^=
같지않다 - <> , != , ^=    ( 3가지 모두 )

3. 논리연산자 : and, or, not

자... 여기서 문제~

-- 이름, 월급, 커미션, 월급+커미션을 출력!
select ename, sal, comm, sal+comm
  from emp;

ENAME SAL COMM SAL+COMM
SMITH 800    
ALLEN 1600 300 1900
WARD 1250 500 1750
JONES 2975    
MARTIN 1250 1400 2650
BLAKE 2850    
CLARK 2450    
SCOTT 3000    
KING 5000    
TURNER 1500 0 1500
ADAMS 1100    
JAMES 950    
FORD 3000    
MILLER 1300    

결과를 보면 값이 나오지 않은 부분이 있다.
null --> 알수없는 값 ( 0 도 아니고 공백도 아니다)

null 인 부분을 나오게 하려면 nvl을 쓴다.(nvl 에 대해서는 다음기회에...)

select ename, sal, comm, nvl(sal+comm,0)
   from emp;

ENAME SAL COMM SAL+COMM
SMITH 800   0
ALLEN 1600 300 1900
WARD 1250 500 1750
JONES 2975   0
MARTIN 1250 1400 2650
BLAKE 2850   0
CLARK 2450   0
SCOTT 3000   0
KING 5000   0
TURNER 1500 0 1500
ADAMS 1100   0
JAMES 950   0
FORD 3000   0
MILLER 1300   0


입력창에서 edit 나 ed 를 입력하고 엔터키를 입력하면
메모장이 열리면서 그 전에 입력한 sql 문이 나온다.
편집하고 저장후(종료하면된다)   편집창에서는 문장끝에 세미콜론을 주지않는다.
SQL> 입력창에서 / 슬러시를 입력한다.

-- 앨리어스(별칭) 주기

SQL> select empno 번호 , ename 이    름
  2    from emp;
select empno 번호 , ename 이    름
                             *
1행에 오류:
ORA-00923: FROM 키워드가 필요한 위치에 없습니다.

위처럼 오류가 표시되는데
이    름 을 컬럼명으로 입력하려면 " " 를 찍어준다.

select empno 번호 , ename "이    름"
 from emp;

번호    
7369 SMITH
7499 ALLEN
7521 WARD


-- " " 을 사용하는 경우
1. 공백문자, 특수문자
2. 대소문자를 구분해서 출력하고 싶을때

--사원이름을 Ename, 월급을  Salary 로 출력하라(컬럼명 변경)

select ename "Ename", sal "Salary"
   from emp;

Ename          Salary
---------- ----------
SMITH             800
ALLEN            1600



헉헉.. 쓰다보니 너무 길어지는군.. 다음기회에...

'SQL > 공부' 카테고리의 다른 글

SQL - 조인  (0) 2007.12.07
SQL 함수3  (2) 2007.11.29
SQL 함수2  (0) 2007.11.29
SQL - 함수  (0) 2007.11.26
SQL 2강  (0) 2007.11.23