- symbols(wildcard): %, _












==> ERROR : ORA-00911: invalid character

==> like 뒤의 조건은 문자열이어야 합니다.


※AutoTrace 

- 결과에는 SQL을 튜닝하는데 유용한 정보들을 많이 포함하고 있어 가장 즐겨 사용되는 도구 중 하나

① set autot on - SQL을 실제 수행하고 그 결과와 함께 실행계획 및 실행통계를 출력 

② set autot on explain - SQL을 실제 수행하고 그 결과와 함께 실행계획을 출력

③ set autot on statistics - SQL을 실제 수행하고 그 결과와 함께 실행통계를 출력 

④ set autot on traceonly - SQL을 실제 수행하지만 그 결과는 출력하지 않고 실행계획과 통계만 출력

⑤ set autot traceonly explain - SQL을 실제 수행하지 않고 실행계획만을 출력

⑥ set autot traceonly statistics - SQL을 실제 수행하고 그 결과는 출력하지 않고 실행통계만을 출력



[출처] AutoTrace|작성자 dndwlstm

set autot on - SQL을 실제 수행하고 그 결과와 함께 실행계획 및 실행통계를 출력

[출처] Autorace|작성자 dndwlstm

※강사왈~

implicit : 암시적 , 암묵적 = automatically = by oracle,computer, machine

explicitly : 명시적 = manually = by me, programmer, human





SQL> set autot off  -------------> 기능 끄기~~

------------------------------------


  * 심볼 찾기


    - 준비작업


테이블은 이미 학원에서 만들어서 요렇게 나온듯(테이블 삭제를 해야하는데 괜히 했다가 따른거 손댈꺼 같아서 

sql developer가 이래서 편한거 같다~~~)



    - 문제: t1 테이블에서 A_A가 포함된 문자열만 찾아다오, 오라클아!


SQL> select * from t1

    where col like '%A_A%';

'%A_A%'   

└any one character




* 탈출 문자 사용


SQL> select * from t1

    where col like '%A!_A%' escape '!'; --> escape 문자 지정


  (허걱 위에서 보면 데이터 까지 그래로 있었네...그래서 원래 하나만 출력 되어야 하는데... 뭐 잘 맞긴 맞는데..ㅋ)




* 탈출 문자(escape 문자) 찾기


SQL> insert into t1 values ('A!_A');

SQL> insert into t1 values ('A!!A');


SQL> commit;

SQL> select * from t1;


COL

----------

AAA

ABA

ACA

A_A

A!_A

(추후 테이블 삭제를 하고 실행 사진을 다시 올려야 겠다...~~~)

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

- t1 테이블에서 A!_A가 포함된 행을 찾아줄래? 오라클아.

A!!A ==> 엉터리


A_A ==> 엉터리


첫번째 방법)



↓ ↓ ↓ 

두번째 방법)

A!_A ==> 성공: 탈출 문자를 찾고 싶으면 연이어 사용


'Oracle > SQL Fundamentals I' 카테고리의 다른 글

4일차 # 2-17: NOT 연산자  (0) 2012.04.06
4일차 # 2-14: 논리 연산  (0) 2012.04.06
4일차 2-10: IN condition  (0) 2012.04.06
4일차 # 2-9: BETWEEN lower_limit AND upper_limit  (0) 2012.04.06
4일차 2-: NULL에 대한 이해  (0) 2012.04.06





where mgr in (101,102,201)

where mgr 101 or mgr =102 or mgr =201(x)





- inclusive






  * Query Transformation ==> http://goo.gl/ZJsXo


'Oracle > SQL Fundamentals I' 카테고리의 다른 글

4일차 2-11: LIKE condition  (0) 2012.04.06
4일차 2-10: IN condition  (0) 2012.04.06
4일차 2-: NULL에 대한 이해  (0) 2012.04.06
4일차 2-6: WHERE 절에서 문자열과 날짜  (0) 2012.04.06
4일차 2-4: WHERE clause  (0) 2012.04.06


NULL = UNKNOWN,(값이 있는지 없는지 모르다...존재하는 값이라고 본다)


- A null is a value that is unavailable, unassigned, unknown, or inapplicable.

- A null is not the same as a zero or a space.





  * NULL 연산


    1) 산술 ==> 전부 null





    2) 비교



     * comm이 null인 사원을 알고 싶다.

 --> null = null

선택된 레코드가 없습니다. --> 엉터리


↓ ↓ ↓ 

※강사왈~~

is null 과 is not null 은 참 과 거짓으로 생각


    3) 논리


* AND


  | T F N                         모두 T  --> T

--------------------------------           하나라도 F --> F

T  | T F N

F  | F F F

N  | N F N



* OR


  | T F N                          모두 F --> F

--------------------------------            하나라도 T --> T

T  | T T T

F  | T F N

N  | T N N



* NOT


  | T F N

--------------------------------

  | F T N







* 문자열 데이터 타입: case sensitive

* 날짜 데이터 타입  : format sensitive, default: DD-MON-RR


후보행


대문자랑 소문자는 다르다는걸 보여줌~~


- limiting, restricting, or filtering the rows in a table

  - WHERE 절은 후보행(candidate rows)을 검증해서 T, F, N 중 하나를 리턴하는 절

  - WHERE 절이 T를 리턴하는 후보행만 검증을 통과합니다



S  *

F  emp

(W  1=1;)항상 참인것은 where 절이 없는 것과 같은 결과...



S  *

F  emp

W  1=2; 거짓으르 모든 행이 탈락



*CTAS  Create Table As Select



'Oracle > SQL Fundamentals I' 카테고리의 다른 글

