일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mvc디자인패턴
- 빅오표기법
- DB 제약조건
- JSP
- DEFAULT
- C#접근제어자
- JavaSwing
- Oracle
- DB
- O(n)
- C#접근제한자
- oracle developer
- DTO
- 접근제한자
- Oracle SQL Developer
- Vo
- C언어 표준 라이브러리
- o(log n)
- 오라클
- 데이터베이스
- oracle db
- 자바연산자
- DATABASE
- 자바
- DAO
- java
- 메이븐업데이트
- break
- sql
- java접근제어자
성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و
DATABASE 란? 본문
# 데이터베이스 (Database, DB)
- 데이터 창고
- 파일에 데이터를 저장하다보니 많은 문제점과 한계들을 만나게 되었고 그것을 극복하고자 만들어진 데이터 저장 프로그램.
- 데이터를 효율적으로 저장하고 검색할 수 있다.
# 파일 시스템의 문제점
- 데이터 수정 시 데이터간의 불일치를 유발할 수 있다.
( 정보 하나 수정할때 관련된 파일을 모두 찾아서 수정해야 한다 )
- 다수의 사용자가 하나의 파일에 동시에 접속할 수 없다.
- 중복데이터를 필요 이상으로 많이 저장하게 된다
- 보안이 취약하다(보안에 대한 별도 구현이 필요하다)
- 파일 복구 기능을 따로 구현해야한다.
#DBMS (Database Management System)
- 데이터베이스를 관리하는 프로그램
- DB 데이터가 보관되는 장소이고 그 DB를 총괄하는 프로그램을 DBMS라고 한다.
#RDBMS (Relational DBMS)
- 관계형 데이터베이스
- 데이터들간의 관계를 이용해 데이터 중복을 최소화하는 방식의 DBMS
- 질의문 형식의 명령어(SQL, Query)를 통해 데이터베이스를 관리한다.
- 기본적인 질의문은 국제 표준을 따라야하기 때문에 RDBMS들의 명령어는 거의 유사하다
- 데이터를 표 형태로 저장한다.
# 테이블
- 관계형 데이터베이스에서는 데이터를 표 형태로 저장한다.
- 필드(열, 컬럼, 속성) : 한 열에 저장되는 데이터들을 대표하는 이름
(객체지향의 클래스와 맞아떨어지는 단어들)
- 레코드(행, 로우, 큐플) : 한 행에 저장되는 하나의 개체를 나타내는 데이터 묶음
(객체지향의 인스턴스 역할)
# SQL (Structured Query Language)
- 관계형 데이터베이스를 관리하기 위한 질문같이 생긴 명령어
- 쿼리문, 질의문 등으로 불린다.
- SELECT(검색), INSERT(등록), UPDATE(갱신), DELETE(제거) 4가지 기본 조작에 대응하는 명령어가 있다.
-- tab, tabs, user_tables 현재 계정이 가지고 있는 테이블들을 볼 수 있는 테이블
Select * From tab;
Select * From tabs;
Select * From user_tables;
-- SELECT : 해당 테이블의 내용을 조회할 수 있는 질의문
SELECT * FROM employees;
SELECT * FROM regions;
SELECT * FROM countries;
SELECT * FROM locations;
SELECT * FROM departments;
SELECT * FROM jobs;
SELECT * FROM job_history;
--연습1> 모든 부서(departments)의 부서번호화 부서명을 조회해보세요
>>> Select department_id, department_name From departments;
--연습2> 모든 사원(employees)의 사번/이름/월급/고용일을 조회해보세요
>>> Select employee_id, first_name, last_name, salary, hire_date From employees;
---------------------------------
# DESC 테이블명
- 해당 테이블의 컬럼정보를 볼 수 있다.
- 컬럼명, NULL 허용여부, 컬럼 타입 및 크기 볼 수 있다.
# NUBBER(n), NUMBER(n,m)
- 숫자데이터를 저장할 수 있는 컬럼 타입
- 숫자가 하나만 적혀있으면 정수의 길이를 나타낸다
- 숫자가 두개 적혀있으면 숫자 전체의 길이와 소수점 자리수를 나타낸다
NUMBER(6) >> 0~9의 정수가 6개
NUMBER(8,2) >> 정수 6개 + 소수점 이하 2개
NUMBER(2,2) >> 0.소수점 이하 2자리
- 각 컬럼마다 제한이 걸려있다.
# VARCHAR2(n)
- VARCHAR보다 VARCHAR2 많이 사용~
- 문자를 저장할 수 있는 타입
- 저장되는 데이터의 크기에 맞춰 알맞은 공간만 사용하도록 설계되어 있다.
- 저장 공간을 효율적으로 사용할 수 있다.
# CHAR(n)
- 문자를 저장할 수 있지만 크기가 자동으로 조절되지 않는 컬럼타입
- 데이터 크기에 맞추지 않고 항상 일정한 공간을 차지한다
- 해당 컬럼의 성격에 따라 저장공간의 낭비가 심해질 수 있다.
- 국가코드 (KR, EN, JP...) 처럼 길이가 고정되어 있는 행만 지닌 컬럼은 CHAR타입이 효율적일 수도 있다.
# DATE
- 날짜 및 시간 데이터를 저장할 수 있는 컬럼 타입
-- # 컬럼 조회시 AS를 이용해 해당 컬럼의 이름을 원하는 이름으로 설정하여 조회할 수 있다.
-- AS " " 쌍 따옴표사용
SELECT first_name AS 이름, salary AS 월급 FROM employees;
-- # 컬럼에 산술연산자를 활용하여 각 컬럼을 계산한 결과를 조회할 수 있다.
SELECT salary "한달치", salary * 2 "두 달치", salary * 3 AS "세 달치" FROM employees;
-- # 컬럼끼리도 계산 할 수 있다 (자동정렬 Ctrl + F7)
SELECT
first_name,
job_id,
commission_pct * salary AS "건 당 커미션"
FROM
employees;
-- # NVL(column, value) 함수
-- 계산할 떄 해당 컬럼 값이 null 인 경우 대신 사용할 값을 지정해준다.
SELECT
employee_id,
first_name,
job_id,
nvl(commission_pct, 0) * salary AS "건 당 커미션"
FROM
employees;
null 대신 0을 출력
-- #컬럼값 이어 붙여서 출력하기
SELECT first_name || ' ' || last_name AS full_name FROM employees;
SELECT first_name || ':' || last_name FROM employees;
SELECT salary || '/' || nvl(commission_pct, 0) AS "salary" FROM employees;
-- # SELECT DISTINCT : 각 데이터를 한 번씩만 조회한다 (한번이라도 출력했던 적이 있는 값 조회. 즉, 등장한적이 있는 값 조회)
SELECT DISTINCT job_id FROM employees;
SELECT DISTINCT department_id FROM employees;
SELECT DISTINCT first_name, salary FROM employees; -- 같은 이름과 같은 월급을 받아야
SELECT DISTINCT first_name FROM employees;
--퀴즈3> 모든 사원들의 사번/풀네임/직책/연봉/건당 커미션금액을 조회하시오
>>> SELECT
employee_id,
first_name
|| ' '
|| last_name AS full_name,
job_id,
salary * 12 AS "Annual Income",
nvl(commission_pct, 0) * salary AS "건 당 커미션"
FROM
employees;
# 주석의 종류 :
1. /*대괄호주석 여기에 내용 입력 */
2. -- 데이터베이스에서 사용하는 주석
# 명령어 실행 :
CTRL + ENTER : 명령어 하나 실행
F5 : 이 스크립트의 모든 명령어 실행
# 정렬 : CTRL + F7
'백엔드개발 > DATABASE' 카테고리의 다른 글
데이터베이스 / DB 집합 / 교집합, 차집합, 합집합 (0) | 2023.10.31 |
---|---|
DATABASE, DB 데이터베이스 WHERE 조건절 (BETWEEN A AND B, IN, MOD), LIKE (0) | 2023.10.31 |
DATABASE WHERE 조건절, 연산자 / 데이터베이스 / db (0) | 2023.10.31 |
SQL 연습용 계정 만들기 (0) | 2023.10.27 |
오라클(Oracle) 데이터베이스 11g, sql develop 설치와 설치 확인 (2) | 2023.10.27 |