본문 바로가기

SQL20

[Oracle] ROWNUM을 이용해 LIMIT 구현(제한된 개수의 데이터 가져오기) 조회하려는 테이블에서 데이터를 10개씩 가져오기 예시: board_tbl 테이블 MySQL에서의 LIMIT 구문 /* 첫번째 데이터에서 10개 가져오기 */ SELECT * FROM board_tbl LIMIT 0, 10; /* 열한번째 데이터에서 10개 가져오기 */ SELECT * FROM board_tbl LIMIT (0 + 10), 10; ... SELECT * FROM 테이블명 LIMIT 가져오려는 데이터 순번 -1, 가져오려는 데이터 개수; Oracle에서의 ROWNUM 사용 /* 첫번째 데이터에서 10개 가져오기 */ SELECT * FROM ( SELECT ROWNUM AS rn, bt.* FROM (SELECT * FROM board_tbl) bt WHERE ROWNUM 0; /* 열한번.. 2021. 9. 23.
[Oracle] Mac 윈도우에서 작성한 sql 파일 한글 깨짐 git 으로 협업해서 프로젝트 진행하는 중에 Oracle SQLDeveloper 상에서 파일 한글 깨짐현상 발생 1. SQLDeveloper bin 폴더를 찾아 경로 복사 Application > SQLDeveloper > Contents > Resources > sqldeveloper > sqldeveloper > bin 2. 터미널 열어서 cd + 복사한 경로 3. vi 편집기로 sqldeveloper.conf 파일 열기 4. vi 편집기에 들어가면 명령모드이기때문에 a i o s 중 하나를 눌러 편집모드로 변경 가장 아래부분에 아래와 같이 INSERT라는 문구가 생김 5. 가장 하단에 AddVMOption -Duser.language=ko AddVMOption -Duser.country=KR 을 작.. 2021. 9. 22.
[Oracle] Mac The directory is not accessible 에러 Oracle SQL Developer 에서 파일을 저장하려고 하는데 특정 폴더에 접근할 때는 아래와 같은 에러창이 뜸 → bash의 권한이 없기 때문이라고 함 1. System Preferences > Security & Privacy > Full Disk Access > Click the lock to make changes. 2. 비밀번호 입력 > + 버튼 > / 입력 3. /bin/bash 입력 > Go 4. Open 5. 아래와 같이 추가가 되면 자물쇠 닫아주기 2021. 9. 20.
[Oracle] 시퀀스(Sequence)를 이용한 글번호 매기기와 증가 이상 Oracle에서 시퀀스와 테이블을 생성함 CREATE SEQUENCE spe_num; CREATE TABLE spe_tbl( bno NUMBER(10, 0) PRIMARY KEY, title VARCHAR2(200) NOT NULL, content VARCHAR2(2000) NOT NULL, writer VARCHAR2(50) NOT NULL, regdate DATE default SYSDATE, updatedate DATE default SYSDATE ); Oracle에는 MySQL에서 자동으로 증가하는 번호인 AUTO_INCREMENT가 없기 때문에 SEQUENCE를 생성해서 사용 spe_num이라는 시퀀스에는 처음에 0이 저장됨 그리고 PRIMARY KEY가 들어갈 자리에 시퀀스명.nextval이라.. 2021. 9. 17.
[Oracle] Mac ORA-01031 insufficient privileges 에러(ORA-01031) SYSTEM 이 아닌 다른 계정(MYTEST)으로 테이블을 생성하려고 하는데 다음과 같은 에러가 뜸 해당 계정 UNLOCK을 시도해봤지만 안되고 해당 계정이 존재하지 않는다고 나옴 → 세션을 먼저 변경해줘야함 과거의 구글링했던걸 정리해둔걸로 해결함.. 아래 게시글 참고 2021.07.22 - [SQL/Oracle] - [Oracle] 맥 터미널에서 오라클 실행 및 HR계정 활성화 [Oracle] 맥 터미널에서 오라클 실행 및 HR계정 활성화 오라클 실행 1. 아래 명령문으로 오라클 Oracle XE DB 컨테이너가 켜져있는지 확인 docker ps 2. 아래와 다르게 목록에 해당 컨테이너가 없다면 컨테이너를 실행시키기 3. 컨테이너의 목록 전체를 조회 wheneveryouwantsz.tistory.com.. 2021. 9. 15.
[SQL, JSP] 방금 INSERT 한 데이터의 PK 값을 받아오기 프로젝트를 하는 도중 추가할 기능이 생김 ( 기존 영화 정보를 입력하는 Form에 영화 티저 동영상 주소를 입력하는 Form을 추가 ) 1. 기존 테이블에서 컬럼을 추가하지 않고 새로 테이블을 생성해 외래키로 기존 테이블의 기본키 값과 연결 ( 기존 테이블의 mid와 새로 생성한 테이블의 mid가 연결 ) 2. Form에 정보를 입력하면 이를 INSERT 구문으로 기존 테이블 DB에 저장하는데, 문제는 기존 테이블의 기본키가 AUTO_INCREMENT라서 Form에서 받아올 값이 없음 → 새로 생성한 테이블에 mid 값을 입력할 수 없음 ( 구글링으로 mybatis의 selectkey라는 기능이 내가 구현하고자 하는 로직과 비슷한 것 같은데 더 간단하게 해결하고 싶었음 ) 그래서 생각한 해결방법 Form.. 2021. 8. 22.