1. 데이터베이스 관리 시스템(Database Management System, DBMS)
2. SQL
1. 데이터베이스 관리 시스템(Database Management System, DBMS)
[정의]
- 데이터베이스는 효율적인 관리와 검색을 위해 구조화한 데이터 집합으로, 이 데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어이다.
[효율적인 데이터 관리 조건]
- 데이터를 통합하여 관리
- 일관된 방법으로 관리
- 데이터 누락 및 중복 제거
- 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능
[관리 시스템의 중요성]
1) 데이터 무결성
- 데이터에 오류가 있으면 안된다.
- 제약조건(Constraint)를 사용한다.
2) 데이터 독립성
- 데이터베이스에 변화가 발생하더라도 관계된 응용 프로그램들은 영향을 받지 않는다.
3) 보안
- 데이터베이스내의 데이터를 함부로 겁근 방지
- 소유주나 접근권한이 있는 사용자만 접근 가능, 통제 가능
4) 데이터 중복 최소화
- 동일한 데이터가 여러곳에 여러번 저장되는 것을 방지한다.
5) 데이터 안정성
- 데이터 백업/복원 기능을 제공한다.
[DBMS 종류]
- 계층형, 네트워크(망)형, 객체 지향형, 관계형 DBMS가 있다.
- 현재 가장 많이 쓰이고 있는 DBMS는 관계형 DBMS이며, 앞으로 이것을 집중적으로 배울 것이다.
[관계형 데이터베이스(Realational Database Management System, RDBMS)]
- 데이터끼리의 관계를 정리한다.
- MS-SQL, MySQL, MariaDB, DB2, PostgreSQL 등등 DBMS 제품은 대부분 관계형 DBMS 관리 시스템이다.
- 데이터 저장공간을 테이블(table)이라 한다.
- 테이블에서 가로줄은 행(row)
----->튜플(tuple), 레코드(record)라고 한다.
----->여러값으로 이루어진 1명의 데이터를 의미한다.
- 테이블에서 세로줄은 열(column)
----->필드(Field), 속성(Attribute), 특성(Property)라고 한다.
----->세부정보(값의 중복을 허용하지 않는다.)
2. SQL
[정의]
- Structured Query Language
- RDBMS에서 데이터를 다루고 관리하는데 사용하는 데이터베이스 질의 언어
-쉽게 풀면, 사용자가 RDBMS와 대화할 때 사용하는 언어
[종류]
- ANSI SQL : 표준 SQL
- PL/SQL : 자체 SQL, 오라클에서만 동작되는 명령어
[사용목적 분류]
1) DDL(Data Definition Language) - 데이터 정의어
- 테이블, 뷰, 사용자, 인덱스 등의 객체(DB Object)를 생성, 수정, 삭제 하는 명령어
- create(생성), drop(삭제), alter(수정)
2) DML(Data Manipulation Language) - 데이터 조작어
- 데이터베이스의 데이터를 저장, 수정, 삭제, 조회하는 명령어
- select(읽기), insert(추가), update(수정), delete(삭제)
3) DCL(Data Control Language) - 데이터 제어어
- 계정, 보안, 트랜잭션 등을 제어
- commit, rollback, grant, revoke
4) DQL(Data Query Language) - 데이터 질의어
- RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어
5) TCL (Transaction Control Language)
- 트래잭션 데이터의 영구 저장, 취소 등과 관련된 명령어
[SQL - 사용자 등록, 비밀번호 변경]
--처음에는 계정이 잠겨있으므로 활성화를 시켜줘야한다.
--ALTER USER 계정명 ACCOUNT UNLOCK;
ALTER USER HR ACCOUNT UNLOCK;
--비밀번호 변경
ALTER USER HR IDENTIFIED BY java1234;
--계정활성화 + 비밀번호변경 한줄로 작성가능
ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY java1234;
--나의 현재 상태 확인하기 (관리자?, 사용자?)
SELECT * FROM tabs; --방법1
SHOW USER; --방법2
[SQL 자료형 - 숫자형]
- 오라클에서 숫자형은 정수, 실수 둘다 포함하여 구분이 없다.
- 표현방법: NUMBER
- 유효자리: 38자리 이하의 숫자를 표현하는 자료형
- 바이트: 5~22byte
- NUMBER(PERCISION, SCALE)
1) PERCISION: 소수 이하를 포함한 전체 자리수(1~38)
2) SCALE: 소수 이하의 자리수(0~127)
--테이블 생성하기
CREATE TABLE testType (
--칼럼 구성
--칼럼명 자료형
num NUMBER
num NUMBER(3)
num NUMBER(4,2)
)
--데이터 추가하기
INSERT INTO testType (num) VALUES (100);
INSERT INTO testType (num) VALUES (99.99);
INSERT INTO testType (num) VALUES (3.14);
INSERT INTO testType (num) VALUES (9999);
INSERT INTO testType (num) VALUES (11111.111111111);
INSERT INTO testType (num) VALUES (11111111111111111111111111111111111111); --38자리
INSERT INTO testType (num) VALUES (-11111111111111111111111111111111111111);
INSERT INTO testType (num) VALUES (11111111111111111111111111111111111111111111); --44자리
--테이블 모든 내용 확인하기
SELECT * FROM testType;
- num NUMBER: 38자리까지의 숫자 저장
- num NUMBER(3): 3자리까지의 숫자 저장
- num NUMBER(4,2): 4자리까지의 숫자 중 소수점2자리가 포함된 숫자 저장(9999는 ERROR)
[SQL 자료형 - 문자형]
- 오라클에서 문자형은 문자, 문자형 둘다 포함하여 구분이 없다. (Java의 String과 유사함)
- 표현방법: char, nchar, varchar2, nvarchar2 (n 있는것과 없는것, var 있는것과 없는것)
1) char
- 고정 자릿수 문자열 -> 공간보다 데이터가 짧아도 나머지 공간은 그대로(공백) 차지한다.
- char(n) : n자리 문자열(n은 바이트를 의미한다.)
- 최소 크기: 1byte
- 최대 크기: 2000byte
2) nchar
- nchar(n) : n자리 문자열(n은 문자 수를 의미한다.)
- 최소 크기: 1글자(2byte)
- 최대 크기: 1000글자(2000byte)
- 영어가 아닌 문자를 저장할때 용이하다.
3) varchar2
- 가변 자릿수 문자열 -> 데이터 크기만큼 공간의 크기가 줄어든다.
- varchar2(n) : n자리 문자열(n은 바이트를 의미한다.)
- 최소 크기: 1byte
- 최대 크기: 4000byte
4) nvarchar2
--테이블 타입을 콤마로 구분하여 생성하기
CREATE TABLE testType (
name1 CHAR(10),
name2 VARCHAR2(10)
name3 CHAR(10),
name4 NCHAR(10)
)
INSERT INTO testType (name1, name2) VALUES ('ABC', 'ABC');
INSERT INTO testType (name3, name4) VALUES ('홍길동', '홍길동님안녕하세요.');
SELECT * FROM testType;
- name1 CHAR(3) = 'ABC ' -->공간보다 데이터가 짧아도 나머지 공간 공백으로 차지
- name2 VARCHAR(10) = 'ABC' -->데이터 크기만큼 공간의 크기가 줄어든다.
- name3 CHAR(10) = '홍길동' --> 10byte공간을 주었으므로, 9byte 정상 출력
- name4 NCHAR(10) = '홍길동님안녕하세요.' --> 10개의 문자수를 주었으로, 10글자 정상출력
MEMO>
# 오라클과 자바는 엄연히 다르기 때문에 수업을 들을때 자바를 잠시 잊도록하자. 오라클에 집중!
# SQL 실행법 : 실행할 문장 드래그 -> Ctrl+Enter (문장 단위로 스크립트가 실행된다. )
# 오라클은 코드의 대소문자 구분을 안한다.(대문자로 많이쓰임)
# 오라클은 UI가없는 프로그램이기 때문에 반드시 툴이 있어야한다.(SQL)
# 오라클에도 byte, int, float형이 있지만 사용 XXXX
# 오늘 배운 오라클에서의 자료형 중에서 NUMBER, VARCHAR2, DATE 이 3가지가 가장 많이 쓰이니 공부를 가장 많이 할 것!!
#SQL에서 단일주석은 "--", 다중주석은 "/**/" 이다.
'인천일보아카데미 > - 학습일지' 카테고리의 다른 글
[학습일지]JAVA교육일지 46일차 (0) | 2022.06.19 |
---|---|
[학습일지]JAVA교육일지 45일차 (0) | 2022.06.19 |
[학습일지]JAVA교육일지 43일차 (0) | 2022.06.16 |
[학습일지]JAVA교육일지 41일차 (0) | 2022.06.15 |
[학습일지]JAVA교육일지 40일차 (0) | 2022.06.15 |