2023.06.29 - [취업반 기록] - 가상머신 사용방법 (vmware) , sql과 dataBase의 정의, 익히기
가상머신 사용방법 (vmware) , sql과 dataBase의 정의, 익히기
가상머신 종료 가상머신저장 take Snapshot 클릭 렌치 : 스냅샷의 기록을 볼 수 있음 스냅샷찍어놓고 다시부팅 부팅 root 계정으로 로그인 ifconfig 윈도우 pc랑 리눅스랑 통신이 가능한 상태 = ping 만약
ji7290.tistory.com
이전 글에서는 가상머신의 사용방법과 oracle sql database에 대해서 간략하게 다뤄보았다.
가상머신에 접속한다
lsnrctl status
가상머신을 접속했을때 포트번호와 호스트가 정상적으로 연결됐는지 확인한다.
sql delveloper를 켜서 접속해준다.
sql 파일을 꺼내서 내 하드디스크에 저장하는 방법 (EXPORT)
1.압축됨 빼고 전부 체크
2.찾아보기 클릭 저장할 폴더 선택
3. 요약으로 이동합니다 체크 -> 다음 클릭
4. 완료 클릭
오후취업반 폴더에 저장된 .TXT 파일 확인
상품에 대한 정보를 테이블로 생성
table product
create table product (
idx number,
name varchar2(100),
price number,
expireDate date,
memo varchar2(1000)
);
insert into product values (
1,
'코카콜라(캔) 190ml',
900,
'24/04/01',
'코카콜라 (캔) 소형'
);
insert into product values (2, '코카콜라(pet) 500ml',1500, '24/04/01', '코카콜라 (pet) 중형');
insert into product values (3, '코카콜라(pet) 1.5L',2000, '24/04/01', '코카콜라 (pet) 대형');
insert into product values (4, '스프라이트 (캔) 300ml',1200, '24/05/01', '스프라이트(캔) 300ml');
insert into product values (5, '꼬북칩',1500, '24/02/01', '꼬북칩');
select * from product;
select * from product order by idx;
select * from product order by name;
select * from product order by expireDate;
select (조회) 구문연습하기
상품번호 순으로 정렬하기
상품 이름 순으로 정렬하기
유통기한 순으로정렬하기
상품가격이 1000원 미만인 상품만 조회하기
상품 번호가 3번인 상품만 조회하기
상품 이름이 코카콜라를 포함하는 경우에만 조회하기
상품의 이름에 can을 포함하는 경우에만 조회하기
상품의 이름에 코카콜라를 포함하면서 가격이 1000원 이상인 상품만 조회하기
(두가지의 조건을 같이 쓸때는 and를 쓰면된다. )
상품의 유통기한이 2024년 4월1일부터 2024년 4월 30일 사이인 상품만 조회하기
상품의 번호가 짝수인 경우에만 불러오기
mod( a, b ) => a % b
수식 연산하기, dual은 가상 테이블
컬럼 이름에 별칭 부여하기
SELECT 응용 구문 전체정리
-ORDER BY 특정 컬럼 조건으로 조회
-WHERE 특정 객체의 조건으로 조회
- AND 두가지의 조건으로 조회
-BETWEEN 특정 컬럼 조건의 A,B 사이에있는 값을 조회
-MOD 나눗셈 연산 % (나머지)
-DUAL 가상 테이블
이제 이클립스에서 sql DB에 있는 데이터를 불러와보자
JDBC : Java DataBase Connetivity
java프로젝트를 새로만들어주고
자바를 이용해서 DB에 연결하는데에 필요한 라이브러리를 프로젝트에 복사
ojdbc : Oracle DB에 접속하기 위한 JDBC 라이브러리
프로젝트 선택후 Alt + enter
속성에서 java Build Path -> Libraries -> add JARs 에서 프로젝트에 있는 ojdbc8.jar 적용후 close
라이브러리 확인
oracleDriver를 import 시켜야 dataBase를 가져올 수 있다.
package jdbc;
import java.sql.*;
import oracle.jdbc.driver.OracleDriver;
public class Ex01 {
public static void main(String[] args) throws Exception{
// DB에 접속한 이후 실행할 SQL
String sql = "select * from product order by idx";
// 특정 벤더사 DB에 접속하기 위한 드라이버 클래스 이름 (여기서는 오라클)
String className = OracleDriver.class.getName();
// DB서버에 접속하기 위한 주소
String url = "jdbc:oracle:thin:@192.168.1.1:1521:xe";
// user = 아이디
String user = "C##ITBANK";
// 비밀번호 = 123456
String password = "123456";
System.out.println(className);
// 드라이버 클래스를 메모리에 불러온다.
Class.forName(className);
// 주소와 계정, 비밀번호를 전달하여 DB접속을 시도한다. 결과는 연결
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
// 결과 집합은 여러줄( row) 로 구성되어 있다. Scanner와 마찬가지로 다음 줄이 있으면 반복된다.
while(rs.next()) {
int idx = rs.getInt("idx"); //idx 컬럼의 값을 정수형태로 가져온다.
String name = rs.getString("name"); //name 컬럼의 값을 문자열 형태로 가져온다.
int price = rs.getInt("price"); //price 컬럼의 값을 정수형태로 가져온다.
Date expireDate = rs.getDate("expireDate"); //날짜형태로 가져온다.
String memo = rs.getString("memo"); //memo 컬럼의 값을 문자열 형태로 가져온다.
System.out.printf("%2s\t%20s\t %,4d\t %s\t %s\n",
idx,name,price,expireDate,memo);
}
// 작업이 끝났으면, 연결할때의 역순으로 객체를 닫아준다.
rs.close(); // close()을 제대로 수행하지 않으면
stmt.close(); // DB의 최대인원수를 초과하여
conn.close(); // 다음 실행때 접속이 되지 않아서, DB서비스를 재시작해야 한다.
System.out.println("끝");
}
}
sql 구문을 문자열변수에 저장하고
DB에 접속하기 위한 드라이버 클래스 (여기서는 오라클 )
DB 접속 주소를 문자열에 저장
SQL DB 아이디와 패스워드를 변수에 저장
주소와 계정, 비밀번호를 전달하여 DB접속을 시도한다. 결과는 연결
작업이 끝났으면 연결할때 역순으로 객체를 닫아준다.
ex ) 냉장고 안의 서랍 닫기 -> 냉장고 문 닫기
이클립스에서 sql구문을 이용해서 테이블에 데이터 추가,삭제 하기
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Ex02 {
public static void main(String[] args) throws SQLException{
//sql 구문 문자열에 저장하기
String sql = "insert into product values (%s, '%s', %s, '%s', '%s')";
//format으로 해당 문자열에 데이터 넣기
sql = String.format(sql, 6,"맥스웰 하우스 마스터 라떼 (PET)", 2600, "24/06/30", "1+1");
String url = "jdbc:oracle:thin:@192.168.1.1:1521:xe";
String user = "c##itbank";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
int row = stmt.executeUpdate(sql);
System.out.println(row !=0 ? "추가성공": "추가실패");
System.out.printf("%d 행이(가) 추가되었습니다\n",row);
// 역순으로 닫아주기
stmt.close();
conn.close();
}
}
sql에서 product 테이블 추가완료
sql 구문만 delete로 수정해준다.
6번 행이 정상적으로 삭제됐다.
전체목록 / 추가/ 삭제
'dataBase , vmware' 카테고리의 다른 글
외래키 제약조건으로 테이블 생성하기, prepareStatment (1) | 2023.07.03 |
---|---|
oracle 데이터베이스 제약 조건 (constraint) (0) | 2023.06.30 |
DTO, DAO sql을 연결해서 (목록,검색,추가,수정,삭제) 구현 (0) | 2023.06.30 |