TIL- MySQL

kyoungyeon·2024년 3월 19일
0

TIL

목록 보기
106/122

STATUS

Mysql ㅈㄴ 자신있어..

하다가 이번 코테에서 특수 메소드를 (max, min 어떻게 썼더라..?) 까먹고... 이후 울면서 야근하다 (떠나간)개발자의 코드를 보고 정리하게 됨

History

고인이 되신(?) 온기만 남아있는 옛 개발자분의
elasticQuery에서 꽤 새로운 문법을 보았는데 mysql 기반이라 이해가 어렵진 않았따.
이번 시험에서 공부를 많이 안하고 가서 아쉬움

Mathod

  • concat = 없는 데이터를 붙인다. data내 없는 요소를 넣어주는 개념

    • 하나의 열에 표시가능
      select user_id, concat('string',customer_id, file_path) as 더할특성 , ...
  • concat_ws = split처럼 쪼개주고 데이터 재정렬해준다

    • concat은 data 없어도 붙여주지만
    • concat_ws 있는 데이터에 재정렬 개념
      selec user_id, concat(' ', city,address1,address2, room) as 주소
  • combine

  • case~ when : 여전히 case when 은 쓰면 깔끔해지는 코드임
    mysql 에서 쓰임 (if 가 없고, where 을 쓰는것 보다 직관적)

    select user_id, user_pw, prd_id from customer as c join product as b on b.prd_id = c.prd_id case when status = 'none' then '없음'

  • IIF

%es
DECLARE @SCORE INT =80
SELECT IIF(@score >= 70, '합', '불') AS SCORE)

비교 ) case when

%es
DECLARE @SCORE INT = 80
SELECT CASE  WHEN @SCORE >= 70 THEN '합'
			 WHEN @SCORE  <70 AND @SCORE >60 THEN '합격보류'
             ELSE ' 불'
       END AS PASS
  • innerquery
    subquery 는 보면 볼수록 기묘하다.
    잘쓰면 DBA가 될수도 있어!

  • max ,min, count
    이번 코테에서 병합해야하는 sql문이 나왔는데
    count(min(*)) 형태바꿔서 where in 써가며 난리를 다 쳤는데 결국 제대로 풀지 못했다...
    select max(mycnt) from (select count(*) as mycnt from Table1 group by programm_language) as result;

  • order by : 특징을 기준으로 매칭

  • group by : 그룹별 매칭 ( 중복 그룹을 묶음)

  • where
    조건문.
    조건문은 중첩할수 있다 (AND)

  • WHERE in :

    • 여러 값에 매칭되는 하나의 레코드 매칭.
    • IN 의 경우 row 배열 순회
    • 활용 > where in + sub query
select * from test_db a
where user in 
(select user from test_db_copy b 
where b.group = 'A');

user attribute을 뽑아온다.

  • where + exists
    boolean 처럼 해당되는 값이 하나라도 있으면 true를 보내준다. filter 기능, in 보다 성능좋음
  • limit 1
    최대/최솟값 찾기.(1개만 갖고온다)
SELECT name from animal_ins order by datetime asc limit 1;
  • group by + having
    group by 에 조건을 넣어 더 세부적인 결과
SELECT
    status, COUNT(*)
FROM
    orders
GROUP BY status
HAVING COUNT(*) > 4;
  • count
    갯수 계산 함수 having count(*)
profile
🏠TECH & GOSSIP

0개의 댓글