나람지의 개발일기

D+24)22.10.28 본문

학원/DB

D+24)22.10.28

Naramji 2022. 10. 28. 14:40

 

< 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 >

lower 와 upper 구문

 

1)  소문자와 대문자로 문자열 변환

 

2) L-name은 대문자, job은 소문자, e-mail은 소문자로 변환

 

3) last_name은 대문자, job_id는 소문자로 변환

 

●  UPPER(문자열) : 문자열을 대문자로 변환해 주는 함수

●  LOWER(문자열) : 문자열을 소문자로 변환해 주는 함수

 

 

< LEFT와 RIGHT >

1)  왼쪽에서부터 3글자 반환 / 오른쪽에서부터 3글자 반환
2) last_name에서 왼쪽 2글자, 오른쪽에서 2글자 출력

●  LEFT(문자열, 길이)  :  왼쪽에서 문자열의 길이만큼 반환해 주는 함수

●  RIGHT(문자열, 길이) : 오른쪽에서 문자열의 길이만큼 반환해 주는 함수

 

< LPAD와 RPAD >

1)  LPAD : #을 왼쪽부터 입력 / RPAD : #을 오른쪽부터 입력
2)  last_name에서 왼쪽부터 20칸만큼 '_'(언더바) 로 채우고 컬럼명을 'L-name'으로 변경

●  LPAD(문자열, 길이, 채울 문자) 

:  문자열을 길이만큼 늘린 후 빈곳을 왼쪽부터 채울 문자로 채워주는 함수, 오른쪽 정렬 함수

 

●  RPAD(문자열, 길이, 채울 문자) 

:  문자열을 길이만큼 늘린 후 빈곳을 오른쪽부터 채울 문자 로 채워주는 함수, 왼쪽 정렬 함수

 

 

< LTRIM과 RTRIM >

'SQL문법'이라는 문자열 왼쪽의 공백 제거 / 오른쪽 공백 제거

●  LTRIM(문자열)  :  문자열의 왼쪽 공백을 제거해 주는 함수

●  RTIM(문자열)  :  문자열의 오른쪽 공백을 제거해 주는 함수

※ 중간 공백은 제거되지 않음.

 

 

 

< TRIM >

'SQL문법'이라는 문자열의 양쪽 공백 제거

●  TRIM(문자열)  :  문자열의 앞/뒤 공백을 제거해 주는 함수

●  TRIM(방향  자를 문자열  FROM  문자열)  :  방향 : (leading(앞),  trailing(뒤),  both(양쪽))

                                                                          문자열로부터 해당 방향의 자를 문자열을 제거해주는 함수

 

 

< REPLACE >

phone_number문자열에서 ' . '을 ' _ '로 교체한다.

●  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