728x90
수업내용
1교시 (09:30-10:20)
- 어제 배운 것 리뷰
- 오라클 데이터베이스
DBA : 시스템 어드미니스트레이터 : System Administrator
데이터를 설치, 변경, 삭제
테이블 생성, 변경, 삭제
데이터를 백업하고 스토리지를 관리
PL/SQL Developer
ISUD INSERT SELECT UPDATE DELETE
CRUD CREAT READ UPDATE DELETE
DQL SELECT
DML INSERT UPDATE DELETE
DDL CREATE DROP ALTER
TCL COMMIT ROLLBACK
DCL GRANT
시퀄: MS MS-SQL
- 오라클 데이터베이스
2교시 (10:30-11:20)
- [교재 29p, 31p, 32p, 26p, 80p]
- 행, 열, 테이블, ...
3교시 (11:30-12:20)
- SELECT
SELECT * FROM EMP;
-- COUNT() 함수 : 테이블의 로우 수를 보여준다. 테이블의 레코드 수를 보여준다.
SELECT COUNT(*) FROM EMP;
SELECT COUNT(EMPNO) FROM EMP;
SELECT COUNT(COMM) FROM EMP;
SELECT ROWID, EMPNO FROM EMP;
-- 유니크 UNIQUE NOT NULL
/*
스키마
테이블 로우 열 NULL PK FK
*/
SELECT SYSDATE FROM DUAL;
SELECT SYSTIMESTAMP FROM DUAL;
-- SELECT
/*
SELECT 키워드 : 테이블에서 데이터를 질의하는(조회하는) 키워드
SELECT 절 : 테이블에서 조회하고 싶은 컬럼 이름을 순차적으로 적는다, 구분자는 , (CSV)
FROM 키워드 : 데이터를 조회하고 싶은 테이블 이름을 정하는 키워드
FROM 절 : 조회하고자 하는 테이블 이름을 순차적으로 적는다. 구분자 ,
WHERE 키워드 : 데이터를 조회하는 조건을 적는 키워드
WHERE 절 : 조회 조건을 적는데 AND(그리고 연산) 키워드와 OR(또는 연산) 키워드를 이용할 수 있다.
SELECT
SELECT 절
FROM
FROM 절
WHERE
WHERE 절
*/
-- EMP 테이블에서 테이블 데이터 전체를 조회하시오
-- * : 와일드 카드 : 테이블 전체를 의미한다. : FULL SCAN : 풀 스캔
-- 질의문은 항상 ; 종결해야 한다.
SELECT * FROM EMP;
-- 테이블은 계정명.테이블이름
SELECT * FROM SCOTT.EMP;
-- 테이블 이름은 항상 테이블 앨리어스(별칭)을 사용한다.
-- 테이블 앨리어스 : 자바에서 객체의 참조변수와 같은 역할을 한다.
-- FROM 절에서 테이블에 테이블 앨리어스(별칭)을 사용하면
-- 해당 테이블의 컬럼을 조회할 때 테이블 앨리어스를 사용해서 컬럼을 지정해야 한다.
SELECT A.* FROM SCOTT.EMP A;
SELECT B.* FROM SCOTT.EMP B;
4교시 (12:30-13:20)
- 앨리어스
-- AS 컬럼 앨리어스(별칭) 식별자
-- AS EMPNO는 A.EMPNO의 별칭이다.
-- 사원번호 : 주석
SELECT
A.EMPNO AS EMPNO -- 사원번호
,A.ENAME AS ENAME -- 사원이름
,A.JOB AS JOB -- 사원직책
,A.MGR AS MGR -- 상관사원번호
,A.HIREDATE AS HIREDATE -- 입사일
,A.SAL AS SAL -- 급여
,A.COMM AS COMM -- 수당
,A.DEPTNO AS DEPTNO -- 부서 번호
FROM
SCOTT.EMP A;
-- AS 키워드 꼭 사용하세요.
SELECT
A.EMPNO EMPNO -- 사원번호
,A.ENAME ENAME -- 사원이름
,A.JOB JOB -- 사원직책
,A.MGR MGR -- 상관사원번호
,A.HIREDATE HIREDATE -- 입사일
,A.SAL SAL -- 급여
,A.COMM COMM -- 수당
,A.DEPTNO DEPTNO -- 부서 번호
FROM
SCOTT.EMP A;
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE,
SAL, COMM, DEPTNO
FROM EMP;
-- EMP 테이블에서 사원번호, 부서, 입사일을 조회하시오
SELECT
A.EMPNO AS EMPNO -- 사원번호
,A.JOB AS JOB -- 부서
,A.HIREDATE AS HIREDATE -- 입사일
FROM
EMP A;
5교시 (14:30-15:20)
- 조회된 데이터 정렬하기
-- 조회된 데이터 정렬하기, SORT 하기
-- ORDER BY DESC, ASC
-- Ascending 오름차순
-- Descending 내림차순
/*
SELECT *
FROM T
WHERE 조건식
ORDER BY 컬럼명1 [ASC|DESC], 컬럼명 2 [ASC|DESC], 컬럼명 2 [ASC|DESC] ...
*/
SELECT ROWID, A.* FROM EMP A;
SELECT ROWID, A.* FROM EMP A ORDER BY A.EMPNO ASC; -- DEFAULT
SELECT ROWID, A.* FROM EMP A ORDER BY A.EMPNO DESC;
-- SELECT 절에 있는 컬럼 EMPNO 1, ENAME 2, JOB 3, MGR 4
-- SELECT 절에서 순차적으로 나열된 컬럼 명의 숫자가 INDEX이다.
SELECT EMPNO, ENAME, JOB, MGR FROM EMP A ORDER BY 1 ASC; -- DEFAULT
6교시 (15:30-16:20)
- Oracle Eclipse Connection
- 1번: C:\app\kosmo\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar
- 2번: C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\ojdbc6.jar
- 1번 경로의 ojdbc5.jar를 2번경로에 복사해둔다.
package a.b.c.oracle; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class OracleTest { public static void main(String[] args) { // TODO Auto-generated method stub try { // C:\\app\\kosmo\\product\\11.2.0\\dbhome_1\\jdbc\\lib\\ojdbc6\\ // oracle\\jdbc\\driver\\OracleDriver.class // oracle.jdbc.driver.OracleDriver /* 0. 환경변수에 CLASSPATH 설정하기 1. C:\\Program Files\\Java\\jdk1.8.0_202\\jre\\lib\\ext\\ojdbc6.jar <-- 이것으로 사용한다. 2. C:\\Program Files\\Java\\jre1.8.0_202\\lib\\ext\\ojdbc6.jar 3. 이클립스 프로젝트에서 Bulid Path -> Configure Build Path... -> Librarias 탭-> Add External JARS... */ Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("" + Class.forName("oracle.jdbc.driver.OracleDriver")); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orclKSY00", "scott", "tiger"); System.out.println("conn >>> : " + conn); Statement stmt = conn.createStatement(); System.out.println("stmt >>> : " + stmt); ResultSet rsRs = stmt.executeQuery("SELECT * FROM EMP ORDER BY 1 DESC"); System.out.println("rsRs >>> : " + rsRs); while (rsRs.next()) { System.out.print(rsRs.getString(1) + " : "); System.out.print(rsRs.getString(2) + " : "); System.out.print(rsRs.getString(3) + " : "); System.out.print(rsRs.getString(4) + " : "); System.out.print(rsRs.getString(5) + " : "); System.out.print(rsRs.getString(6) + " : "); System.out.print(rsRs.getString(7) + " : "); System.out.println(rsRs.getString(8)); } }catch(Exception e) { System.out.println(e); } } }
7교시 (16:30-17:20)
- Oracle Eclipse Connection (계속)
package a.b.c.oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class OracleTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
// =======================================================
// ojdbc6.jar <-- JDBC 드라이버
// Oracle 11g 2 Release <--> Java Application jdk 1.8
// =======================================================
// C:\app\kosmo\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar
// oracle\jdbc\driver\OracleDriver.class
// oracle.jdbc.driver.OracleDriver
/* =======================================================
0. 환경변수에 CLASSPATH 설정하기
// =======================================================
1. C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\ojdbc6.jar <-- 이것을 사용한다.
// =======================================================
2. C:\Program Files\Java\jre1.8.0_202\lib\ext\ojdbc6.jar
3. 이클릾스 프로젝트에서 Build Path -> Configuration Build Path... -> Libraries 탭 -> Add External JARS...
// =======================================================
*/
/*
1. oracle.jdbc.driver.OracleDriver : ojdbc6.jar 오라클 드라이버 찾는 시작점 클래스의 네임 스페이스
oracle.jdbc.driver : 패키지 이름
OracleDriver : 클래스 이름
2. jdbc:oracle:thin - 오라클 jdbc thin 드라이버 찾는 문자열
3. @ : 구분자
4. localhist - localhost : 데이터베이스가 설치된 컴퓨터 이름
127.0.0.1
172.30.1.30
DESKTOP-Q0ENOC3
5. 1521 - 오라클 데이터베이스 가리키는 port 번호
6. orclKSY00 - 데이터베이스 식별자 : SID 또는 전역데이터베이스 이름
7. scott : 계정
8. tiger : 비밀번호
*/
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("" + Class.forName("oracle.jdbc.driver.OracleDriver"));
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orclKSY00", "scott", "tiger");
System.out.println("conn >>> : " + conn);
Statement stmt = conn.createStatement();
System.out.println("stmt >>> : " + stmt);
ResultSet rsRs = stmt.executeQuery("SELECT * FROM EMP ORDER BY 1 DESC");
System.out.println("rsRs >>> : " + rsRs);
while (rsRs.next()) {
System.out.print(rsRs.getString(1) + " : ");
System.out.print(rsRs.getString(2) + " : ");
System.out.print(rsRs.getString(3) + " : ");
System.out.print(rsRs.getString(4) + " : ");
System.out.print(rsRs.getString(5) + " : ");
System.out.print(rsRs.getString(6) + " : ");
System.out.print(rsRs.getString(7) + " : ");
System.out.println(rsRs.getString(8));
}
} catch (Exception e) {
System.out.println(e);
}
}
}
8교시 (17:30-18:30)
- OracleTest_1
package a.b.c.oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class OracleTest_1 {
// DataSource 정보 : 데이터베이스 연결 정보
public static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orclKSY00";
public static final String JDBC_USER = "scott";
public static final String JDBC_PASSWORD = "tiger";
// sql Query
public static String sqlQuery = "SELECT EMPNO, ENAME, JOB, MGR FROM EMP ORDER BY 1 DESC";
// 생성자
public OracleTest_1() {
try {
Class.forName(JDBC_DRIVER);
} catch (Exception e) {
System.out.println("JDBC 드라이버를 찾지 못했어요 >>> : " + e.getMessage());
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
Statement stmt = conn.createStatement();
// stmt.executeQuery("쿼리문"); 시작점
ResultSet rsRs = stmt.executeQuery(sqlQuery);
if (rsRs != null) {
while (rsRs.next()) {
System.out.print(rsRs.getString("EMPNO") + " : ");
System.out.print(rsRs.getString("ENAME") + " : ");
System.out.print(rsRs.getString("JOB") + " : ");
System.out.println(rsRs.getString("MGR"));
}
}
} catch (Exception e) {
System.out.println(e);
}
}
}
- OracleTest_1_1
package a.b.c.oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class OracleTest_1_1 {
// DataSource 정보 : 데이터베이스 연결 정보
public static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orclKSY00";
public static final String JDBC_USER = "scott";
public static final String JDBC_PASSWORD = "tiger";
// sql Query
public static String sqlQuery = "SELECT EMPNO AS AA, ENAME AS BB, JOB, MGR FROM EMP ORDER BY 1 DESC";
// 생성자
public OracleTest_1_1() {
try {
Class.forName(JDBC_DRIVER);
} catch (Exception e) {
System.out.println("JDBC 드라이버를 찾지 못했어요 >>> : " + e.getMessage());
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
Statement stmt = conn.createStatement();
// stmt.executeQuery("쿼리문"); 시작점
ResultSet rsRs = stmt.executeQuery(sqlQuery);
if (rsRs != null) {
while (rsRs.next()) {
// System.out.print(rsRs.getString("AA") + " : ");
// System.out.print(rsRs.getString("BB") + " : ");
// System.out.print(rsRs.getString("JOB") + " : ");
// System.out.println(rsRs.getString("MGR"));
System.out.print(rsRs.getString(1) + " : ");
System.out.print(rsRs.getString(2) + " : ");
System.out.print(rsRs.getString("JOB") + " : ");
System.out.println(rsRs.getString("MGR"));
}
}
} catch (Exception e) {
System.out.println(e);
}
}
}
Notes
728x90