본문 바로가기
(학) (공) (디)

01.22(5일차)

by 만석이 2024. 1. 22.

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