본문 바로가기

Database

[Java] ? 이번엔 Scanner로 데이터를 입력받아서데이터베이스에 insert까지 해보겠습니다. Scanner sc = new Scanner(System.in); System.out.println("마트이름?: "); String name = sc.next(); System.out.println("지역은?: "); String location = sc.next(); System.out.println("몇 평?: "); int size = sc.nextInt(); System.out.println("주차장?: "); int parking = sc.nextInt(); String sql = "insert into MARKET " + "values(M_SEQ.NEXTVAL, " + "'"+name + "'"+ ",".. 더보기
[Java] DB연동 후 Insert하기 Java로 DB에 Insert하는 방법에 대해서 알아보겠습니다.  String sql = "insert into jan03_product " + "values(jan03_product_seq.nextval, " + "'테스트' , 10, 10, 3)"; 먼저 실행할 sql문을 String 변수에 담아줍니다.이때 띄어쓰기에 유의합니다.띄어쓰기 안하면 구문오류가 생기게 됩니다.그리고 괄호 뒤에는 구문을 끝내는 ; 를 붙이지 않습니다. 다음은 서버에 전송/실행/결과 받아오는 작업을 하는 총괄 매니저역할을 하는 객체를 하나 생성해주어야 합니다. PreparedStatement pstmt = con.prepareStatement(sql); PreparedStatement라는 객체인데 Connection객체 변수를.. 더보기
[Java] Database 연동 Eclipse에서 자바와 DB를 연동하려면 몇가지 사전 작업이 필요합니다.오늘은 DB와 연동하는 방법에 대해서 알아보겠습니다.오라클을 다운 받으면 압축을 푼 폴더가 하나 있을텐데  그 폴더 안에 Instantclient 폴더로 들어가서ojdbc.jar파일을 BuildPath 해줍니다.  BuildPath하는 방법입니다.  Add External JARs를 눌러 ojdbc.jar파일을 추가해주고Apply 해줍니다. String addr = "jdbc:oracle:thin:@192.168.0.12:1521:xe"; 그 다음은  오라클의 DB주소를 변수를 하나 만들어서위처럼 넣어주어야 하는데 연결할 DB서버 주소 (메이커 별로 형식이 다름)Data Source Explorer - 마우스 오른쪽 버튼proper.. 더보기
[DB] Delete 컬럼의 데이터를 변경할 때는 CREATEREADUPDATEDELETE  CRUD 중 D에 해당하는 DELETE를 사용합니다. 형태는 간단합니다.--D - deletedelete from 테이블명where 조건식; 조건식을 만족하면해당 컬럼의 모든 데이터가 삭제됩니다. 저번 시간에 만든 테이블로바로 실습을 진행해보겠습니다. --무 삭제하기! delete from JAN03_PRODUCTWHERE P_NAME = '무';SELECT * FROM JAN03_PRODUCT; 이름이 '무'인 컬럼의 데이터를 삭제합니다. -- 가장 좁은 매장의 상품 다 삭제하기! DELETE FROM JAN03_PRODUCTWHERE P_M_NO IN(SELECT M_NO FROM MARKETWHERE M_SIZE IN(SELEC.. 더보기
[DB] Update 컬럼의 데이터를 변경할 때는 CREATEREADUPDATEDELETE  CRUD 중 U에 해당하는 UPDATE를 사용합니다.  -- U -  UPDATE 사용방법은 간단합니다. UPDATE 테이블명SET 컬럼명 = 값, 컬럼명 = 값,.... -- 바꿀 내용WHERE 조건; 한번 값을 바꿔봅시다. 배추, 3000G, 10000원, 홈플러스, 판교점, 1000평, 주차장 500석무, 500G, 5000원, 홈플러스, 강남점, 500평, 주차장 300석배추, 2000G, 5000원, 이마트, 서초점, 800평, 주차장 800석 위의 데이터가 상품 테이블과 마트 테이블로 나뉘어져 들어가 있을 때UPDATE를 수행해보겠습니다.이떄 상품 테이블은 마트테이블의 시퀀스 넘버와외래키로 묶여져있다고 가정합니다. CREA.. 더보기
[DB] 계층형 쿼리 계층형 쿼리란테이블에 계층형 데이터가 존재하는 경우 이것을 조회하기 위한 쿼리를 말합니다. 계층형 데이터란, 동일 테이블에 계층적으로상위데이터와 하위데이터가 포함된 데이터입니다. 하드웨어를 예로 들면,중앙처리장치, 기억장치, 입출력장치의 상위데이터는 하드웨어입니다.입출력장치를 나눠서 입력장치, 출력장치의 상위데이터가 입출력장치입니다. CREATE TABLE JAN03_DEVICE(D_NAME VARCHAR2(10 CHAR) PRIMARY KEY,D_PRIOR VARCHAR2(10 CHAR)); INSERT INTO JAN03_DEVICE VALUES('하드웨어', NULL);INSERT INTO JAN03_DEVICE VALUES('중앙처리장치', '하드웨어');INSERT INTO JAN03_DEVIC.. 더보기
[DB] JOIN 연산의 종류 JOIN에도 여러가지 종류가 있는데요.먼저 CROSS JOIN부터 살펴보겠습니다.CROSS JOIN은 별도의 조건 없이 두 테이블 간의 가능한 모든 결과를 조회(모든 경우의 수)합니다. SELECT * FROM TB1, TB2;SELECT * FROM TB1 CROSS JOIN TB2; 두 SELECT문의 출력값이 같은데요.필요없는 데이터도 출력되기 때문에 잘 쓰이지는 않습니다. 다음으로 살펴볼 INNER JOIN은 조건에 해당하는 값만 나옵니다. SELECT * FROM TB1 INNER JOIN TB2 ON TB1.NAME = TB2.NAME; SELECT * FROM TB1 A, TB2 B WHERE A.NAME = B.NAME;SELECT * FROM TB1 JOIN TB2 USING (NAME).. 더보기
[DB] View 메뉴 데이터의 갯수를 나눠서 페이지별로 보여주고 싶을 때는 어떻게 할까요? SELECT COUNT(*) FROM RESTAURANT_MENU;  RESTAURANT_MENU  테이블에는 고유번호인 R_NO가 있고 (PRIMARY KEY)SEQUENCE로 처리한 상태입니다.R_NO로 처리하려고 보니까SEQUENCE는 INSERT에 실패해도 올라간다는 단점이 있습니다.메뉴 데이터는 삭제가 될 수도 있기 때문에R_NO가 정확히 1,2,3,4, ... 가 아닙니다.그럼 어떤 방법이 있을까요..? ROWNUM(가상필드)이라는 것을 사용하면 됩니다.SELECT할 때마다 자동으로 부여되는 숫자값을 ROWNUM이라고 하는데요.ROWNUM은 3가지 특징이 있습니다.* (전체조회)랑은 같이 사용할 수 없습니다.ORDER .. 더보기