형변환 함수
dbms에서는 데이터 타입에 대하여 어느정도 자동 형변환을 해준다(숫자,날짜 타입 정도)
1) cast(데이터 as 변환타입[길이])
문자열 데이터를 datetime 데이터로 변환
select cast('2024-09-03' as datetime);
2) convert(데이터, 변환타입[길이])
문자열 데이터를 datetime 데이터로 변환
select convert('2024-09-03', datetime);
if함수
데이터 비교식의 결과가 참이냐 거짓이냐에 따라 조회 결과가 달라지는 함수
if([데이터비교식],[참 데이터],[거짓 데이터])
select if(100>200,'참','거짓');
uauthor가 A이면 관리자 아니면 일반으로 조회
select uid, if(uauthor='A','관리자','일반') from user;
ustate가 E이면 활성화 아니면 비활성화라고 조회
select uid, if(uauthor='A','관리자','일반'),if(ustate='E','활성화','비활성화') from user;
ifnull 함수
조회하는 컬럼 데이터 중 null인 데이터를 다른 데이터로 치환 함수
문법) ifnull([null인지 확인하고자하는 컬럼명],[null인 경우 치환값])
user 테이블에서 id,이름, 연락처 정보를 전부 출력합니다
이때, 연락처가 null이면 연락처 없음 을 출력
select uid,uname,ifnull(uphone,'연락처 없음') as uphone from user;
case...when...else...end
sql에서 사용하는 switch문. 비교하고자 하는 값 만큼 when절 추가
select uid,uname,
case uauthor
when 'A' then '관리자'
when 'U' then '일반회원'
when 'V' then 'VIP회원'
else uauthor
end as uauthor
from user;
length([문자열 데이터]) : 데이터의 길이를 반환(byte단위). 인코딩 타입에 따라 달라질수있음
MySQL은 기본으로 UTF-8코드를 사용하기 때문에 영문은 3byte, 한글을 3x3 = 9byte를 할당
select 'a',length('a'),'가',length('가');
char_length([문자열 데이터]) : 문자열의 문자 갯수를 반환
select 'a',char_length('a'),'가',char_length('가');
concat([문자열1],[문자열2],...) : 문자열 연결 반환
select concat('java','script');
concat_ws([구분자],[문자열1],[문자열2],...)
select concat_ws('-','java','script');
format(숫자,자릿수) : 자릿수 마다 콤마 찍어 반환
select format(1000000,3);
trim(문자열) : 불필요한 공백 제거 반환. 빈도가 높은건 trim()
select ltrim(' java '),rtrim(' java '),trim(' java ');
replace(데이터,대상문자열,치환문자열)
데이터에서 일치하는 대상문자열 모두 치환 문자열로 바꿔 반환
select replace('java를 배워요 java','java','자바');
substring(데이터,시작번호,갯수) : 데이터에서 시작번호부터 갯수만큼의 문자열을 반환(첫번째 문자는 1번)
select substring('java를 배워요',1,3);
개념
1.프로시저
함수,
외부에서 필요한 값을 받아 원하는 데이터를 조회하여 결과를 출력하는 기능,
미리 등록 후 필요시마다 호출하여 사용할 수 있다
2.인덱스
색인, 미리 데이터들의 위치를 저장해두고 필요시 위치를 확인하여 빠르게 검색할 수 있도록 해주는 기능
3.뷰
가상테이블, 여러테이블을 사용하여 데이터를 조회하는 경우 성능이 저하 될 수 있으므로
가상의 테이블로 미리 데이터를 등록 후 사용할 수 있도록 하는 테이블
4.트리거
방아쇠, 특정 쿼리 후 추가로 실행되어야 하는 쿼리가 있는 경우 사용하는 기능
'MySQL' 카테고리의 다른 글
[MySQL] 조인 (0) | 2024.09.06 |
---|---|
[MySQL] 기존 테이블 복사, GROUP BY (4) | 2024.09.05 |
[MySQL] DML 데이터조작어 UPDATE, DELETE (0) | 2024.09.04 |
[MySQL] SELECT문 WHERE BETWEEN, IN(),LIKE, 서브쿼리 (0) | 2024.09.03 |
[MySQL] DML 데이터조작어 SELECT문 (2) | 2024.09.02 |