나람지의 개발일기
D+24)22.10.28 본문
< join 추가 문제 >
=> 부서가 같으면 같은 정보가 출력됨
< inner join 과 outer join >
<join 추가 문법>
● inner join : 내부조인, 조인조건을 만족하는 행만 반환한다.
● outer join : 외부조인, 조인조건을 만족하는 행과 만족하지 않는 행까지 반환한다.
● 종류 : left outer join, rigth outer join
● full outer join : 오른쪽, 왼쪽 모든 행을 다 출력하고 싶을 때 사용
※ MySQL에서는 full outer join을 지원하지 않는다.
※ shopdb 선택 후 작업
- inner join 예제
- left outer join 예제
- right outer join 예제
< 추가 예제 >
< 단일 행 함수 - 문자함수 >
함수란?
: 인수를 받아서 정해진 조작을 한 다음 반드시 하나의 결과를 반환함.
● from절을 생략할 수 없는데 뭐라도 적어야될 때 dual을 사용함.
● MySQL은 접근해야할 테이블이없는 경우 select절만 작성가능.
● ascii(문자) : 문자의 아스키코드값 반환함.
● char(숫자) : 숫자의 아스키코드값 반환함.
※ 출력 결과에 BLOB로 표시되는 경우(Workbench의 버그) 오른쪽 마우스 클릭 후 [Open Value in Viewer] 선택 후 [Text] 탭에 들어가면 정상적인 출력 결과를 확인할 수 있음.
● length(문자열) : 문자열의 byte 수
● bit_length(문자열) : 문자열에 할당된 bit 크기
● char_length(문자열) : 문자의 개수
→ ~자로 표시하기로 했다면 char
→ byte로 표시하로 했다면 length
< concat과 concat_ws >
● concat (문자열1, 문자열2, ...) : 문자열을 연결해 주는 함수
● concat_ws (구분자, 문자열1, 문자열2, ...) : 구분자와 함께 문자열을 연결해 주는 함수
→ 각 컬럼마다 공백을 붙이는 것은 성능면에서 떨어지므로
concat_ws를 사용하여 맨 앞에 공백을 넣어주면 성능이 좋아지고 가독성도 좋아짐!
→ 문자열 사이에 ' / '를 사용해 구분하기 쉽게 만들어 준다!
< INSTR >
● 기존 문자열에서 부분 문자열의 시작 위치값을 반환해 주는 함수
→ last_name을 출력한 다음, last_name에서 a의 첫번째 위치값을 반환해달라는 의미
※ 'De Hann'인 경우 공백도 포함하여 위치값 반환 => 따라서, a는 5번째에 위치
< UPPER와 LOWER >
● UPPER(문자열) : 문자열을 대문자로 변환해 주는 함수
● LOWER(문자열) : 문자열을 소문자로 변환해 주는 함수
< LEFT와 RIGHT >
● LEFT(문자열, 길이) : 왼쪽에서 문자열의 길이만큼 반환해 주는 함수
● RIGHT(문자열, 길이) : 오른쪽에서 문자열의 길이만큼 반환해 주는 함수
< LPAD와 RPAD >
● LPAD(문자열, 길이, 채울 문자)
: 문자열을 길이만큼 늘린 후 빈곳을 왼쪽부터 채울 문자로 채워주는 함수, 오른쪽 정렬 함수
● RPAD(문자열, 길이, 채울 문자)
: 문자열을 길이만큼 늘린 후 빈곳을 오른쪽부터 채울 문자 로 채워주는 함수, 왼쪽 정렬 함수
< LTRIM과 RTRIM >
● LTRIM(문자열) : 문자열의 왼쪽 공백을 제거해 주는 함수
● RTIM(문자열) : 문자열의 오른쪽 공백을 제거해 주는 함수
※ 중간 공백은 제거되지 않음.
< TRIM >
● TRIM(문자열) : 문자열의 앞/뒤 공백을 제거해 주는 함수
● TRIM(방향 자를 문자열 FROM 문자열) : 방향 : (leading(앞), trailing(뒤), both(양쪽))
문자열로부터 해당 방향의 자를 문자열을 제거해주는 함수
< REPLACE >
● REPLACE(문자열, 기존문자열, 바꿀문자열) : 문자열에 기존 문자열을 바꿀 문자열로 교체해주는 함수
'학원 > DB' 카테고리의 다른 글
2023.03.08 (0) | 2023.03.08 |
---|---|
D+19)22.10.21 (0) | 2022.10.22 |
D+18)22.10.20 (0) | 2022.10.20 |
D+6)2022.09.29 (0) | 2022.09.29 |
D+5)22.09.28 (0) | 2022.09.28 |