목록분류 전체보기 (36)
꺄르륵
// Statement 객체를 사용 - 효율성이 낮음, 해킹에 노출되기 쉽다. String sql = "INSERT INTO BANKINFO (BANK_NO, BANK_NAME, BANK_USER_NAME, BANK_DATE) VALUES ('" + bankNo + "','" + bankName + "','" + bankUserName +"',SYSDATE)"; // "INSERT INTO BANKINFO (BANK_NO, BANK_NAME, BANK_USER_NAME, BANK_DATE) VALUES ('" + 111-111-1111 + "','" + 하나으냉 + "','" + 고갱이 +"',SYSDATE)"; stmt = conn.createStatement(); // SQL문이 SELECT 일때는 ..
JARs 파일 추가후 작업해줍니다. 데이터베이스(DB) 처리 순서 JDBC ? Java DataBase Connectivity - 자바-db 연동 ========================================== 자바-DB 연동 순서 ========================================== 1. 드라이버 로딩 -> JDBC라이브러리를 JVM 메모리에 로딩한다. Class.forName("oracle.jdbc.driver.OracleDriver"); 2. DB에 접속하기 -> DB에 접속이 성공하면 Connection객체가 생성된다. DriverManager.getConnection() 메서드를 이용한다. 3. 처리할 SQL 명령을 DB에 전달할 객체를 생성한 후 SQL명령을..
테이블 조인 (TABLE JOIN) 1. TABLE JOIN? - 관계형데이터 베이스의 핵심 기능이다. - 수행 조건은 테이블 사이에 공통된 컬럼(외래키)가 존재할 경우 수행할 수 있다. - 분산 저장된 테이블간의 컬럼을 가져오거나 검색할 수 있다. - ANSI형식과 일반 JOIN 형식이 다르다. 1.1. 일반 JOIN 형식 1) Cartesian Product - 모든 가능한 행들의 조합을 결과값으로 반환한다. A 테이블(1000행 15열) * B테이블(500행 10열) 의 결과는 500000행, 25열이 된다. - 조인 조건이 없거나 잘못된 조인 조건이 부여될시 발생한다. 예) 장바구니 테이블과 상품테이블을 CARTESIAN PRDUCT를 발생시켜보자. SELECT COUNT(*) "행의 갯수" FR..
1. 자동집계함수(ROLLUP, CUBE) 1.1. ROLLUP(col1[,col2...]) 1.1.1. col1로 정의된 컬럼을 기준으로 추가 집계 정보를 반환한다. : col1은 SELECT 절에서 정의된 집계함수를 제외한 일반 컬럼을 사용한다. : col1이 기술된 순서(오른쪽 -> 왼쪽) 레벨에 따른 집계 정보를 반환한다. : 사용된 col이 n개이면 n+1개의 집계정보를 반환한다.(하위레벨 -> 상위레벨 순서) 예) 장바구니테이블에서 2005년도 5월 일자별 회원별 판매수량을 구하시오 --ROLLUP을 사용하지 않은 경우 SELECT TO_DATE(SUBSTR(CART_NO,1,8),'YYYY/MM/DD') 날짜, CART_MEMBER 회원번호, SUM(CART_QTY) 수량 FROM CART ..
1. 집계 함수(SUM, AVG, COUNT, MIN, MAX) - GROUP BY 절이 사용된다. 1.1. SUM(c) 1.1.1. 컬럼 c에 저장된 값의 합꼐를 반환한다. 예) 2005년 6월에 판매된 제품의 수량을 합산하여 출력하시오. SELECT SUM(CART_QTY) 수량 FROM CART WHERE SUBSTR(CART_NO,1,6) = '200506'; -- GROUP BY 절은 불필요한 경우 1 예) 회원테이블에서 회원들의 모든 마일리지 합계를 구하시오. SELECT SUM(MEM_MILEAGE) "회원들의 총 마일리지" FROM MEMBER; -- GROUP BY 절은 불필요한 경우 2 1.1.2. 표현식 : 한개이상의 값과 연산자, 함수 등이 결합된 식 CASE WHEN ~ THEN ..
1. 변환함수 . 오라클은 수식에 사용된 자료형이 자동변환 기능을 제공한다. . 정수형이 문자열보다 우선 적용된다. EX) SELECT '23' + 75 FROM DUAL; -- 정수형 98로 출력된다. 1.1. CAST(exp1 AS type) 1.1.1. 'exp1'을 type으로 변환한다. 예) 회원테이블에서 주민번호 앞자리를 날짜형으로 변환한다. SELECT MEM_NAME 회원명, MEM_REGNO1 원본, CAST('19' || MEM_REGNO1 AS DATE) AS DATE타입변환, CAST(MEM_REGNO1 AS NUMBER) AS NUMBER타입변환 FROM MEMBER; SELECT EMP_NAME 원본, LENGTH(EMP_NAME) "EMP_NAME의 길이", CAST(EMP_N..
1. 날짜 함수 1.1. SYSDATE, SYSTIMESTAMP 1.1.1. 시스템에서 제공하는 현재의 날짜 및 시간 예) SELECT SYSDATE FROM DUAL; -- 현재의 YYYY-MM-DD의 값이 반환된다. 1.2. ADD_MONTHS(d, n) 1.2.1. 날짜자료 d에 n개월을 더한 날짜를 반환한다. SELECT ADD_MONTHS(SYSDATE, 10) FROM DUAL; -- 현재 날짜의 해당하는 달 + 10월을 더한 날짜를 반환한다. 1.3. NEXT_DAY(d, c) 1.3.1. d에 해당하는 날짜 이후에 가장 먼저 만나는 c 요일의 날짜를 반환한다. - c는 요일을 기술한다. EX) '월요일(1)' '화요일(2)' ... 예) SELECT NEXT_DAY(SYSDATE, '월')..
1. 문자열 함수 : 문자열을 서로 비교할때 사용된다. 1.1. INITCAP(c), LOWER(c), UPPER(c) : 'c'에 저장된 문자열 자료의 대소 문자를 변환시킬때 사용한다. 1.1.1. INITCAP(c) : 단어의 첫 글자만 대문자로 변환한다. 예) SELECT INITCAP('emAil') FROM DUAL; -- 출력 : Email 1.1.2. LOWER(c) : 모든 문자를 소문자로 변환한다. 예) SELECT LOWER('EMAIL') FROM DUAL; -- 출력 : email 1.1.3. UPPER(c) : 모든 문자를 대문자로 변환한다. 예) SELECT UPPER('email') FROM DUAL; -- 출력 : EMAIL 예) 사원테이블의 자료중 사원명의 FIRST NAM..
1. 숫자 함수 : 숫자형 함수는 숫자 데이터를 입력받아 처리하고 숫자를 리턴하는 함수이다. 1.1. ABS(n) : 절대값을 반환한다. 1.1.1. 사용예시 : 주로 편차를 구할때 사용된다. SELECT ABS(-100) FROM DUAL; 1.2. ROUND(n[,i]) : ROUND는 주어진 자료를 n을 i+1번째 자리에서 반올림한다. : i가 음수이면 정수 부분에서 (i번째 자리) 반올림한다. : i가 생략되면 0으로 간주된다. : 날짜에서 사용되면 SELECT ROUND(SYSDATE) FROM DUAL; SELECT MOD((TO_DATE('19920805')-TO_DATE('00010101')-1), 7) FROM DUAL; -- 0이면 일요일, 1이면 월요일, ... , 6이면 토요일이다...