4일차 2-: NULL에 대한 이해  (0) 2012.04.06
4일차 2-6: WHERE 절에서 문자열과 날짜  (0) 2012.04.06
3일차 Query statements 작성시 순서  (0) 2012.04.05
3일차 Arithmetical Expressions  (0) 2012.04.05
3일차 SELECT  (0) 2012.04.05


※강사왈

       Query statements를 작성시 번호 순서대로 생각하면서 .....

English like                                                        

4 - SELECT  :     select-list(What) :수식                                         

1 - FROM     재료집합(T,V,SQ(in-lin view,...)


┌filtering

2 - WHERE     조건      ---->해당(candidate row)

조건을 만족하는 경우에만 통과

  조건식이 T을 반환 


3 - GROUP BY     표현식(수식)

5 - HAVING     조건(비교)

6 - ORDER BY     표현식

후보행(candidate row)

select sum(sal), avg(sal)

from emp 

group by deptno

order by deptno;





java_SQL.txt


'Oracle > SQL Fundamentals I' 카테고리의 다른 글

4일차 2-: NULL에 대한 이해  (0) 2012.04.06
4일차 2-6: WHERE 절에서 문자열과 날짜  (0) 2012.04.06
4일차 2-4: WHERE clause  (0) 2012.04.06
3일차 Arithmetical Expressions  (0) 2012.04.05
3일차 SELECT  (0) 2012.04.05



1-9: Arithmetic Expressions


  - 가공 - 연산자 - 1) 산술 : +, -, *, /

   2) 연결 : || - 문자열을 연결 

   3) 비교 - 동등 : =, !=, <>, IS NULL

   - 범위 : >, <, >=, <=, IN (...), ... BETWEEN ... AND ..., LIKE

   4) 논리 : AND, OR, NOT

   5) 기타 : ANY, ALL, EXIST


         - 함수   - 1) Built-in 함수 - Character

    - Number

    - Date

    - Conversion

    - General

 - 2) User-defined 함수  -> PL/SQL 이용


<1.산술>



문제) 사원이름,번호, 급여 및 연봉을 출력하는 query statement를 출력하시오~~

내가 한것


정답)



$ 수식, 표현식(expression)이란 무엇인가?

: 항과 연산자들의 조합

        - 항: 컬럼, 의사컬럼(pseudocolumn), 리터럴, 수식, 함수

             『expr(=value) 결과 값이 나오는 식.

                         ->항과 연산자의 조합

   (항) ---> Literal  : 1,2,'a','b','SEOUL','12-04-29'

                     ---> Column

                     ---> expr

                     ---> 함수

                     ---> Pseudo column』


$ SQL*Plus에서 한글 사용하기


      1) 시작 -> 실행 -> regedit 입력하고 실행



      2) 레지스트리 편집기에서 HKEY_LOCAL_MACHINE -> SOFTWARE 클릭

      3) 오른쪽 화면에서 오른 클릭 -> 새로만들기 -> 키 클릭하고 ORACLE 입력



      4) ORACLE 선택 -> 오른쪽 화면에서 오른 클릭 -> 새로만들기 -> 문자열값 -> nls_lang 입력

5) nls_lang 더블클릭 -> 값 데이터 -> korean_korea.ko16mswin949 입력 -> 확인


6) 이제 한글을 사용할 수 있습니다.




<2.연결>






<3.비교>




<4.논리>




<5. Built-in 함수>




 < 6. User-defined 함수: PL/SQL>

# 1-14: Column Alias




 

  - Column Alias를 쓰는 이유


   1)




   2)  



3행에 오류:

ORA-00998: 이 식은 열의 별명과 함께 지정해야 합니다


↓ ↓ ↓


# 1-17: Literal Character String


  - 문자, 문자열, 날짜 리터럴: 반드시 작은 따옴표로 둘러싸야 합니다.

  - 숫자: 그냥 쓰면 됩니다.


# 1-19: Quote(q) Operator



ERROR:

ORA-01756: 단일 인용부를 지정해 주십시오


↓ ↓ ↓

  1)

--> ''를 두번 연속으로 사용하면 '로 인식


  2) q 연산자 사용






ERROR:

ORA-01756: 단일 인용부를 지정해 주십시오




# 1-20: DISTINCT








# SQL*Plus 명령어


  --> SQL*Plus Quick Reference : http://goo.gl/IsYvt

SQL*Plus User's Guide and Reference : http://goo.gl/cuUGE









'Oracle > SQL Fundamentals I' 카테고리의 다른 글

4일차 2-: NULL에 대한 이해  (0) 2012.04.06
4일차 2-6: WHERE 절에서 문자열과 날짜  (0) 2012.04.06
4일차 2-4: WHERE clause  (0) 2012.04.06
3일차 Query statements 작성시 순서  (0) 2012.04.05
3일차 SELECT  (0) 2012.04.05


※강사왈

『SELECT - 원하는 집합(결과)를 묘사, 정의, (요청) 하는 문장

   FROM  재료집합(table,view, sub query);』


select-list  <------------what(조건,제약)







# 회사에 근무하는 모든 사원의 사원 번호와 사원 이름

  그리고 그 사원의 급여를 알고 싶다. 




○모든 부서의 정보를 알려다오    * (asterisk)

이런방법도 있다

차이는 첫번째 는 column을 지웠을 경우 error가 난다~~



# 1-7: SQL 문장 가이드

  1) 대소문자 구분하지 않음

  2) 여러줄에 걸쳐 작성 가능

  3) 키워드(예약어)는 줄여쓰거나 분리하여 사용할 수 없음

  4) 절은 보통 한줄에 하나씩 --> 가독성을 위해 (꼭 그렇게 하라는 것은 아닙니다)

  5) 들여쓰기 --> 가독성을 위해

  6) SQL문은 반드시 ;(semicolon)으로 종료되어야 합니다.



왕천재지노 자료

1장select문_보조자료.pdf

+ Recent posts