1교시
use sale;
select dept_id as id, name from dept;
#if
select name, if(dept_id =1,'sale','ELSE') as dept from emp;
select name, if(emp_id = 1, 'By jack,','ELSE') as sale from cus;
#case 다중조건
select name,
case
when(dept_id = 1) then 'sale'
when(dept_id = 2) then 'plean'
when(dept_id = 3) then 'manage'
else 'D'
end as dept from emp;
select name,
case
when (emp_id = 1) then 'BY jack'
when (emp_id =2) then 'by Emma'
else 'By Ava'
end as sale from cus;
#ifnull ->Null값일때 그 값을 치환한다.
use world;
select * from country;
select IndepYear, ifnull(IndepYear, 'NULL DATA') as result from country;
#if를 이용해서 pro 테이블(제품) 본인이 생각하는 가격으로 조건을 걸어 비싼 가격이면 expen으로 싼 가격이면 cheap으로 출력되게 하세요. 제품 이름과 if결과만 출력
use sale;
select * from pro;
select name,if(price >= 700000, 'expensive','cheap') as price from pro;
#case를 이용해서 제품 테이블의 내부에 존재하는 제품들의 판매자가 누구인지 확인하세요
#-제품이름과 case결과만 출력
#ex)vACCUM / By Jack
select name,
case
when(emp_id=1) then 'By Jack'
when(emp_id=1) then 'Bu Emma'
else 'By Ava'
end as sale from pro;
select concat('2024','01','22') as result; ->문자열을 붙여준다.
select concat_ws('-','2024','01','22') as result ->문자열을 붙여주고 사이에 기호를 붙인다.
2교시
---format---
소수점 자리 수를 조정
select format(37.4547455754,6) as result;
select format(37.4547455754,6) as result, format(44.23452345,6) as result1;
---left---
select left('990603-4456852',6) as birth;
---right ---
select right('990603-1165852',7) as birth;
# insert 함수 지정된 위치부터 마스킹작업
select insert('강민석', 2, 2, '**')as name;
- RPAD 함수 : 문자열을 길이만큼 오른쪽에서 늘린 후에 빈 곳을 채울 문자열로 채움
- TRIM 함수 : 문자열의 양쪽 공백을 제거
#공백제거
select trim(' 강민석 ') as result;
- REPEAT 함수 : 문자열을 횟수만큼 반복
- REPLACE 함수 : 문자열에서 원래 문자열을 찾고 바꿀 문자열로 변경
#문자열 치환
select replace('강민석','민석','**') as result;
- REVERSE 함수 ->문자열을 거꾸로 변경
- CONCAT 함수 ->문자열을 합치는 함수
- SPACE 함수 -> 공백을 반환하는 함수
#공백치환
select concat_ws(space(1),'2024','01','22') as result;
- SUBSTRING 함수->시작 위치부터 길이만큼 문자를 반환
#문자열을 특정 위치부터 반환
select substring('강민석',2,2) as result;
- SUBSTRING_INDEX 함수 -> 문자열 시작부터 구분자가 횟수만큼 나오면 그 이후는 버림
#구분자를 찾아서 문자열을 반환 -는 거꾸로
select substring_index('http://www.naver.com','.',-2)as result;
#실습1
#sample@gamil.com
#sample만 추출
#gmail만 추출
#com만 추출
#concat, concat_ws 적절히 사용해서 원상복구
select substring_index('sample@gamil.com','@',1);
select substring_index(substring_index('sample@gamil.com','.',1),'@',-1);
select substring_index('sample@gamil.com','.',-1);
select concat(substring_index('sample@gamil.com','@',1),'@',substring_index(substring_index('sample@gamil.com','.',1),'@',-1),'.
- ABS 함수 숫자의 절댓값을 반환
- MOD 함수 숫자1을 숫자2로 나눈 나머지 값을 반환
- ROUND 함수 소수의 반올림한 숫자를 반환
- POW 함수 숫자1의 숫자2 제곱 값 반환
- SQRT 함수 숫자의 제곱근 값 반환
- RAND 함수 + FLOOR 함수 -> 원하는 밤위까지의 수를 무작위로 반환
#1~10까지 랜덤한수 생성
select floor(1+(rand()*10))as result;
3교시
- ADDDATE 함수 날짜를 기준으로 차이를 더한 날짜를 반환
- DATE_ADD 함수 ADDDATE 함수와 동일
- SUBDATE 함수 날짜를 기준으로 차이를 뺀 날짜를 반환
- DATE_SUB 함수 SUBDATE 함수와 동일
- ADDTIME 함수 날짜/시간을 기준으로 시간을 더한 결과 반환
- SUBTIME 함수 날짜/시간을 기준으로 시간을 뺀 결과 반환
- CURDATE 함수 현재 연-월-일 반환
- CURTIME 함수 현재 시:분:초 반환
#adddate
select adddate(curdate(),interval 31 day) as result;
#subdate
select subdate(curdate(),interval 31 day) as result;
#addtime
select adddate(sysdate(),'0:3:00')as result;
#subtime
select subdate(sysdate(),'0:3:00')as result;
#cursdate 현재날짜
#curtime 현재시간
select concat_ws(space(1),curdate(),curtime()) as result;
select sysdate();
#년 월 일 추출
select concat_ws('-',year(now()),month(now()),dayofmonth(now())) as result;
#목표일 까지 년월일 구하기
select concat_ws('-',datediff('2024-01-27',curtime()),timediff('22:00:00',curtime()))as result;
#실습2
#2월 첫째주 월요일에 유명한 식당을 예약했다.
#현재 날짜에서 남은 날짜
#현재 시간에서 남은 시간 -> -가 나오지않게 ->초로계산
select datediff('2024-02-04',curdate());
select abs(timediff('18:00:00',curtime()));
- USER 함수 -> 현재 사용자를 ‘root@localhost’ 형식으로 반환 select user();
#user
select user();
select session_user();
#database
select database();
select schema();
#sleep -> 일정 시간(초) 동안 쿼리 작동을 정지한다.
select sleep(5);
'(학) (공) (디)' 카테고리의 다른 글
01.27(7일차) (0) | 2024.01.27 |
---|---|
01.24(6일차) (0) | 2024.01.24 |
01.17(4일차) (0) | 2024.01.17 |
01.15(3일차) (0) | 2024.01.15 |
01.12(2일차) (1) | 2024.01.12 |