DB(Database)
어원 : 정보가 모여있는 기지
추상적인 용어이다.
DBMS(Database Management System)
DB를 관리할 수 있는 구체적인 체계(시스템).
Oracle , MariaDB ,MySQL, MS-SQL, MongoDB, Mongoose,.....
오라클(홀수버전사용) DBMS 버전
9i 11g 17c 21c - 짝수버전은 업데이트 테스트용
계정
sys : 모든 권한
system : 계정 관리
일반 계정 : 스키마 관리(주로 사용)
스키마
정리가 잘 되어 있는 표들의 묶음, 상태
일반 계정 접속(hr)
cmd 접속 > sqlplus system/1234 // 시스템 계정 접속
SQL > show user // 접속중인 유저정보
SQL > alter user hr account unlock; // hr 계정을 사용가능하도록 품
SQL > alter user hr identified by hr; // hr 계정 패스워드 변경
SQL > conn hr/hr // hr 계정 연결/로그인
SQL > show user // hr 계정인지 확인
USER is "HR" // 확인완료
IDE 설치 - DBeaver(zip)
https://dbeaver.io/download/
New Connection
host(서버의 IP주소) : localhost
Database : XE
username : hr
password : hr
Edit Driver Settings
Libraries 탭 클릭
> 기존에 있는 라이브러리 전체 삭제
> Add File
> C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar 추가
> 확인
Test Connection 클릭 > Connected 성공
-----------------------------------------------------------------------------------------
DBMS 소통 방식
-----------------------------------------------------------------------------------------
사용자
-----------------------------------------------------------------------------------------
↕
응용 프로그램
↕
-----------------------------------------------------------------------------------------
DBMS
RDBMS(관계형 데이터베이스 시스템)
테이블끼리 서로 관계를 맺는다.
↓ 테이블 구성
Table A(User, Member, Group) TableB(Order, Product, Market, Sales, Goods)
번호 (pk) |
이름 | 나이 | 아이디 | 주문번호(pk) | 번호(FK) | 날짜 | 상품수량 | |
1 | 송태섭 | 20 | sys1234 | 20230201001 | 2 | 2023-02-01 | 10 | |
2 | 채치수 | 20 | ccs8888 | 20230201002 | 4 | 2023-02-01 | 50 | |
3 | 강백호 | 20 | kbh7777 | 20230202001 | 1 | 2023-02-02 | 100 | |
4 | 정대만 | 19 | jdm8888 | 20230203001 | 2 | 2023-02-03 | 500 |
구조를 가지는 것을 Table, Relation(오라클), Class라고 부른다
COLUMN(열, 속성, 필드)
동일한 성격의 값의 주제를 정한 집합.
ROW(행, 튜플, 레코드)
하나의 정보
PRIMARY KEY(PK)
고유한 값, 각 행의 구분점으로 사용된다.
중복이 없고 NULL값을 허용하지 않는다.
FOREIGN KEY(FK)
다른 테이블의 PK를 의미한다.
테이블끼리 관계를 맺을 때 사용한다.
중복이 가능하며 NULL도 허용한다.
UNIQUE(UK)
NULL은 허용하지만 중복을 허용하지 않는다.
조합키(복합키)
하나의 PK에 여러 컬럼이 설정된 키.
각 컬럼은 중복이 가능하지만 그룹으로는 중복이 불가능하다.
★슈퍼키와 서브키
여러 테이블에 공통 요소가 있을 때 하나로 묶어줄 테이블을 선언한다.
이 때 공통요소를 묶은 테이블의 PK를 각 테이블의 FK로 사용함과 동시에 PK로 설정하면
공통요소를 묶은 테이블의 PK를 슈퍼키라고 하며, 각 테이블의 PK를 서브키라고 한다.
컴파일 언어(파일 단위)와 스크립트(한줄 단위) 언어
-컴파일 언어(java)
파일 단위로 해석한다(일괄 처리).
부분 수정이 거의 없을 때 효율적이다.
번역 파일이 생긴다.
번역 파일일 없이 바로 실행
-스크립트 언어(DB)
한 줄 단위로 해석한다.(개별처리)
빈번한 수정 시 효율적이다.
번역 파일 없이 바로 실행.
SQL문(쿼리문)-DDL, DML, DCL(권한), TCL
스크립트 언어, 데이터 베이스와 소통하는 언어.
-DDL(Data Definition Language) : 데이터 정의어
1. CREATE : 테이블 생성
ex) CREATE TABLE [테이블명]([컬럼명][자료형(용량)] [제약조건....]);
2. DROP : 테이블 삭제
DROP TABLE [테이블명]; // 잘못쓰면 큰일난다
3. ALTER : 테이블 수정
ALTER TABLE [테이블명]
-테이블 이름 수정 : RENAME TO [새로운 테이블명];
-컬럼 추가 : ADD([새로운 컬럼명] [ 자료형(용량)];
-컬럼명 변경 : RENAME COLUMN [기존 컬럼명] TO [새로운 컬럼명];
-컬럼 삭제 : DROP CULUMN[기존 컬럼명];
4. TRUNCATE : 테이블 내용 전체 삭제
TRUNCATE TABLE [테이블명];
자료형(TYPE): 용량은 항상 넉넉하게 주도록 한다.
숫자
NUMBER : 정수(default)
NUMBER(n) : 정수
NUMBER(n,m) : 실수
문자열
CHAR(n) : 고정형, CHAR(4)에 'A'를 넣으면 A^^^, 길이가 절대 변하지 않는 값을 넣을 때 사용.
VARCHAR(n), VARCHAR2(n) : 가변형, 값의 길이만큼 공간이 배정된다.
날짜
DATE : FORMAT에 맞춰서 날짜를 저장하는 타입
※테이블 생성
CREATE TABLE TBL_MEMBER(
MEMBER_NAME VARCHAR2(1000),//크기를 넉넉하게
MEMBER_AGE NUMBER
);
댓글