우당탕탕 개발 블로그 도전기

02.28 ~ 03.06 (Oracle DB) 본문

국비지원 과정 기록

02.28 ~ 03.06 (Oracle DB)

나루나른 2024. 3. 10. 17:55

02.28 (수)

테이블 C/R/U/D

- DB 작성시 가장 기초가 되는 명령어

 

Create (생성)

create 문의 예시

create  테이블명 (
컬럼명1 자료형
컬럼명2 자료형
컬럼명3 자료형...
);

 

Read (조회)

select 칼럼명 1,2,3 ... from 테이블명;

 

Update (행 수정)

update 테이블명 set 칼럼명 = 삽입할 데이터;

 

Delete (행 삭제)

delete from 테이블 명;

 

● 명령어의 완료와 취소

- insert, update, delete 의 명령어를 사용하는 경우, 명령어 취소와 명령어 완료를 선택 할 수 있음.

commit : 명령어 완료

 

- rollback  : 명령어 취소

(rollback의 경우 comit을 명령한 실행한 시점부터는 DB에서 수행된 모든 변경사항이 영구적으로 적용되기 때문에 

rollback 명령어를 사용하여 이전의 상태로 되돌릴 수 없다.)

 

● Alter

- 테이블의 구조를 수정 및 변경할 때 사용한다.

 

●  where 조건문 / between and, IN, LIKE, NULL/is NULL 등 기타 연산자

- 해당하는 조건을 만족하는 행들만 한정하고 싶을때 사용한다.

- 주로 조건에 만족하는 행들만 대상으로 조회(select), 수정(update), 삭제(delete) 하기 위해서 사용함

( 비교 연산자(=, <, >, <=, >=, <>), 논리 연산자(AND, OR, NOT), IN, LIKE, BETWEEN 등을 포함한 다양한 표현식을 이용함)

02.29(목)

●  정렬(Sort)

- 특정값(keyfield)을 기준으로 순서대로 재배치하고자 할 때 사용한다.
 

1. 오름차순 Ascending Sort (ASC)  

ex) 1->10,  A->Z, ㄱ->ㅎ

 

2. 내림차순 Descending Sort (DESC)

ex) 10-> 1, Z-> A, ㅎ->ㄱ

order by 칼럼명1, 칼럼명2, 칼럼명3, asc 또는 desc;

 

● 시퀀스(Sequence)

- 순차적인 숫자를 자동으로 생성하는 데이터베이스 객체로 일련번호, 고유 식별자 등을 생성하는 데 사용한다.

- Oracle DB :  create table sequence 시퀀스명
- M*SQL DB : identity 제약조건

 

- 시퀀스 생성 형식

create sequence 시퀀스명 
 increment by 증가값 start with 시작값;
 (만약에 시작값이 1부터 시작하고 증가값이 2라면  1, 3, 5의 형태로 2씩 증가함)

 

03.04(월)

제약조건

테이블에 저장되는 데이터의 무결성을 보장하기 위해 사용하며 제약조건을 사용하면 데이터의 정확성, 일관성, 신뢰성을  유지할 수 있음

 

1. PRIMARY KEY(기본키)

- 테이블에서 각 행을 고유하게 식별하는데 사용되는 컬럼, 기본키로 지정된 컬럼에는 중복된 값이나 NULL 값은 불허

 

2. FORENIG KEY(외래키)

- 다른 테이블의 기본 키를 참조해서 두 테이블 간의 관계를 설정하는데 사용. 참조되는 테이블에 없는 값은 참조X

 

3. UNIQUE(고유)

- 테이블 내의 각 행에 특정 칼럼의 값의 고유함을 보장, 기본키와 다르게 NULL 값을 한번 허용함 

 

4. CHECK(체크)

- 칼럼에 저장될 수 잇는 데이터 값을 제한함 (컬럼의 값이 특정 범위내에 있어야하거나, 조건을 만족해야할 때 사용)

 

5. NOT NULL(널 불허)

- 기본적으로 NULL 값이 들어갈 수 없도록 한다. 필수적으로 값을 가져야하는 컬럼에 적용

 

● groub by ~ having 조건절

- 칼럼에 동일 내용끼리 그룹화 시킴
형식) group by 칼럼1, 칼럼2, 칼럼3, ~~~ 

※ 주의사항으로는 그룹핑 되어있는 컬럼 뒤에는 한 개의 값만 가진 컬럼만 가져올 수 있다.

 

