오라클 SQL / 3
- PDB : 데이터 베이스 관리 시스템(윈도우 안에 가상 운영체제 설치하는거라고 생각하면됨)
- 관리시스템과 데이터 베이스는 다른것이다. 관리시스템이 있다고 해서 데이터베이스가 있다는 뜻이 아님 XXX
- 테이블들 담는 공간 : 테이블 스페이스
- 테이블스페이스와 테이블각각의 수는 전혀 일치하지 않아도 된다
- 테이블 스페이스(물리적 표현)는 또 다른 말로 스키마(논리적 표현,개념적인 내용을 담고있음) 라고도 한다
- 스키마는 사용자계정과 연결하게 해준다
< 데이터 조작하기 >
- 테이블과 컬럼의 수는 일반적으로 10~20개 정도이다(이보다 더 많으면 중복이 있을 가능성이 높음)
- SELECT*FROM MEMBER; 는 테이블의 모든 열을 선택하는 거고 , SELECT MEMBER.* FROM MEMBER;는 여러 테이블이 있을때 조회하는 방법이다
- USER_ID라는 별칭을 붙여서 ID를 조회하고,PASSWORD라는 별칭을 붙여서 PWD를 조회하겠다
SELECT NAME AS USER_ID,PWD AS PASSWORD FROM MEMBER (AS 할때는 반점 안붙임)
- AS라는 키워드는 생략도 가능하긴 하다 빼던지 넣던지 하나로 딱 정해서!!!
- 오라클에서는 " " 큰따옴표가 예약어나 범위를 감쌀때 쓴다 (띄어쓰기를 포함하고 싶을땐 "NAME USER" 이렇게)
- 테이블도 별칭을 넣을 수 있다
SELECT M.NAME, M.PWD FROM MEMBER M; (MEMBER테이블의 별칭 M)
- 식별을 위해선 KEY가 사용된다
- 식별이 가능한 KEY를 '후보KEY'라고 한다 그리고 게중에서 제일 식별이 뚜렷하게 되는 애를 '프라이머리KEY'라고 한다
- 주민번호와,폰번호는 후보키로는 가능함.(주키가 안되는 이유는 개인정보 유출 때문에) 이메일이 프라이머리키가 될수 있따.
- 지워도 타격없는 정보를 주키(프라이머리키)로 써야한다 그래서 일련번호를 회원에게 임의로 부여해서 이걸 사용함 용어로는 "대리KEY"라고 한다
- DELETE 하고 COMMIT을 해야 완전히 삭제가 된다
- 시퀀스 등록을 하면 내가 값을 넣지 않아도 자동으로 값이 들어간다(ID값을 일련번호로 설정해놓는다거나,TIMESTAMP를 등록해놓으면 커밋할때 자동으로 타임스템프가 찍힘)
SELECT MEMBER_SEQ.NEXTVAL FROM DUAL;
< JDBC API >
- DBMS가 달라져도 API를 바꾸지 않아도 될 대안으로 나온것이 JDBC(구동코드 드라이버)
- 오라클,마이에스큐엘 API를 직접쓰면 DBMS가 달라졌을때 다 바꿔야하는데 그걸 직접 바로 쓰지않고 JDBC를 통해서 하면 API를 바꿀 필요가 없이 그냥 연결만 하면 된다
- 단계적으로 서로 상호작용을 하며 객체생성을 하고 사용하는 특이한 구조이다
- 클라이언트는 한번에 하나씩만 코드를 받아온다
- 서버쪽의 커서가 명령문에 의해 하나씩 내려가면서 실행하는 방식으로 동작한다
- 데이터를 꺼낼때는 컬럼 단위로 꺼낸다
- 클래스패스(cp) : 클래스들을 모아놓은곳
https://ldgeao99-developer.tistory.com/249
[7주차] 2. ojdbc.jar 가져와 Java와 DB 연결하기(프로젝트 생성 후 1번씩은 꼭)
1. Project 폴더 - Properties 클릭 2. Java Build Path - Libraries - Classpath - Add External JARs... 3. 오라클 설치당시 선택했던 경로에 가서 아래의 파일 선택 & Apply and Close 나는 당시에 오라클을 C\Oracle 에 설치해
ldgeao99-developer.tistory.com
https://velog.io/@seulki412/jsp-jdbc-ojdbc-%EB%9E%80
[jsp] jdbc / ojdbc 란? / ojdbc6.jar 추가
자바에서 어떤 DB에 접근하던지 간에 jdbc가 필요하다.Java DataBase Connectivity자바에서 데이터베이스에 접속 / 관리 할 수 있게 해주는 드라이버(API)자바로 작성된 프로그램으로 DB와 관련된 작업을
velog.io
Connection con = DriverManager.getConnection("","NEWLEC","b104"); //연결
System.out.println(con.isClosed()); //연결되면 닫힘 > true나오고 연결안돼면 안닫힘 > false나옴
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM MEMBER");
rs.next();//next로 호출
System.out.println(rs.getString("NAME")); //NAME가져오기
rs.close();
st.close();
con.close();
//사용하고 나서는 꼭 닫아주기
while(rs.next()) { //rs.next() 는 boolean이다 true면 새로운걸 가져오고 false면 없음
System.out.println(rs.getString("NAME"));
}