브이로그
2024년 3월 27일 MySQL-Function 본문
제일 먼저 알아볼건 함수에 대해서 알아볼껀데 MySQL전용으로 쓰이는 함수라서 라는 툴에는 적용이 안될수도 있어
1. concat : 복수의 문자열을 연결해주는 함수
를 알아보기 전에 먼저 어제 우리가 만들었던 kdt 데이터베이스를 사용해야되니까 use kdt;를 해주자
이렇게 콤마(,)를 이용해서 연결이 된걸 볼 수 있어
2. left, right : 왼쪽, 오른쪽에서 길이만큼 문자열을 가져옴
길이를 5로 정해줬으니까 5번째까지 출력이되는거고, userpw도 2자리만 출력되고 이름도 바꿔줬어
3. substring : 문자열의 일부를 가져옴
길이가 안 적혀있을때는 끝까지 출력이 된다고 생각하면 될거 같아
4. char_lenght : 문자열의 길이를 반환
이메일도 마찬가지로 문자열이기 때문에 특수기호까지 반환되는거야
5. lpad,rpad : 왼쪽 또는 오른쪽의 해당 길이만큼 늘리고, 빈 공간을 채울 문자열을 반환
쉽게 생각해서 이미 있는 길이에서 문자열을 빼주고남은 문자열을 채워준다고 생각하면 될거 같아
6. ltrim, rtrim, trim : 왼쪽, 오른쪽, 모든 공백 제거
상황에 따라 제거하면 좋을거 같아
7. replace : 문자열에서 특정 문자열을 변경
바꿀 대상을 정해서 바꿔주는데 없으면 안적어도되 CD를 바꿀 대상으로 바꿀 문자열이 없으니까 그냥 없어지게되지
이번에는 유니온이라는 키워드를 알아볼꺼야
쉽게 얘기하면 두 개의 테이블에 있는 데이터들을 합치는거라고 보면되
테이블을 두 개 만들어야 되니까 먼저 한 개 만들어봤어(drop은 테이블 삭제하는거야 오타가 나서 삭제하고 다시 적어서..)
구조는 똑같이 만들었고 안에 들어가는 값들만 다르게 만들어줬어
유니온을 이용해서 만든 두 개의 테이블을 합쳐줬어
이미 추가를 시켰지만 운래 강아지까지 인데 추가 시킬수도 있다는거 보여줬어
밀키트가 두 개라 중복처리가 될 수도 있으나 현재시간(실행시킨시간)이 다르기 때문에 모두 출력이 되지
이렇게 유니온만을 사용하면 중복을 없애줘(현재시간을 넣으면 당연히 중복이 출력되겠지?)
밀키트까지 출력
이번에는 서브쿼리에 대해서 알아볼꺼야
그냥 문제 그대로를 코드에 담았잖아? 코드가 00001일 때의 가격보다 크거나 같은 가격을 가진 것만을 출력하는거니까 밀키트는 제외되겠지?
두 번째 결과는 서브 쿼리없이 야매로 한 번해봤다가 되가지고 놀랐어 그래서 데이터 이름이 달라..
최고가격을 출력을 해달라고 했으니까 서브쿼리를 안에 max()함수를 사용했어
이번에는 auto_increment에 대해서 알아볼꺼야
member테이블과 같이 사용해 볼거라서 그리고 다음에 쓰이는 것들때문에 테이블을 하나 만들어줬어
테이블 안에 값들을 넣어줬어 no에 자동으로 숫자를 부여하게 했는데 값을 입력하지 않으니까 증가되는걸 볼 수 있지?
조인으로 두 테이블을 합쳐서 사용해볼꺼야
그룹을 지어줘서 서브쿼리안에 넣어줬어
조인으로 하는 방법이랑 서브쿼리를 이용하는 방법으로 해봤는데 딱 봐도 어떤게 편한지 보이지?
여기서 또 하나의 테이블을 만들어봤는데 왜 만들었는지는 좀 있다가 설명해줄께
이거 때문에 테이블을 또 만든거야 똑같은 구조로 테이블을 만들었을 때 서브쿼리를 이용하여 값을 편하게 가져올 수 있다는 장점이 있지 이럴 때는 서브쿼리가 편하게 쓰이겠지
다음은 뷰(view)에 대해서 알아볼꺼야
그냥 간결성을 위해서 사용한다고 보면 될거같아
왼쪽이 member를 실행한 결과, 오른쪽이 vw_member를 실행한 결과야
이렇게 뷰자체가 테이블이라고 봐도 무방하지
조인을 사용해서 뷰에 합쳐진 데이터를 넣을 수도 있어
우리가 지금까지 만든 테이블들을 다이어그램으로 보는거야
member테이블의 기본 키로 되어있는게 보이고
사용자를 추가해보고 권한을 부여하고 해보는 거에 대한 설명이야 끝~
'MySQL' 카테고리의 다른 글
2024년 3월 28일 MySQL-Client (0) | 2024.03.28 |
---|---|
2024년 3월 28일 MySQL-Task (0) | 2024.03.28 |
2024년 3월 26일 MySQL-Grammar (0) | 2024.03.26 |
2024년 3월 25일 MySQL (0) | 2024.03.25 |