'프로그램 사용/oracle'에 해당되는 글 17건

  1. 2014.06.17 oracle select
  2. 2014.06.01 sql order by
  3. 2014.06.01 sql outer join
  4. 2014.05.30 sql group by
  5. 2014.05.29 sql distinct
  6. 2014.05.28 oracle 대소문자 구분없이 검색하기
  7. 2014.05.20 oracle 타입 - nvarchar2 varchar2
  8. 2014.05.20 oracle view
  9. 2014.05.20 oracle alter
  10. 2014.05.11 oracle sequence 명령어
프로그램 사용/oracle2014. 6. 17. 16:02
오라클 공식 select 문법 구조
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm]
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/img/subquery.gif


[ subquery_factoring_clause ]
SELECT
   [ hint ]
   [ { { DISTINCT | UNIQUE }
     | ALL
     }
   ]
   select_list
   FROM { table_reference [, table_reference ]...
               | join_clause
               | ( join_clause ) 
               }
   [ where_clause ]
   [ hierarchical_query_clause ]
   [ group_by_clause ]
   [ HAVING condition ]
   [ model_clause ]
   [ { UNION [ ALL ]
     | INTERSECT
     | MINUS
     }
     (subquery)
   ]
   [ order_by_clause ]
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/img_text/subquery.htm]  

hierarchical
[ START WITH condition ]
CONNECT BY [ NOCYCLE ] condition
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/img_text/hierarchical_query_clause.htm]

outer join
[ query_partition_clause ]
{ outer_join_type JOIN
| NATURAL [ outer_join_type ] JOIN
}
table_reference [ query_partition_clause ]
[ ON condition
| USING ( column [, column ]...)
]
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/img_text/outer_join_clause.htm]


inner join
{ [ INNER ] JOIN table_reference
    { ON condition
    | USING (column [, column ]...)
    }
| { CROSS
  | NATURAL [ INNER ]
  }
  JOIN table_reference
}
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/img_text/inner_cross_join_clause.htm] 

'프로그램 사용 > oracle' 카테고리의 다른 글

sql order by  (0) 2014.06.01
sql outer join  (0) 2014.06.01
sql group by  (0) 2014.05.30
sql distinct  (0) 2014.05.29
oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
Posted by 구차니
가장 많이 쓰는건 ASC / DESC 이지만..
값이 null이 있을 경우
null이 먼저 출력되고 양수 / 0 / 음수로 출력이 되어 의도한 것과 다르게 나왔다.
그래서 nulls last를 해줌으로서
원하는 대로 값을 출력할 수 있게 된다.

ORDER BY { column-Name | ColumnPosition | Expression }
    [ ASC | DESC ]
    [ NULLS FIRST | NULLS LAST ]
    [ , column-Name | ColumnPosition | Expression 
    [ ASC | DESC ]
    [ NULLS FIRST | NULLS LAST ]
    ] * 

ASC
Specifies that the results should be returned in ascending order. If the order is not specified, ASC is the default.
DESC
Specifies that the results should be returned in descending order.
 
