-
[데이터베이스] Oracle 서점관리시스템 만들기 연습하기º Database º/Oracle 2023. 4. 22. 19:50
* 서점관리에 필요한 테이블을 만들어 봅시다.
1. 서점 관리 테이블에서 인스턴스들을 체크합니다.
- 고객 ( 고객번호, 고객이름 , 주소, 전화)
- 도서 (도서번호, 도서명, 출판사, 가격)
- 주문 (주문번호, 고객번호, 도서번호, 구매가격, 구매일)
2. 사용자 계정만들기 (DDL)
SQL> create user c##madang identified by *****;
3. 권한부여하기 (DCL)
SQL> grant connect,resource,dba to c##madang;
4. 새로운 사용자로 데이터베이스에 접속합니다.
아이디는 c##madang, 비번은 *****으로 표시하겠습니다.
+ 시스템 재연결하는 방법 (2가지)
1) 기존의 연결을 끊고 다시 재접속
SQL> exit
C:\Users\user>sqlplus system/manager
SQL>sqlplus c##madang/*****
2) 연결 끊지 않고 conn으로 연결SQL>conn c##madang/*****
5. 테이블 만들기
- create table 테이블이름 (컬럼1 자료형1, 컬럼2 자료형2...)
- primary key : 중복 안된다는 뜻
- references 테이블명( ) : 자식테이블이 부모테이블에서 주식별자를 참조할 때 쓰는 명령어고객 (고객번호, 고객이름, 주소, 전화)
create table customer(
custid number primary key,
name varchar2(20),
address varchar2(50),
phone varchar2(20));도서(도서번호, 도서명, 출판사, 가격)
create table book(
bookied number primary key,
bookname varchar2(50),
publisher varchar2(50),
price number);주문(주문번호, 고객번호, 도서번호, 구매가격, 구매일)
create table orders(
orderid number primary key,
custid number references customer(custid),
bookied number references book(bookied),
saleprice number,
orderdate date);6. 테이블 구조확인
- desc 테이블이름;
SQL> desc student;
이름 널? 유형
----------------------------------------- -------- ----------------------------
NAME VARCHAR2(20)
KOR NUMBER
ENG NUMBER
MATH NUMBER7. 행 추가하기
- null : 빈칸출력
insert into customer values(1, '박지성', '영국 맨체스타', '000-5000-0001');
insert into customer values(2, '김연아', '대한민국 서울', '000-6000-0001');insert into book values(1, '축구의 역사', '굿스포츠',7000); i
nsert into book values(2, '축구의 이해', '나무수',13000);
insert into book values(3, '축구하는 사람', '대한미디어',22000);insert into orders values(1,1,1,7000,'2023/04/01');
insert into orders values(2,2,2,13000,'2023/04/01');
insert into orders values(3,3,3,22000,'2023/04/01');8. 커밋하기 ( 추가자료 반영) : commit;
롤백하기 ( 추가자료 취소) : rollback;
9. cmd에 보여지는 글자 정돈을 위해 포맷
SQL> ed ff
> 위와 같이 작성후 엔터를 누르면 ff.sql 메모장이 나타나게 됩니다.
custid format 9999;
column name format a10;
column address format a20;
column phone format a20;column bookied format 9999;
column bookname format a20;
column publisher format a10;
column price format 999,999;column ororderid format 9999;
column saleprice format 999,999;
column orderdate format a15;> 메모장에 작성 하고 저장합니다.
SQL>@ff
> cmd창에 @ ff 를 작성하면 바로 글자정돈 포맷이 진행됩니다.
저장해 둔 데이터들을 자바에서 데이터베이스에 연결하여 사용 합니다.
1. jdbc 프로그래밍 설정하기
- jdbc 드라이버를 프로젝트에 설정한다.
자바 프로젝트 이름 오른쪽 단추 -> Properties -> Java Build path -> Libraries -> Classpath
-> Add External JARS..-> C:\app\SIST\product\21c\dbhomeXE\jdbc\lib\ojdbc8.jar 선택2. jdbc 프로그래밍 절차
1) jdbc 드라이버를 메모리로 로드한다.
- Class.forName("드라이버 이름");Class.forName("oracle.jdbc.driver.OracleDriver");
2) db서버에 연결한다.
- Connection conn = DriverManager.getConnection("서버의주소","유저명","암호");
- 서버의 주소 : "jdbc:oracle:thin:@아이피주소:포트번호:서비스명"유저명 "c##madang" | 암호 "*****"
Connection conn = DriverManger.getConnection("jdbc:oracle:thin:@localhost:1521:XE","c##madang" ,"*****");
3) sql명령을 실행하기 위한 Statement 객체를 생성한다.Statement stmt = conn.createStatment();
4) sql 명령을 실행한다. (2가지 방법)
[1] 데이터 베이스 변경이 있는 명령(추가, 수정, 삭제)
-> int re = stmt.executeUpdate(sql);
(성공적으로 명령을 수행한 레코드 수로 반환)
[2] 데이터 베이스를 조회
-> ResultSet rs = stmt.executeQuery(sql);
(검색한 결과를 ResultSet으로 반환)
5) 사용했던 자원들을 닫아줍니다.
stmt.close();
conn.cloese();자바와 jdbc 데이터베이스 연결 하기 위하여 최종적으로 이렇게 작성하시면 됩니다.
try { String sql = "insert into student values('"+name+"',"+kor+","+eng+","+math+")"; System.out.println(sql); //1. jdbc 드라이버를 메모리로 로드한다. Class.forName("oracle.jdbc.driver.OracleDriver"); //2. db서버에 연결한다. Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "c##sist", "sist"); //3. sql명령을 실행하기 위한 Statement 객체를 생성한다. Statement stmt = conn.createStatement(); //4.sql 명령을 실행한다. int re = stmt.executeUpdate(sql); if(re ==1) { System.out.println("레코드를 추가하였습니다"); }else { System.out.println("실패"); } //5. 사용했던 자원들을 닫아줍니다. stmt.close(); conn.close(); } catch (Exception e) { System.out.println("예외발생 : "+ e.getMessage()); }
'º Database º > Oracle' 카테고리의 다른 글
[ORACLE] 오라클 테이블 컬럼 추가/수정/삭제 (ALTER) (0) 2023.07.15 [데이터베이스] 서브쿼리 (중첩질의), 셀프조인, left(right) outer join 정리노트 (0) 2023.05.15 [데이터베이스] Oracle DML 자료의 추가, 조회, 수정, 삭제 (0) 2023.04.22 [데이터베이스] Oracle의 특징과 데이터베이스 명령어의 종류 (0) 2023.04.18