본문 바로가기
반응형

Database12

JDBC(2) ? (바인드 변수)쿼리의 value값 대신 바인드변수를 넣어 변수처리 할 수 있음like에 바인드변수를 사용할 때는 작은따옴표를 떼고 사용해야함 (ex. ‘%나%’ → %나%)테이블명과 컬럼명은 bind 변수로 처리할 수 없음import java.sql.*; public class Test02_selectLike { public static void main(String[] args) { // like 연산자 연습 // 이름에 '나' 문자가 있는 행을 조회하시오 String col = "uname"; String word = "나"; //ex) 검색어 word = word.trim(); //공백 제거 // 검색어 존재 유무 확인 if (word.length() > 0) { //where uname lik.. 2023. 3. 28.
JDBC(1) 도메인 창에 홈디렉토리를 그대로 나타내지 않고 Context root로 나타냄 PreparedStatement.executeQuery() → SELECT문에서 사용 PreparedStatement.executeUpdate() → INSERT, UPDATE or DELETE문에서 사용 JDBC DB연결 1. JDBC Driver 등록 JDBC Driver 클래스를 path에서 찾고, 메모리 로딩 → 이 과정에서 JDBC Driver 클래스의 static 블록이 실행되면서 DriverManager에 JDBC객체를 등록하게됨 Class.forName("oracle.jdbc.OracleDriver"); 2. 클래스를 찾지 못할경우 ClassNotFoundException 예외가 발생할 수 있기 때문에 예외처리 .. 2023. 3. 27.
Oracle SQL(6) ✅세션 사용자가 오라클 데이터베이스에 접속을 하게 되면 세션이 생성됨 사용자가 데이터베이스를 접속 종료할 때 까지 계속 유지됨 각 세션에는 고유한 SID(Session identifier)와 SERIAL#(serial number)를 가지고 있음 시리얼 번호는 세션이 종료되어도 다른 세션이 동일한 SID를 갖고 시작했을 때 정확한 세션 객체에 적용될 수 있도록 보장해줌 ✅오라클 DB 사용자 계정 오라클 DB 사용자 계정생성 방법 1. 계정생성시 세션 변경해야함 alter session set "_ORACLE_SCRIPT" = true; 2. 테이블스페이스 생성 create tablespace [테이블스페이스이름] // 대부분 회사 이름으로 사용 datafile ['데이터파일경로'] size [초기사이즈].. 2023. 3. 6.
SQL 예제(3) JOIN 연습문제 문제1) 지역별로 수강신청 인원수, 지역을 조회하시오 select address, count(*) || '명' as cnt from (select a.hakno, address from (select hakno from tb_sugang group by hakno) a inner join tb_student b on a.hakno = b.hakno) group by address; 문제2) 과목별 수강 신청 인원수, 과목코드, 과목명를 조회하시오 select a.gcode, gname, concat(count(*), '명') as "인원수" from tb_sugang a inner join tb_gwamok b on a.gcode = b.gcode group by gname, a.gco.. 2023. 3. 3.
Oracle SQL(5) rownum 고정된 값이 아닌 select되는 값에 따라서 동적으로 부여되는 번호 위의 순서대로 진행됨 작동방식 where절이 실행될 때 조건에 맞으면 1을 부여하고, 맞지 않으면 번호를 부여하지않고 버림 select문이 실행되면서 번호가 부여됨 → 따라서 rownum은 where절이 실행될때 존재하는 컬럼이 아니므로 rownum=1 외에 숫자 지정은 할 수 없음 rownum을 이용해서 4번~6번 데이터 조회하기 select uname, hakno, address, rownum from tb_student where rnum between 4 and 6 order by uname; 위의 방식대로 데이터를 추출하면 아무런 값이 추출되지 않음 rownum은 고정된 값이 아닌 select되는 값에 따라서 동적.. 2023. 3. 3.
Oracle SQL(4) [참고] https://gent.tistory.com/376 JOIN 이너 조인 (INNER JOIN) 기준테이블의 조인컬럼, 조인테이블의 조인컬럼에 해당값이 모두 존재하는경우에만 데이터가 조회됨 예) → emp 테이블의 ename의 king의 경우 deptno의 값이 90인데 dept테이블에는 존재하지 않기때문에 조인하게되면 조회되지 않음 아우터 조인 (OUTER JOIN) 기준 테이블의 데이터를 누락 없이 모두 조회하고 참조 테이블의 값이 있을 경우 해당 값을 사용하기 위해서 아우터 조인을 사용함 LEFT/RIGHT/FULL OUTER JOIN 기준 테이블에만 데이터가 존재하면 조회됨 아우터 조인에서 LEFT, RIGHT는 기준 테이블을 지정하는 것이며, 아래의 쿼리에서 LEFT OUTER JOIN의.. 2023. 3. 2.
SQL 예제(2) [emp 테이블] 문 1) emp 사원테이블을 생성하시오 create table emp( empno number(4) primary key --사번(-9999~9999) ,ename varchar2(50) --이름 ,job varchar2(10) --직급 ,mgr number(4) --매니저정보 ,hiredate date --입사일 ,sal number(7,2) --급여(소수점 2자리) ,comm number(7,2) --커미션(보너스) ,deptno number(2) --부서코드(-99~99) ); 문 2) emp사원테이블에 행을 추가하시오 insert into emp(empno, ename, job, mgr, hiredate, sal, deptno) values(7369, '개나리', '사원', 79.. 2023. 2. 28.
Oracle SQL(3) 해석순서 GROUP BY [참고] https://extbrain.tistory.com/56 select [그룹컬럼], [집계함수] from [테이블명] group by [그룹컬럼]; SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type; --hero_collection 테이블에서 type 컬럼을 기준으로 그룹핑한 결과를 보여주는 쿼리 HAVING where절과 비슷한 조건절의 역할을 하지만 where 뒤로 와야하고 group by와 함께 사용해야함 집계함수를 사용하여 조건을 부여할 수 있음 select [그룹컬럼], [집계함수] from [테이블명] group by [그룹컬럼] having [조건절]; select addr, count(*.. 2023. 2. 27.
Oracle SQL(2) ✅Create sequence 자동으로 일련번호 부여 시퀀스 생성: CREAT SEQUENCE [시퀀스명]; 시퀀스 사용: [시퀀스명].nextval → value값에 입력 시퀀스 삭제: DELETE SEQUENCE [시퀀스명]; -- sungjuk 테이블에서 사용할 시퀀스 생성 create sequence sungjuk_seq; -- 시퀀스와 sysdate함수를 이용한 행 추가 insert into sungjuk(sno, uname, wdate) values(sungjuk_seq.nextval, '홍길동', sysdate); ✅Read 데이터 조회의 제한, 데이터 조회 방법 ⭐키워드 오는 순서 알고있기 SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [.. 2023. 2. 23.
반응형