-> ID,PW를 저장소에 저장하는 구조텍스트
🔎 현실 세계에서 관찰이나 측정을 통해 수집한
단순한 사실이나 값
🔎 의사 결정에 도움을 줄 수 있는 유용한 형태
🔎 자료를 가공(처리)해서 얻을 수 있는 결과를 의미
🔎 어느 한 조직체의 여러 응용 시스템들이 공동으로 사용할 수 있도록 통합하여 저장한 운영데이터의
집합
🔎 공동의 목적을 지원하기 위한 서로 관련된 자료들의 모임
🔎 주제와 관련된 의미있는 데이터들의 모음
🔎 db를 관리하는 프로그램
🔎 사용자에게 데이터베이스를 생성하고 유지할 수 있게 하는 프로그램의 집합
🔎 DBMS는 데이터베이스 언어를 가지고 있으며 이를 통해 데이터의 삽입/삭제/수정/조회를 할 수 있다.
( 개인정보가 털렸다? -> DBMS가 털렸다고 볼 수 있다. )
🔎 DB는 너무 중요하기에 2중, 3중 백업을 하는 작업을 한다.
🔎 데이터의 무결성 유지 (데이터가 일관되게 저장되어야 함)
-> DB의 데이터는 실세계를 적용하는
규칙을 항상 만족해야 함
-> 서로 다른 부분에 있는 두 개의 데이터가 서로 모순되지 않아야 함. 데이터의 일관성 유지
-> ID, PW는 두 개 이상이 될 수 없다.
🔎 계층데이터 모델
🔎 망 데이터 모델
🔎 관계형 데이터 모델(Relational Data Model) -> 앞으로 사용할 모델
🔎 개체 집합에 대한 속성 관계를 표현하기 위하여 개체를 테이블로 사용하고 개체 집합들 사이의 관계는 공통 속성으로 연결하는 독립된 데이터 모델
-> 데이터베이스의 테이블 행, 열, 저장 방법
🔎 테이블(Table), 열(column), 행(Row)
🔎 관계 데이터베이스에 데이터를 저장할 수 있는 형식 테이블(Table = Relation)
🔎 행과 열의 교차점은 원자 값이라는 오직 하나의 값으로 구성
🔎 테이블의 행은 순서가 정해져 있지 않다.
🔎 테이블의 내용은 실제적인 행의 집합으로 간주된다.
🔎 SQL(Structured Query Language)은 관계형 데이터베이스 언어이다.
🔎 데이터의 삽입, 삭제, 갱신, 질의, 보호(보안) 명령문 으로 구성
🔎 SQL은 관계형 데이터베이스 언어로써 비절차적 데이터베이스 언어로 분류한다.
-> DBMS의 통신구조
-> cmd에서 DBMS의 설치 확인
-> ID는 system, PW는 1234 ( '최고 관리자 권한'으로 오라클 DBMS의 저장소에 접근 )
-> system은 절대 사용하지 않는다(사용해도 정말 조심스럽게 사용)
< 오라클 DB 세팅 명령어 >
🔎 실행키 : ctrl + enter
🔎 경로:
C:\Users\KITCOOP\AppData\Roaming\DBeaverData\workspace6\General\Scripts
Ex) project - scripts - day01.sql - 우클릭 - show resources - 경로확인 가능
https://www.oracle.com/database/technologies/xe-prior-release-downloads.html 링크참조
->맨위 windows64비트(윈도우 기준)
-> 오라클 로그인
-> 다운로드
-> gb\util폴더에 압축파일 풀기
-> .exe 실행파일 실행
-> agreement 허용
-> next
-> next
-> ID 1234, PW 1234로 설정
-> cmd 실행
-> sqlplus system/1234 + enter
-> DB설치여부 확인
->dbeaver 공홈
-> 다운로드클릭
-> windows .zip파일 다운로드
-> gb\util폴더에 압축파일 풀기
-> .exe.실행파일 실행
-> create sample database 팝업창 no선택
-> 팝업창 (취소)
-> 좌상단 database 충전기 아이콘 클릭
-> oracle 선택
-> 다음
-> database : XE / username : hr / PW : 1234
-> 좌하단 Test connection클릭
-> 다운로드 클릭
-> 확인 클릭
-> 완료 클릭
-> localhost 클릭
-> f2(Rename) : hr로 설정
-> database 설정 및 선택
-> Database : Xe / User : hr / PW : *로 설정
( 필요한 라이브러리를 보여주는 사진 )
-> Download 클릭
-> Connected라는 문구가 뜨면 세팅이 잘 된 상태이다
-> 정상적으로 세팅이 되었다면 좌상단에 localhost가 생성된다.
-> dbms -> hr -> Schemas -> hr -> Tables
-> Script부분에 sql파일이 생성되었으면 이를 토대로 dbms를 활용한다.
-> 이름값을 맞춰줘야 에러가 발생하지 않으므로 초기에 설정했던 'hr'로 파일명을 수정한다.
-> 해당 파일이 저장되는 경로를 열고싶으면 파일 + 우클릭 + Show resource in explorer 클릭 -> 경로확인 가능
< SQL 기능에 따른 분류 >
🔎 테이블이나 관계의 구조를 생성하는데 사용하며
create, alter, drop 문 등이 있다.
🔎 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용하며 insert, select, update, delete 문 등이 있다.
(CRUD - Create Read Update Delete)
🔎 연관성
insert - create / select - read / delete - delete / update - update
🔎 개발자 입장에서 이 4가지중 가장 까다로운 db조작어는 select문이다
🔎 이유는 대량의 데이터를 단시간에 처리하는 것이 가장 어렵기 때문이다.
🔎 고객의 요청을 정확히 파악해야 하기에 까다 로운 이유도 있다.
🔎 java에서처럼 A또는B인지, A와B 둘 다 인지 명확하게 처리해야하기 때문이다. )
🔎 데이터의 사용 권한을 관리하는데 사용하며
grant, revoke 문 등이 있다.
SELECT EMPLOYEE_ID, LAST_NAME // SELECT : ~을 선택해서 가져온다 // ','를 기점으로 가져온다 FROM EMPLOYEES // FROM : (EMPLOYEE table)~에서 가져온다 WHERE LAST_NAME; = 'ostin'; // WHERE : ~조건에서 가져온다
🔎 오라클에서 기본으로 제공하는 dummy table
🔎 간단하게 함수를 이용해서 계산 결과값을
확인할 때 사용하는 테이블
🔎 dual 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하기에 적합하다.
🔎 함수에 대한 쓰임을 알고 싶을 때 특정 테이블을 이용하여 함수의 값을 리턴받을 수 있다.
distinct : 중복제거 or : 조건 not : 부정 <> : 꺽세를 넣으면 NOT과 같은 부정의 의미가 된다. != : JAVA처럼 ' != '은 정의 의미를 내포한다. 범위 : > , < , >= , <= between A and B :'범위'와 같은 의미를 내포한다. A,B위치 중요 A보다 크고 B보다 작다. in절 : or과 동일 like : d로 끝나는 사람(employee에서 first_name이 d로 끝나는 사람) '%d'로 표기 a인 사람 (앞에 뭐가 오든 상관없는 first_name 세번째에 a가 들어가는 사람의 리 스트를 뽑아라 'a%'로 표기 is null : null값이 할당되어 있는 값을 뽑고 싶을 때 사용 is not null : null값이 아닌 값을 뽑고자 할 때 사용 order by ASC : 오름차순, ASC는 생략가능 order by DESC : 내림차순 sum : 합계 count(*) : 몇 행인지를 알려주는 count(*)기능 알리아스 : "~~" ->이름으로 표기해줌 avg : 평균 max : 최대값 min : 최소값 abs : 절대값 round() : 반올림 trunc : 절사 concat : 문자열 연결 initcap : 첫 글자를 대문자로 upper() : 대문자로 변환 lower() 소문자로 변환 lpad : 자리수에 맞게 설정한 값을 넣어주는 역할 ( 앞부터 시작 ) rpad : 자리수에 맞게 설정한 값을 넣어주는 역할 ( 뒤부터 시작 ) LTRIM : 자리수에 맞게 설정한 값을 지워주는 역할 ( 앞부터 시작 ) RTRIM : 자리수에 맞게 설정한 값을 지워주는 역할 ( 뒤부터 시작 ) substr (서브스트링) : ( ----, x, y)를 기준으로 x~y번째까지 불러온다. + 띄어쓰기 포함 replace : 바꾸고자하는 문자나 문자열을 지정하면 지정한 형태로 문자나 문자열을 바꾸어준다. systdate() : 현재시각 호출 ADD_MONTH(SYSDATE, x ) : x개월을 더해준다 LAST_MONTH(SYSDATE, y ) : y개월의 마지막 날짜를 호출한다 to char : 날짜 -> 문자열 to_date() : 문자열 -> 날짜 nvl() : 널값을 다른 데이터로 변경하는 함수 decode() : JAVA의 switch문과 동일 case ~ when ~ else ~ end : 조건문 group by : 그룹화 + 같은 계열을 묶는 느낌(!= distinct) 집계함수 + distinct는 같이 사용될 수 없다. ( 사용 불가 ) 부서별 급여 할계 집계함수 + group by 는 같이 올 수 있다.( 사용 가능 )
<보기>
-> DBMS - EMPLOYEES 테이블 불러온 값
<예제>
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