본문 바로가기

DBMS

(22)
[DBMS] 22 ● 회원가입 - dBeaver에서 가져온 INSERT문을 'query'에 적용 public boolean join(TBL_MEMBER_VO member) { String query = "INSERT INTO TBL_MEMBER" + "(NUM, ID, PW, NAME, AGE)" + "VALUES(MEMBER_SEQ.NEXTVAL, ?, ?, ?, ?)"; boolean check = false; try { conn = DBConnecter.getConnection(); pstm = conn.prepareStatement(query); pstm.setString(1, member.getId()); pstm.setString(2, encrypt(member.getPw())); pstm.setString(3..
[DBMS] 21 ● JDBC 연동 - 중복검사, 회원가입, 로그인 ​ ​ ● 중복검사 1. DBConnecter 생성 package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnecter { public static Connection getConnection() { Connection conn = null; try { String url = "jdbc:oracle:thin:@localhost:1521:XE"; String user = "hr"; String pw = "hr"; Class.forName("oracle.jdbc.driver.OracleDriver");..
[DBMS] 20 JDBC ​ ● JDBC(Java DataBase Connectivity) - SEQUENCE : 특정 값만큼 일정하게 증가시킨다. ​ ​(ex) 1. TBL_MEMBER의 NUM을 1씩 증가시키는 SEQUENCE 만들기 CREATE SEQUENCE MEMBER_SEQ INCREMENT BY 1 --1씩 증가 START WITH 1--1부터 시작 MINVALUE 1 --최소값 MAXVALUE 100; --최대값 ​ 2. TBL_MEMBER 테이블 만들기 CREATE TABLE TBL_MEMBER( NUM NUMBER, ID VARCHAR2(200), PW VARCHAR2(200), NAME VARCHAR2(200), AGE NUMBER, CONSTRAINT MEMBER_PK PRIMARY KEY(NUM)..
[DBMS] 19 PROCEDURE ​ ● 프로시저(PROCEDURE) 생성 CREATE OR REPLACE PROCEDURE 프로시저의 이름 ( 매개변수1 IN 데이터타입:=타입 매개변수2 IN 데이터타입%TYPE ) IS 함수내에서 사용할 변수, 상수 등 선언 BEGIN 실행할 문장 END; ​ ※ BEGIN-END 단독 사용 - 전체 드래그 후 Ctrl + Enter 하여 실행 BEGIN DBMS_OUTPUT.PUT_LINE('HELLO'); END; ​ ​ ● 프로시저(PROCEDURE) 사용 CALL 프로시저 이름(값1, 값2) ​ ​ ※ Output ON - Output 사용 전 ON으로 설정하기 ​ ​ ※ Output 확인 - 아래 사진에 표시된 버튼을 클릭하여 확인한다. ​ PL/SQL문(IF문) ​ ● 종..
[DBMS] 18 VIEW 실습 ​ 1. EMPLOYEES 테이블에서 사원 이름과 그 사원의 매니저 이름이 있는 VIEW 생성 후 KING STEVEN의 사원 목록 조회 1) cmd에서 hr 계정으로 로그인 후 flower 계정에 hr 계정의 EMPLOYESS 테이블 검색 권한 부여 2) VIEW 생성 CREATE VIEW EMPLOYEES_MANAGER AS ( SELECT E1.LAST_NAME||' '||E1.FIRST_NAME AS ENAME, E2.LAST_NAME||' '||E2.FIRST_NAME AS MNAME FROM HR.EMPLOYEES E1 JOIN HR.EMPLOYEES E2 ON E1.MANAGER_ID = E2.EMPLOYEE_ID ); 3) 검색 SELECT ENAME, MNAME FROM E..
[DBMS] 17 테이블 복사 실습 ​ 1. SCOTT 계정의 EMP 테이블을 복사해서 비등가 조인으로 등급별 ENAME, SAL 검색하기) 1) cmd에서 scott 계정으로 로그인 후 flower 계정에 scott 계정의 emp 테이블 검색 권한 부여 2) SCOTT의 EMP 테이블을 복사하여 EMP 테이블 생성 CREATE TABLE EMP AS SELECT * FROM SCOTT.EMP; 3) 검색 SELECT S."LEVEL", E.ENAME, E.SAL FROM EMP E JOIN SALGRADE S ON E.SAL BETWEEN S.LOSAL AND S. HISAL ORDER BY 1; ​ 2. HR 계정의 DEPT 테이블을 복사한 후, 복사한 테이블에서 LOC별 평균 급여 검색(단, LOC은 모두 검색) 1..
[DBMS] 16 ● DCL(Data Control Language) - 데이터 제어어 - A라는 계정의 테이블에 DML을 사용하기 위해서는 A 계정에게 권한을 부여받아야 한다. ​ ​ ● DCL 종류 1. GRANT : 권한 부여 - GRANT 권한명(ROLE 이름), 권한명2, ... TO 계정명 ​ 2. REVOKE : 권한 강탈 - REVOKE 권한명(ROLE 이름) FROM 계정명 3. ROLE - 권한이 뭉쳐 있는(모여 있는) 상태 - 종류 : CONNECT, RESOURCE, DBA - connect 사용 ​ ※ 다른 계정의 테이블 복사 - as : as 뒤의 select로 가져온 테이블의 모든 정보를 가져온다. ​ ​(ex) scott 테이블에서 SALGRADE를 복사한 후 GRADE 컬럼명을 LEVEL로 ..
[DBMS] 15 DML 실습 ​ ​ 1. PLAYER 테이블에서 팀별 최대 몸무게인 선수의 TEAM_ID, REGION_NAME, PLAYER_NAME, WEIGHT 검색 (WHERE IN 사용하기) - PLAYER 테이블에서 팀별 최대 몸무게 SELECT TEAM_ID, MAX(WEIGHT) FROM PLAYER GROUP BY TEAM_ID ORDER BY 1; - 최종 SELECT P.TEAM_ID, REGION_NAME, PLAYER_NAME, WEIGHT FROM PLAYER P JOIN TEAM T ON P.TEAM_ID = T.TEAM_ID AND (P.TEAM_ID, P.WEIGHT) IN (SELECT TEAM_ID, MAX(WEIGHT) FROM PLAYER GROUP BY TEAM_ID); ​ 2. ..