[Day 15] Database 0415 - 내용 정리

Doyeon Kim·2022년 4월 15일
1

Database

목록 보기
1/12
post-thumbnail

🌞프로그램 출력

  • 프로그램 실행한 결과를
  • 화면에 출력: 컴퓨터를 끄면 날아가버림(휘발성)
  • 파일로 출력: 실행한 결과를 영구적으로 저장할 수 있다. 이해관계에 있는 다수의 사용자가 최신의 정보를 공유하기 어렵다.
  • 데이터베이스로 출력: 이해관계에 있는 다수의 사용자가 최신의 정보를 공유할 수 있다.

🌞데이터베이스

  • 데이터를 쌓아놓은 더미를 말한다.

🌞데이터베이스 관리 시스템(DataBase Management System - DBMS)

  • 데이터베이스를 관리하는 시스템
  • oracle, mysql, mssql

🌞데이터베이스의 종류

  • 데이터베이스 종류 중 oracle은 "관계형 데이터베이스"

🌈관계형 데이터베이스

  • 서로 관련(관계)가 있는 테이블로 구성된다.
  • 테이블은 행과 열로 구성되어있다.

🌞데이터베이스 명령어

  • sql(Structured Query Language)

🌈오라클에서 데이터베이스 명령어 모드를 실행

c:\> sqlplus
사용자명 입력: system
비밀번호 입력: manager (입력할 때 화면에 보이지 않는다.)
SQL >

🌈실습을 위하여 데이터베이스를 사용할 수 있는 "사용자 계정" 만들기

🍁사용자 계정 만드는 명령어

create user 사용자이름 identified by 암호

-> create user c##sist identified by sist;

🍁사용자에게 연결할 수 있고, 자원을 사용할 수 있고, dba의 권한을 부여

grant 권한명, ... to 사용자이름;

-> grant connect, resource, dba to c##sist;

🍁관리자가 연결을 종료

sql > exit

🍁사용자 계정 연결하기

c:... > sqlplus
사용자명 입력: c##sist
비밀번호 입력: sist

SQL > 

🍁회원의 아이디, 이름, 나이를 관리하기 위한 데이터베이스 테이블을 생성

create table 테이블(속성이름 자료형, ...);

-> create table member(id varchar2(50) primary key, name varchar(50), age number);
  • 오라클에서 자료형

  • 문자 : varchar2 //가변길이 -> 50자 이내에서 필요한 만큼만 잡힘

  • 숫자 : number

  • primary key: 중복이 되지 않도록 식별해주는 키

🍁테이블의 구조를 확인하는 명령

desc 테이블;

-> desc member;

🍁테이블에 자료를 추가

insert into 테이블명 values(깂1, 값2, ...);

-> insert into member values('hong', '홍길동', 20);
  • 값의 수와 순서는 테이블 구조의 속성의 수와 순서가 동일해야만 한다.
  • 오라클에서는 문자와 문자열의 처리를 동일하게 하며 홋따옴표로 묶어서 표현한다.

🍁자료의 확인(자료의 검색)

select 컬럼이름1, 컬럼이름2, ..from 테이블명;

- member 테이블의 회원이름을 검색
> select name from member;

- member 테이블의 아이디, 이름, 나이를 출력
> select id, name, age from member;

🍁컬럼 폭의 설정

파일을 만들어 설정
> ed ff

파일의 내용을 실행
>@ff 

🌞JDBC 프로그래밍(Java Database Connection programming)

🌈미리준비

  • 오라클에서 설치된 폴더에서 ojdbc8 을 lib으로 복사하여 java 설치경로로 복사
  • 이클립스 프로젝트 이름 오른쪽 단추 -> Prooerties -> JavaBuild Path -> Libraries -> Class path -> Add External Jars -> ojdbc8.jar의 경로를 설정 -> apply and Close를 누른다.

🌞예제

🌟(DB연결)예제1🌟

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;

//사용자한테 아이디, 이름, 나이를 입력받아서 데이터베이스 테이블 member에 추가하는 자바프로그램을 작성
public class InsertMember {