[링크 : http://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqlj13658.html


+ 2014.06.02 추가
order by col1, col2 desc 라고 할 경우
col1은 asc col2는 desc로 정렬된다.
위에 BNF을 보면 컬럼명에 따라서 각각 desc nulls last 를 적용해야 한다. 

'프로그램 사용 > oracle' 카테고리의 다른 글

oracle select  (0) 2014.06.17
sql outer join  (0) 2014.06.01
sql group by  (0) 2014.05.30
sql distinct  (0) 2014.05.29
oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
Posted by 구차니
아우터 조인은 왜 쓰나 했는데,
모든 필드가 not null이 아니기에
값이 존재하지 않는 필드까지 포함해서 값을 꺼내야 할 경우(그러니까 목록이라던가?)
상당히 유용하게 사용이 되어진다.

[링크 : http://whdvy777.tistory.com/entry/view-뷰-생성-수정-인라인뷰inline-view-TopN-실습]
[링크 : http://wiki.gurubee.net/pages/viewpage.action?pageId=6259015]


'프로그램 사용 > oracle' 카테고리의 다른 글

oracle select  (0) 2014.06.17
sql order by  (0) 2014.06.01
sql group by  (0) 2014.05.30
sql distinct  (0) 2014.05.29
oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
Posted by 구차니
프로그램 사용/oracle2014. 5. 30. 17:41
group by는 그룹별로 정렬하는 것인데

어떻게 사용하냐에 따라서
distinct + sum을 한번에 처리할 수 있는 좋은 명령어이다!!

아래는 장르별로 추천수를 합산하여 장르별 점수를 내림차순으로 정렬한다.
가장 인기있는 장르 순서를 출력하는 sql 문이라고 해야 하려나?
<select id="selectTopGenre" resultClass="java.lang.String">
SELECT GENRE_1, SUM(SCORE)
FROM MUSIC_DB, MUSIC_SCORE
WHERE MUSIC_SCORE.MUSICID = MUSIC_DB.MUSICID AND MUSIC_SCORE.SCORE = 1
GROUP BY GENRE_1
ORDER BY SUM(SCORE) DESC
</select> 

아무튼 특이한건.. order by의 경우 score로 필드가 아닌 sum(score)라고 해야 제대로 정렬이 된다 .
score는 개별 필드고 sum(score)는 합산된 결과에 대한 필드라서 이려나? 

[링크 : http://www.w3schools.com/sql/sql_groupby.asp]


+ 2014.06.01 추가
group by를 사용시에는
select에 group by에서 사용한 항목만 사용이 가능해진다.

[링크 : http://www.itmembers.net/board/view.php?id=oracle&...desc=asc&no=29] group by 
[링크 : http://docs.oracle.com/javadb/10.6.1.0/ref/rrefsqlj32654.html]

'프로그램 사용 > oracle' 카테고리의 다른 글

sql order by  (0) 2014.06.01
sql outer join  (0) 2014.06.01
sql distinct  (0) 2014.05.29
oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
oracle 타입 - nvarchar2 varchar2  (0) 2014.05.20
Posted by 구차니
프로그램 사용/oracle2014. 5. 29. 23:01
distinct 키워드는 결과로 뽑아낼 목록을
집합으로 만들어서 중복을 제거하고 말그대로 '분류'를 뽑아낸다.

예를들어


 장르
 팝
 팝
 클래식
 클래식

을 distinct로 돌리면
팝, 클래식 두개만 나오게 된다.

[링크 : http://www.w3schools.com/sql/sql_distinct.asp]
[링크 : http://technet.microsoft.com/ko-kr/library/ms187831(v=sql.105).aspx]

'프로그램 사용 > oracle' 카테고리의 다른 글

sql outer join  (0) 2014.06.01
sql group by  (0) 2014.05.30
oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
oracle 타입 - nvarchar2 varchar2  (0) 2014.05.20
oracle view  (0) 2014.05.20
Posted by 구차니
프로그램 사용/oracle2014. 5. 28. 16:23

select * from music_db where lower(TITLE) like lower('%MAN%')
select * from music_db where upper(TITLE) like upper('%MAN%')

select * from music_db where lower(TITLE) like '%man%'
select * from music_db where upper(TITLE) like '%MAN%'

안됨
select * from music_db where TITLE like '%MAN%'
select * from music_db where title like '%man%'

일단. 검색 키워드는 대문자로 올지 소문자로 올지 모르니
무조건 upper나 lower를 해중야 하니
사용가능한 선택지는 실질적으로 두가지뿐이다.


[링크 : http://jhbench.tistory.com/323]

'프로그램 사용 > oracle' 카테고리의 다른 글

sql group by  (0) 2014.05.30
sql distinct  (0) 2014.05.29
oracle 타입 - nvarchar2 varchar2  (0) 2014.05.20
oracle view  (0) 2014.05.20
oracle alter  (0) 2014.05.20
Posted by 구차니
프로그램 사용/oracle2014. 5. 20. 23:32
오라클에는 varchar2 라는 타입을 주로 사용하지만
이녀석은 char[] 로 1바이트 문자열을 최대 4000 byte까지 저장할 수 있다.
물론 4000 바이트라는건 최대 선언 가능한 길이일뿐
varcahr2 타입으로 선언한다고 해서 가변으로 0~4000자를 입력할수 있는건 아니다.
(이렇게 자동으로 길이 해주면 얼마나 좋았을까 -_-)

아무튼 요즘은 바야흐로(?) 유니코드 시대이기에 문자열 역시 유니코드로 저장하게 되는데
DB에서도 varchar2와 같이 1byte 문자열이 아닌 2byte 문자열(UTF-8 / UTF-16)을 지원해야 하고
이녀석은 nvarchar2로 N이 하나 더 붙게 된다.


VARCHAR2 and VARCHAR Datatypes

The VARCHAR2 datatype stores variable-length character strings. When you create a table with a VARCHAR2 column, you specify a maximum string length (in bytes or characters) between 1 and 4000 bytes for the VARCHAR2 column. For each row, Oracle stores each value in the column as a variable-length field unless a value exceeds the column's maximum length, in which case Oracle returns an error. Using VARCHAR2 and VARCHAR saves on space used by the table.

For example, assume you declare a column VARCHAR2 with a maximum size of 50 characters. In a single-byte character set, if only 10 characters are given for the VARCHAR2 column value in a particular row, the column in the row's row piece stores only the 10 characters (10 bytes), not 50.

Oracle compares VARCHAR2 values using nonpadded comparison semantics.


NCHAR and NVARCHAR2 Datatypes

NCHAR and NVARCHAR2 are Unicode datatypes that store Unicode character data. The character set of NCHAR and NVARCHAR2 datatypes can only be either AL16UTF16 or UTF8 and is specified at database creation time as the national character set. AL16UTF16 and UTF8 are both Unicode encoding.

The NCHAR datatype stores fixed-length character strings that correspond to the national character set.

The NVARCHAR2 datatype stores variable length character strings.

When you create a table with an NCHAR or NVARCHAR2 column, the maximum size specified is always in character length semantics. Character length semantics is the default and only length semantics for NCHAR or NVARCHAR2.

For example, if national character set is UTF8, then the following statement defines the maximum byte length of 90 bytes:

CREATE TABLE tab1 (col1 NCHAR(30));

This statement creates a column with maximum character length of 30. The maximum byte length is the multiple of the maximum character length and the maximum number of bytes in each character. 
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14220/datatype.htm

If you prefer to implement Unicode support incrementally, or if you need to support multilingual data only in certain columns, then you can store Unicode data in either the UTF-16 or UTF-8 encoding form in SQL NCHAR datatypes (NCHAR, NVARCHAR2, and NCLOB). The SQL NCHAR datatypes are called Unicode datatypes because they are used only for storing Unicode data.

[링크 : http://docs.oracle.com/cd/B28359_01/server.111/b28298/ch6unicode.htm]

'프로그램 사용 > oracle' 카테고리의 다른 글

sql distinct  (0) 2014.05.29
oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
oracle view  (0) 2014.05.20
oracle alter  (0) 2014.05.20
oracle sequence 명령어  (0) 2014.05.11
Posted by 구차니
프로그램 사용/oracle2014. 5. 20. 16:08
view는 일종의 select sql 문을 저장해 두는 기능을 한다.

CREATE VIEW locations_view AS
   SELECT d.department_id, d.department_name, l.location_id, l.city
   FROM departments d, locations l
   WHERE d.location_id = l.location_id;

SELECT column_name, updatable 
   FROM user_updatable_columns
   WHERE table_name = 'LOCATIONS_VIEW';
 
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8004.htm

어떻게 보면.. 게시판 소스에서 많이 보게 되는 서브쿼리 혹은 중첩쿼리의 기능인데
subquery / inline view 라고도 부르며 이녀석 역시 일종의 view 인 것이었다!!

Inline 뷰
인라인 뷰는 FROM 절에서 서브쿼리를 사용하여 생성한 임시 뷰이다. 인라인 뷰는 SQL 문이 실행되는 동안만 임시적으로 정의된다.
 
[링크 : http://radiocom.kunsan.ac.kr/lecture/oracle/what_is/view.html

[링크 : http://zetswing.com/bbs/board.php?bo_table=ORACLE_TIP&wr_id=9&page=2


+
mysql에서 view는 5.0.x 부터 지원한다.
[링크 : http://dev.mysql.com/doc/refman/5.0/en/views.html]

'프로그램 사용 > oracle' 카테고리의 다른 글

oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
oracle 타입 - nvarchar2 varchar2  (0) 2014.05.20
oracle alter  (0) 2014.05.20
oracle sequence 명령어  (0) 2014.05.11
오라클 DDL 정리  (0) 2014.05.11
Posted by 구차니
프로그램 사용/oracle2014. 5. 20. 15:43
변경시에는 추가된 값이 있으면 안되는 경우도 있으니(date -> varchar2)
주의해서 사용해야 할 듯...

alter table tablename add (colname type ..) // 항목 추가하기
alter table tablename drop column // 항목 삭제하기
alter table tablename modify (colname newtype ..) // 변수형 바꾸기
alter table tablename rename column oldname to newname // 항목명 바꾸기(9iR2 이후) 

[링크 : http://majesty76.tistory.com/27]


'프로그램 사용 > oracle' 카테고리의 다른 글

oracle 타입 - nvarchar2 varchar2  (0) 2014.05.20
oracle view  (0) 2014.05.20
oracle sequence 명령어  (0) 2014.05.11
오라클 DDL 정리  (0) 2014.05.11
오라클 10g용 시작/종료 스크립트  (0) 2014.04.11
Posted by 구차니
프로그램 사용/oracle2014. 5. 11. 23:13
음. 별 차이가 없군..

create sequence 했으니
drop sequence

[링크 : http://deuxism.tistory.com/27]

'프로그램 사용 > oracle' 카테고리의 다른 글

oracle view  (0) 2014.05.20
oracle alter  (0) 2014.05.20
오라클 DDL 정리  (0) 2014.05.11
오라클 10g용 시작/종료 스크립트  (0) 2014.04.11
oracle backup  (0) 2014.04.10
Posted by 구차니