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이 연결되면 한쪽의 값이 바뀌면 다른 한쪽도 바뀐다
[MySQL] (0) | 2024.05.13 |
---|---|
[MySQL]Case | Loop&While | Cursor | Trigger | Backup & Restore (0) | 2024.05.03 |
[MySQL] Join의 종류 | sub query (0) | 2024.05.01 |
[MySQL] DBeaver | Insert | Update | Delete (0) | 2024.04.30 |
[MySQL] 다운로드 | 서버초기화 | 명령어 | 암호변경 | 사용자생성 | 권한부여 | 경로지정 | TABLE | 기본구조 | 실습 (0) | 2024.04.29 |