	public static void main(String[] args) {
		String id, name;
		int age;

		Scanner sc = new Scanner(System.in);

		System.out.print("새로 등록할 회원의 아이디를 입력하세요: ");
		id = sc.next();

		System.out.print("새로 등록할 회원의 이름을 입력하세요: ");
		name = sc.next();

		System.out.print("새로 등록할 회원의 나이를 입력하세요: ");
		age = sc.nextInt();

		// 입력받은 아이디, 이름, 나이를 갖고 데이터베이스 명령어 만들기
		String sql = "insert into member values('" + id + "', '" + name + "', " + age + ")";

		// 프로그램에서 자동으로 데이터베이스에 연결하여 위에서 만든 데이터베이스 명령어 sql을 동작하도록 하자.
		// 자바가 데이터베이스에 연결하여 데이터베이스 명령어를 실행하는 프로그램
		// JDBC 프로그래밍 Java DataBase Connection
		try {
			// 1. jdbc 드라이버를 메모리로 로드한다.
			Class.forName("oracle.jdbc.driver.OracleDriver");

			// 2. db서버에 연결한다.
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.35.171:1521:XE", "c##sist",
					"sist"); // 첫번째 칸에는 내 아이피주소, 사용자 계정, 비밀번호

			// 3. 데이터베이스 명령을 실행하기 위한 객체를 생성
			Statement stmt = conn.createStatement();

			// 4. 데이터베이스 명령을 실행
			stmt.executeUpdate(sql);
			
			// 5. 사용이 끝난 자원을 닫아준다.
			stmt.close();
			conn.close();
			
			System.out.println("회원의 정보를 등록하였습니다.");

		} catch (Exception e) {
			System.out.println("예외발생: " + e.getMessage());
		}

	}

}

🌞연습문제

👑연습문제1👑

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;

public class InsertStudent {

	public static void main(String[] args) {
		String name;
		int num, kor, eng, math;

		Scanner sc = new Scanner(System.in);

		System.out.print("새로 등록할 회원의 번호를 입력하세요: ");
		num = sc.nextInt();

		System.out.print("새로 등록할 회원의 이름을 입력하세요: ");
		name = sc.next();

		System.out.print("새로 등록할 회원의 국어점수를 입력하세요: ");
		kor = sc.nextInt();
		
		System.out.print("새로 등록할 회원의 영어점수를 입력하세요: ");
		eng = sc.nextInt();
		
		System.out.print("새로 등록할 회원의 수학점수를 입력하세요: ");
		math = sc.nextInt();

		// 입력받은 아이디, 이름, 나이를 갖고 데이터베이스 명령어 만들기
		String sql = "insert into student values('" + num + "', '" + name + "', '" + kor + "', '" + eng + "', " + math+ ")";
		
		//String sql = "insert into student values('" + num + "', '" + name + "', " + kor + "', " + eng + "', " + math + ")";

		// 프로그램에서 자동으로 데이터베이스에 연결하여 위에서 만든 데이터베이스 명령어 sql을 동작하도록 하자.
		// 자바가 데이터베이스에 연결하여 데이터베이스 명령어를 실행하는 프로그램
		// JDBC 프로그래밍 Java DataBase Connection
		try {
			// 1. jdbc 드라이버를 메모리로 로드한다.
			Class.forName("oracle.jdbc.driver.OracleDriver");

			// 2. db서버에 연결한다.
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.35.171:1521:XE", "c##sist",
					"sist"); // 첫번째 칸에는 내 아이피주소, 사용자 계정, 비밀번호

			// 3. 데이터베이스 명령을 실행하기 위한 객체를 생성
			Statement stmt = conn.createStatement();

			// 4. 데이터베이스 명령을 실행
			stmt.executeUpdate(sql);
			
			// 5. 사용이 끝난 자원을 닫아준다.
			stmt.close();
			conn.close();
			
			System.out.println("회원의 정보를 등록하였습니다.");

		} catch (Exception e) {
			System.out.println("예외발생: " + e.getMessage());
		}

	}

}
profile
꾸준히 성장하는 개발자✨

0개의 댓글