데이터 입력순서대로 조회하는 방법 0 6 8,416

by 치비 [SQL Query] [2014.10.20 13:59:26]


안녕하세요 오라클 공부중인 초보 개발자 입니다.

저가 이번에 오라클과 jsp를 연동하여 평가 테이블을 하나 만들고 있는데 궁금한게 있어서 질문을 드립니다.

create table test01 (

subject varchar2(10)

snum varhcar2(10) primary key );

요런 테이블을 만들어서 subject(과목)에 대한 숫자를 01 부터 10까지 입력이 가능하며 거기에 snum은 수업을 받는

학생들의 반 번호이기 때문에 중복이 안되게끔 pk키를 등록했습니다.

이것을 저가 select * from test01 where subject = 01 요렇게 해서 각 과목에 대해서 수강중인 학생을 셀렉트 해오는데

이게 jsp 페이지에서 입력한 순서대로 select 가 되어야 하는데 어쩔때는 입력한 순서대로 select가 되는데 시간이 지나면 insert 순서대로 select가 되지 않으며 아니면 3번 정도 입력하면은 순번이 꼬입니다. 예를 들어 설명 하면은

1-1/1-2/1-3/1-5 순서대로 insert를 하면 1-1/1-2/1-5/1-3 이런 순서데로 조회가 되는 겁니다...

지금 jsp의 스크립트 문제인지 아니면 쿼리 문제인지 도저히 감히 안와서 전문가님들에게 여쭤 봅니다

insert 순서대로 select 를 할려면 어떡해 해야할까요? 전문가 님들의 조언이 필요합니다. 긴근 읽어주시느라 감사합니다.

by 아발란체 [2014.10.20 14:06:45]

오라클 DB가 원래 그럽니다.

오라클에서 입력 순서를 보장하려면 IOT 를 쓰면 되나, 딱 순서 조회만 이점이 있고 다른 부분은 오히려 부하가 많아 추천 드리지 않습니다.

 

오라클에서 순서를 보장하여 조회하는 기술이 데이타가 적을 때는 큰 문제가 없는데 데이타가 많은 대용량 테이블일 경우 순서를 보장하여 부분 처리 할 경우 많은 경험적 지식이 필요합니다.

관련 강좌 : http://www.gurubee.net/lecture/2287

 


by 치비 [2014.10.20 14:37:15]

성심껏 대답 해주셔서 너무너무 감사합니다^^ 좋은 하루 되세요~


by 마농 [2014.10.20 14:08:36]

테이블에는 데이터가 순서대로 저장되지 않습니다.
또한 순서대로 저장되어 있다손 치더라도 저장되어 있는 순서대로의 조회를 보장할 수 없습니다.
정렬된 결과를 원한다면 반드시 정렬 구문(Order By)을 사용하셔야 합니다.


입력 순서는 테이블에 따로 저장되지 않습니다.
따라서 입력순서는 정렬기준이 될 수 없습니다.
입력순서를 알고자 한다면?
입력순서를 알 수 있는 관리항목(입력일시 또는 순번)을 테이블 설계시 포함시켜야 합니다.


by 치비 [2014.10.20 14:38:48]

궁금한점이 있는데 그렇다면 date 열을 추가해서 select * from test01 where subject = 01 order by date 요렇게 하면은 시간순으로 대이터가 나오기 때문에 입력한대로 셀렉트가 되지 않을까요??


by 마농 [2014.10.20 15:02:40]

그렇게 하시라고 답변 드린건데요? 의미없는 추가 질문은 왜 하신건지?


by 치비 [2014.10.20 15:20:27]

하하 아직 초보다 보니 밑에 있는 글을 완벽하게 이해 못해서 그런것 같습니다. 성심껏 대답해주셔서 정말 감사합니다^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입