상세 컨텐츠

본문 제목

[MySQL] VIEW | 숫자 함수 | 문자 함수 | 논리 함수 | 집계 함수 | 날짜 함수 | Function | Procedure

IT/DataBase

by o_zeew 2024. 5. 2. 17:47

본문

24.05.02 54일차

 

 

VIEW

일종의 가상테이블로 보안이나 복잡한 쿼리를 단순하게 사용하도록 설정 가능

 

생성 : CREATE [OR REPLACE] VIEW 뷰명 AS

                SELECT ...

  * OR REPLACE를 사용하면 기존 VIEW가 있더라도 REPLACE 시키기 때문에 주의해서 사용해야한다

삭제 : DROP VIEW 뷰명

 

customers 테이블과 orders 테이블을 가상의 테이블 customer_order로 생성

 

 

사원번호, 사원이름은 e1 테이블, 상사의사번, 상사이름은 e2테이블

충돌 방지를 위해 별칭 적어주기

 

 


숫자 관련 함수

함수명 설명
abs (n) n의 절대값 출력
ceiling (n) or ceil (n) n의 절상값 (크거나 같은 최대 점수)

floor (n)
n의 절삭값 (작거나 같은 최대 점수)
round (n,p) p가 양수이면 소숫점이하, 음수이면 소수점 이상에서 반올림
truncate (n,p) p의 자리에서 버림
pow (x,y) or power (x,y) x의 y승
mod (x,y) x를 y로 나눈 나머지
greatest (n1, n2, n3, ...) 가장 큰수
least (n1, n2, n3, ...) 가장 작은수

 

 - p가 3(양수)이기 때문에 소수점 뒤에서 3번째인 4에서 반올림 계산

 - p가 -3(음수)이기 때문에 소수점 이상 3번째인 3에서 반올림 계산

 - p가 0이기 때문에 소수점 제거 

 

 

 

문자 관련 함수

함수명 설명
ascII(str) str의 아스키 코드값
concat(str1, str2, str3, …) 문자열 연결
insert(str, start, length, newStr) str문자열에서 start에서 length길이 만큼의 문자열을 new Str 로 바꿈.
select insert ('abcdef ', 2, 1, '1234567' ); → a1234567cdef
replace(str, oldStr, newStr) str에서 oldStr의 문자열을 newStr로 수정 
select replace ('abcdef', 'bc', '123'); → a123def
instr(str, findStr) str에서 findStr을 찾아 위치 반환 
select instr ('abcdef', 'cd'); → 3
left(str, length) str에서 왼쪽부터 length 만큼 추출
select left ('abcdef', 3); → abc
right(str, length) str에서 오른쪽부터 length 만큼 추출 
select right ('abcdef', 3); → def
mid(str, start, length) or substring(str, start, length) str에서 start위치에서 length 만큼 추출 
select mid  ('abcdef', 2,3), substring ('abcdef', 2,3); → defdef
ltrim(str), rtrim(str), trim(str) 공백 제거
lcase(str) or lower(str) 모두 소문자로
ucase(str) or upper(str)  모두 대문자로
reverse(str) str을 반대로 나열
format(숫자, 소수점 자리수) 천단위 소숫점 표시
select format (1234567.12345,3); → 1,234,567.123

 

 

논리 함수

 

함수명 설명
if (논리식, 참일때, 거짓일때) select if (10<4, 't', 'f'); → f
ifnull(v1, v2) v1이 null 이면 v2를 반환, 아니면 v1를 반환
select ifnull (null, '1' ); → 1
select ifnull ('a ', ' 1' ); → a

 

 

집계 함수

함수명 설명
count(fn) null값이 아닌 row갯수
sum(fn) 합계
avg(fn) 평균
max(fn) 최대값
min(fn) 최소값

 

 

날짜 함수

함수명 설명
now() or sysdate() or current_timestamp() 년월일 시분초
curdate() ro current_date() or date(날짜) 년월일
curtime() or current_time( ) or time(날짜)  시분초
date_add(날짜, interval 기준값) 날짜를 더함.
date_sub(날짜, interval 기준값) 날짜를 뺌
year(날짜), month(날짜), dayofmonth(날짜) select year(now()), month(now()),
dayofmonth(now()); → 2021 1 1
monthname(날짜), dayname(날짜)  
dayofweek(날짜), weekday(날짜) weekday → 0:월요일, dayofweek → 1:일요일
dayofyear(날짜) 일년중 오늘이 몇일째날
week(날짜) 몇번째 주
date_format(날짜, 형식)  

 


저장형 프로세스

종류 : function과 procedure

데이터베이스 내부에 저장되어 서버가 재 시박되어도 필요할 때 반복적으로 호출하여 사용 가능

 - 하나의 문장을 ;로 종료

 - 대소문자 구분 X

 - 일반적인 SQL 문법 사용

 - 제어구조와 반복구조를 갖고있다

 

Function

최초에 한번만 진행

 

concat : 문자열 연결

 

 

Procedure

일반 변수의 값을 대입할 때는 set 필요

Hot Line이 연결되면 한쪽의 값이 바뀌면 다른 한쪽도 바뀐다

관련글 더보기