1. Oracle 기본 구조
2. SELECT 기본 문장 작성
SELECT * FROM 테이블 명;
SELECT * FROM EMP
• SELECT절은 표시할 열을 식별한다.
• FROM절은 테이블을 식별한다.
• SQL 문은 대소문자를 구분하지 않는다.
• SQL 문은 여러 줄에 작성될 수 있다.
• SQL 문은 세미콜론(;)으로 종료한다.
• 테이블 하나가 가질 수 있는 컬럼의 갯수는 1000개
SELECT lnid, id_typ, bthday
FROM tid ;
• * 대신 컬럼명을 넣어 테이블에서 원하는 컬럼의 데이터만 조회할 수 있다.
3. 산술식, 날짜 연산자, 연결 연산자, Null 정의.
SELECT lnid, ln_dt, ln_amt, ln_amt / 1000000, (ln_amt*0.0325)/12
FROM tacct ;
• 산술 연산자를 사용하여 컬럼 데이터의 연산을 수행할 수 있다.
SELECT lnid, ln_amt, exp_dt, exp_dt - 14
FROM tacct ;
• 날짜 -14를 주어 해당일로부터 14일 전의 연산결과를 출력할 수 있다.
SELECT lnid || ' 차주의 등급은 ' || grade || ' 입니다.'
FROM tid
WHERE id_typ = '2' ;
• 두 개의 세로선(||)을 사용하여 열이나 문자열을 다른 열에 연결할 수 있다.
• 연결된 결과는 문자로 처리된다.
SELECT *
FROM tid ;
• Null은 값을 가지고 있지 않은 상태를 의미하는데, 공백 문자와는 다르다.
4. 열 alias(열머리글, 별칭 지정), 중복행 제거 DISTINCT
SELECT lnid AS 차주번호, id_typ AS 차주구분코드
,bthday 생일, gender 성별
FROM tid ;
• 열 머리글의 이름을 바꿀 수 있다.
• 열 이름 바로 뒤에 오는데, 열 이름과 alias 사이에 선택 사항 인 AS 키워드쓰거나 생략할 수 있다.
SELECT lnact, lnact_seq, ln_amt,
ln_amt/1000 "대출금(천원)"
FROM tacct ;
• 공백이나 특수 문자를 포함하거나 대소문자를 구분하는 경우 큰따 옴표가 필요하다.
• 열 머리글을 주어 연산결과의 의미있는 특정 컬럼을 만들어 조회할 수 있다.
SELECT DISTINCT grade
FROM tid ;
• query 결과에는 중복 행을 포함한 모든 행이 표시되는데, 제거하려면 제거하려면 DISTINCT를 사용한다.
5. WHERE 절을 이용한 행 제한, 조건 비교하는 방법, 조건 연산자
-- 14. 계좌정보(TACCT) 테이블을 이용하여 다음의 데이터를 검색하세요.
--컬럼: lnact, lnact_seq, lnid, ln_dt, exp_dt, ln_amt/1000000
--조건1: 한도계좌 제외 (lmt_typ:NULL)
--조건2: 2021년에 개설된 대출 계좌(ln_dt)
select lnact, lnact_seq, lnid, ln_dt, exp_dt, ln_amt/1000000
from TACCT
where
lmt_typ is null
AND
ln_dt >= '2021/01/01';
• WHERE 절을 사용하여 반환되는 행을 제한한다.
• WHERE 절은 FROM 절 다음에 사용한다.
• 조건식은 TRUE 또는 FALSE 평가가 가능하도록 정의한다.
• 조건식은 하나 이상 사용할 수 있다. 어떻게? AND, OR, BETWEEN 기타 등등..
6. BETWEEN 연산자를 사용하는 범위 조건, IN 연산자
SELECT lnact, lnact_seq, lnid, ln_dt, ln_term, ln_amt
FROM tacct
WHERE ln_amt BETWEEN 1000000000 AND 2000000000 ;
-- 작은값 큰값
• BETWEEN 연산자를 사용하여 값의 범위를 기반으로 행을 표시할 수 있다.
• WHERE ln_amt BETWEEN 작은값 AND 큰 값
SELECT lnid, id_typ, bthday, grade
FROM tid
WHERE grade IN ('AA+','AA','AA-') ;
• IN 연산자를 사용하여 리스트의 값을 테스트할 수 있다.
• 특정값 여러개를 선택해서 괄호 내의 값중 일치하는 것이 있으면 true로 반환한다.
7. LIKE 연산자를 사용하여 문자열 추출하기.
• LIKE 연산자를 사용하여 문자 검색을 수행할 수 있다.
SELECT *
FROM tcode
WHERE grade LIKE 'A%' ;
• A로 시작하는 컬럼 데이터 출력
SELECT *
FROM tcode
WHERE grade LIKE '%A' ;
• A로 끝나는 컬럼 데이터 출력
SELECT *
FROM tcode
WHERE grade LIKE '%A%' ;
• A가 포함되는 데이터 출력.
SELECT *
FROM tcode
WHERE grade LIKE 'A_' ;
• A_ 뒤에 한글자가 있는 데이터 출력.
• _A 앞에 한글자가 있는 데이터 출력.
8. is null, is not null, AND 연산자, OR 연산자, NOT 연산자
• IS NULL 연산자로 null값인 데이터를 조회할 수 있다.
SELECT lnact, lnact_seq, acct_typ, lmt_typ,
lnid, ln_dt, ln_amt
FROM tacct
WHERE lmt_typ IS NULL ;
• AND 연산에서는 두 구성 요소 조건이 모두 참이어야 한다.
SELECT lnact, lnact_seq, acct_typ, lmt_typ,
lnid, ln_dt, ln_amt
FROM tacct
WHERE lmt_typ IS NULL
AND ln_dt >= '2022/01/01';
• OR 연산에서는 두 구성 요소 조건 중 하나가 참이어야 한다.
SELECT lnact, lnact_seq, acct_typ, prod_cd,
lnid, ln_dt, ln_amt
FROM tacct
WHERE prod_cd = '101'
OR prod_cd = '102' ;
• 조건이 거짓인 경우 TRUE를 반환한다.
SELECT lnid, id_typ, bthday, grade
FROM tid
WHERE grade NOT IN ('AA+','AA','AA-') ; -- 포함되지 않는것
9. SQL 문장해석 순서
-- 5. SELECT : 검색 대상 표현식
-- 1. FROM : 검색 대상 집합(테이블, 서브쿼리, 뷰)
-- 2. WHERE : 행 제한을 위한 조건식
-- 3. GROUP BY
-- 4. HAVING
-- 5. ORDER BY
'Study > OracleDB' 카테고리의 다른 글
Oracle day3 (1) | 2022.09.30 |
---|---|
Oracle Day2 (0) | 2022.09.29 |
36강 오라클 인덱스 (1) | 2022.09.12 |
35강 오라클 시퀀스 (1) | 2022.09.12 |
34강 오라클 가상 테이블인 view (1) | 2022.09.12 |