본문 바로가기

언어공부/JDBC&오라클&SQL

JDBC - 이클립스 SQL 파일 생성 및 SQL문 작성 (create, insert, select, update, delete)

JDBC - 이클립스 SQL에 대해서 알아보자.

 

전의 포스팅에서 SQL에 대한 명령어를 정리해놓은걸 가져왔다.

 

 

SQL파일은 sql프로젝트 및 폴더를 따로 만들고, 해당 폴더에 오른쪽 클릭-new-other-SQL File을 눌러 생성할 수 있다.

 

 

SQL파일을 생성하면 아래와 같이 만들어진다.

 

 

여기서 오라클 주석문은 자바와 달리 한줄 주석문은 --를 사용하고, 한줄 이상 주석문은 /**/를 사용한다.

 

 


<테이블 생성 create문>

 

테이블 생성 문법은 create table 테이블명(컬럼명(=필드명), 자료형(크기) 제약조건)으로 생성할 수 있다. 제약조건이란 컬럼에 저장되는 자료에 어떠한 제한을 가하는 것이다.  위의 SQL문을 자세히 보면 아래와 같다.

 

오라클 자료형 종류)
1.number(38): 최대 자리수 38자 까지 정수 숫자 자료형.
2.varchar2; : 가변문자 자료형 (크기가 가변됨. 고정크기x)
3.date : 날짜 자료형

primary key의 특징)
1. 기본키 제약조건으로 중복 자료 저장 금지, null저장 금지.

 

 

여기서 해당 SQL문을 실행하려면, 실행할 SQL문을 블록으로 잡고, 오른쪽 클릭 - Excute Selected Text를 눌러주면 된다. 빠른키는 alt+x이다.

 

 

실행되면 SQL Results에서 결과를 확인할 수 있다. succeeded가 뜨면 실행 된것이다.

 

<시퀀스 생성>

 

테이블에 값을 넣기 전에, 시퀀스를 생성한다. 시퀀스는 번호 발생기로, 빈 번호값(null)이 없다. 주로 기본키 제약조건으로 설정되어 있고, 게시판 번호값 저장용도로 사용된다. 

 

 

시퀀스 다음 번호값을 확인하기 위해 위의 명령어를 사용한다. dual테이블은 오라클 설치 시 설치되는 기본 테이블이다. seq.nextval을 사용하면 번호가 계속 다음번호로 바뀐다.

 


<자료 삽입 insert문>

 

테이블에 값을 넣기 위해서는 insert into 테이블명 (컬럼목록) values (값); 명령어로 넣을 수 있다. 만약 전체 컬럼에 자료 를 저장하려하면 테이블명 옆의 (컬럼목록)은 생략 가능하다.

 

첫 번째 insert문은 전체 필드명에 자료를 저장하기 때문에 (컬럼목록)을 생략했다. 그리고 게시판 번호값은 아까 생성했던 시퀀스로 저장한다. 번호를 select하고 insert하면 계속 값이 바뀐다. sysdate는 오라클 날짜함수이다. 

 

두 번째 insert문은 위와 같은 내용이지만 (컬럼목록)을 생략하지 않았다.

 


<자료 검색 select문>

 

테이블 및 값 확인을 위해서 select문으로 검색할 수 있다. select *(또는 컬럼지정) from 테이블명 order by 기준컬럼명 정렬방식; 명령어로 검색할 수 있다.  *로 모든 항목을 검색하거나, 특정 컬럼명을 지정해서 확인할 수 있다.  정렬방식은 오름차순(asc) 및 내림차순(desc)이 있다. default값이 asc이기 때문에 내림차순으로 정렬하려면 꼭 입력해줘야 한다.

 

where 조건식으로 조건에 해당하는 값들도 찾을 수 있다.

 

첫 번째 select문을 실행하면 모든 항목들을 bno가 내림차순인 상태로 정렬해서 보여준다.

 

 


<자료 수정 update문>

 

insert를 잘못한 자료를 수정하려면 update문으로 수정 가능하다. update 테이블명 set 컬럼명=변경할 값, ..., where 조건식; 명령어로 사용 가능하며, 위의 update문은 2번을 기준으로 수정을 한다.

 

 

select문으로 검색하면 2번이 수정된 것을 확인할 수 있다.

 


<자료 삭제 delete문>

 

자료를 삭제하고 싶으면 delete from 테이블명 where 조건식; 명령어로 삭제할 수 있다. 해당 delete문은 2번자료를 삭제하는 명령어이다.

 

 

select문으로 검색하면 2번 레코드가 삭제된 것을 확인할 수 있다.