본문 바로가기
개발/교육

(데이터베이스)21일차

by kakk789 2022. 4. 25.

데이터 조작어 (DML) - INSERT

INSERT INTO 테이블명 VALUES (값 리스트);
- 값 리스트는 테이블의 구조와 동일해야 함 (타입, 순서 등)

INSERT INTO 테이블명 [(속성리스트)] VALUES (값 리스트);
- 값 리스트는 속성리스트의 구조 동일해야함
- 테이블의 제약조건에 'NOT NULL', 'PK'가 존재한다면 속성 리스트에 반드시 포함해야한다

INSERT INTO 테이블명1 [(속성리스트)] SELECT 속성 FROM 테이블명2
- SELECT 구문의 테이블명2의 레코드들을 테이블명1로 INSERT 가능

데이터 조작어 (DML) - UPDATE

  • 조건식이 없으면 모든 레코드의 값이 수정 됨
  • 조건식이 있으면 조건에 맞는 레코드만 수정 됨
UPDATE 테이블명
SET 속성이름1 = 값1 [ , 속성이름2 = 값2, ........]
where [<검색조건>];

UPDATE 테이블명
SET 속성이름1 = ( 서브쿼리 SELECT )

데이터 조작어 (DML) - DELETE

DELETE 테이블명 [where 조건식]

ROLLBACK

  • DML 작업 시 가장 최근의 commit 지점까지 취소
  • DCL, DDL은 자동 커밋
  • 아래 예시와 같은 경우 Rollback 불가능 
작업 순서
1. update 작업 진행
2. create table 작업 진행
3. Rollback하여 1번의 update 진행 전으로 RollBack 이 가능한가?
--> 불가능, 이유는 2번의 create 작업을 진행하면 자동 commit이 되기 때문에 1번 update 전으로 rollback이 무시됨

JSP파일 UTF-8 설정

EUC-KR 과 UTF-8의 차이 (아래 블로그 참고)
https://blog.naver.com/bbmobile/221360230141

간략 설명
EUC-KR 은 한글 한글자당 2바이트로 인식
UTF-8 은 2~4바이트로 가변 크기 인코딩

1.URIEncoding="utf-8" 설정 추가

Servers 패키지 - server.xml - Conntector 에 URIEncoding="utf-8" 부분에 설정 추가

2. JSP 코드에서 아래와 같이 설정 

숫자 내장함수

1 ABS (값) - 절대 값을 반환하는 함수
2 ceil (값) - 무조건 올림수로 반환하는 함수
3 floor (값) - 무조건 버림수를 반환하는 함수
4 round (값, 자리수) - 반올림을 반환하는 함수
- 자리수가 0이면 정수부만 표시 (37.0 -> 37)
- 자리수가 1이면 소수점 첫번째 자리 까지 표시 (37.89 -> 37.9)
- 자리수가 -1이면 십의자리까지 표시
5 log (밑, X) - 말그대로 수학 log 함수이다 
- 밑 10 , X=100 이면 2를 반환
6 power (숫자, n제곱) - 제곱 값을 반환 (2^3) -> 8 반환
7 sqrt - 제곱 승을 반환 (9) -> 3 반환
8 sign - 결과 값이 양수 = 1 반환
- 결과 값이 음수 = -1 반환
- 결과 값이 0 = 0 반환

ABS (절대 값)

CEIL (올림 수)

FLOOR (버림 수)

ROUND (반올림)

예시1)

예시2) 평균 백원 단위로 반올림 

                                                         ROUND(avg(saleprice), -2)

POWER (제곱 값 반환)

sqrt

문자 내장함수

CHR ( 정수 ) 정수 아스키코드를 문자로 반환
CONCAT ('문자열1', '문자열2') 두 문자열 연결
INITCAP ('문자열') 단어의 첫 글자를 대문자로 변환
LOWER ('문자열') 문자열을 모두 소문자로 변환
UPPER ('문자열') 문자열을 모두 대문자로 변환
LPAD ('문자열', 정수형, '채울글자') 정수만큼 자리수에 문자열을 채우는데 왼쪽에 채울글자를 채워라
RPAD ('문자열', 정수형, '채울글자') 정수만큼 자리수에 문자열을 채우는데 오른쪽에 채울글자를 채워라
REPLACE('문자열1', '문자열2', '문자열3') '문자열1'에서 '문자열2'의 글자를 '문자열3'으로 바꿔라
TRIM (c FROM s) 양쪽 공백을 삭제
LTRIM (문자열1, 문자열2) 왼쪽 공백 제거
RTRIM (문자열1, 문자열2) 오른쪽 공백 제거
SUBSTR(문자열,시작위치,길이) 문자열의 시작위치에서 길이만큼 잘라서 반환
LENGTH (문자) 문자열의 길이를 반환
ASCII (값) 문자를 정수형으로 반환
instr ('문자열', '찾을 문자') 
instr ('문자열1', '문자열2', 숫자1)
- 문자열에 특정 문자열의 위치를 반환
- 문자열1로부터 숫자1인덱스 이후에 나오는 문자열 2의 위치

CHR

  • 정수에 해당하는 아스키 코드 반환 ( 65 -> 'A' )

CONCAT

  • 두 문자열을 합하여 반환

INITCAP

  • 단어의 첫글자를 대문자로 반환

lower

  • 소문자로 변환

UPPER

  • 대문자로 변환

TRIM

  • 좌우 공백 제거 (공백 좌우 3개씩 6개)ㅇ
  • length로 공백 제거 되었는지 표현하였음

LTRIM

  • 왼쪽 공백 제거 (공백 좌우 3개씩 6개)
  • length로 공백 제거 되었는지 표현하였음

RTRIM

  • 오른쪽 공백 제거 (공백 좌우 3개씩 6개)
  • length로 공백 제거 되었는지 표현하였음

length

  • 문자열의 길이를 반환하는 함수
  • length로 공백 제거 되었는지 표현하였음

dual 테이블 : 가상의 테이블
사용법 : SELECT ABS(-78) FROM dual;

 

반응형

'개발 > 교육' 카테고리의 다른 글

(데이터베이스)23일차  (0) 2022.04.27
(데이터베이스)22일차  (0) 2022.04.26
(데이터베이스)20일차  (0) 2022.04.22
(데이터베이스)19일차  (0) 2022.04.21
(데이터베이스)17일차  (0) 2022.04.19

댓글