- having 조건절 

SQL에서 집계함수의 결과에 대한 조건을 적용할 때 사용함 (대표적인 것이 group by)

group by 절과 함 께 사용하며, 해당 조건절로 생성된 그룹의 결과에 조건을 걸고 싶을 때 사용한다.

(조건절의 경우 연산자를 무조건 사용해야 한다.)

 

● case- when

- SQL에서 조건에 따라 다른 값을 선택하거나 반환할 때 사용하는 조건부 논리를 구현하는 데 사용

case when 조건1 then 조건 만족시 값1
when 조건2 then 조건 만족시 값2
when 조건3 then 조건 만족시 값3
end;

 

● 쿼리문의 해석 순서 

예시로 아래 쿼리문의 해석 순서는 다음과 같다.

select addr, count(*)   -- 해석순서 3)
from sungjuk  		-- 해석순서 1)
group by addr 		-- 해석순서 2)
order by addr desc; 	-- 해석순서 4)

 

● 서브 쿼리

- sql 문 속에 또 다른 sql문으로 테이블 내에서 다시 한번 쿼리문에 의해 행 조회 및 검색

해당 서브 쿼리문은 국어 점수의 최소값보다 이하 점수가 수학 또는 영어 점수에 있는지 조회하는 쿼리문이다.

select uname, kor, eng, mat
from sungjuk
where mat<=(select min(kor) from sungjuk) 
or eng<=(select min(kor) from sungjuk);

 

여기에서 where 조건절에 수학점수(mat) 와 영어 점수(eng)의 값을 국어 점수의 최소값(min(kor))와 비교하는 부분이 있는데 해당 쿼리문을 단일 서브 쿼리문이라고 한다.

 

03.05(화)

● 오라클 함수

- 결합 연산자  ||

 

-  ASCII 문자변환  chr( ASCII 값)

 

- 숫자 관련 함수

   1. abs(number)  : 절대값을 반환하는 함수

   2. mod(값1, 값2) :  두 숫자의 나머지를 반환하는 함수, 값1을 값2로 나눈 후의 나머지의 값을 계산함

   3. ceil(number) : 주어진 숫자를 넘지 않는 가장 작은 정수로 올림하는 함수

   4. trunc(값, 소수점의 자릿수) :  숫자나 날짜를 특정 자릿수나 날짜 부분까지만 잘라내고 나머지를 제거하는 데 사용함

 

- 형변환 함수

   to_char(원래 날짜, '원하는 모양') 

   to_number('숫자형태의 문자열')

   to_date(('문자','날짜포멧')

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;  -- 결과: '2023-03-15'

SELECT TO_NUMBER('12345') FROM DUAL; -- 문자열 '12345'를 숫자 12345로 변환

SELECT TO_DATE('2023-01-01', 'YYYY-MM-DD') FROM DUAL; -- 문자열을 날짜타입 '2023년 1월 1일'로 변환

 

● nvl 함수

 nvl(값1, 값2) : null값을 다른 값으로 바꿈. 값1의 값이 NULL이 아니라면 값1이 가진 값을 그대로 반환하고 만약 NULL이라면 값2에 해당하는 값을 반환한다.

 

● Oracle DB 자료형

1. 숫자형
   - number       전체자릿수(38)까지 표현. 표준SQL문의 int형과 동일하지만, 소수점 표현도 가능함
   - number(3)    전체자릿수(3) -999~999
   - number(6,2)  전체 자릿수(6)이고, 6칸내에서 소수점 자릿수(2) 

2. 문자형
   - char        고정형. 최대길이 2000바이트
   - varchar2    가변형. 최대길이 4000바이트
   - long        최대 2GB까지

3. 이진파일
   - blob
   - 주의사항 : 실제 파일을 데이터베이스에 저장하지 않음
   - 파일명만을 DB에 저장하고, 그 둘을 매치하는 시스템
   
4. 날짜형
   - date       년월일시분초
   - timestamp  기본날짜형을 확장한 자료형

 

03.06(화)

● 모델링 (학사관리 예제)

 

'국비지원 과정 기록' 카테고리의 다른 글

03.26 [Java]  (0) 2024.03.26
03.25 [Java]  (1) 2024.03.25
03.20~03.21[Java]  (0) 2024.03.23
03.18 ~ 03.19[Java]  (0) 2024.03.20
03 07 ~ 03 15[Oracle DB]  (1) 2024.03.17