MLOps 개발자 양성과정/mysql
[Day-28]
숲로
2023. 2. 1. 09:54
1) 숫자 데이터 형식
ㆍ DECIMAL 정확한 수치를 저장
UN 부호 없이 사용
2) 문자 데이터 형식
ㆍ CHAR 문자 길이가 고정되어 있을 경우 사용 (일반적으로 더 좋은 성능)
ㆍ VARCHAR 문자 길이 가변적
ㆍ LONGTEXT: 큰 텍스트 파일
ㆍ LONGBLOB: 동영상 파일과 같은 큰 바이너리 파일
3) 날짜 시간 데이터 형식
4) 기타 데이터 형식
ㆍ GEOMETRY: 공간 데이터 형식으로 점, 선,
ㆍ JSON
2. 변수의 사용
1) 변수 선언
SET @변수이름 = 변수의 값; -- 변수 선언 및 값 대입
SELECT @변수이름; --변수 값 출력
USE sqldb;
SET @myVar1 = 5;
SET @myVar2 = 3;
SET @myVar3 = 4.25;
SET @myVar4 = '가수 이름 ==>';
SELECT @myVar1;
SELECT @myVar2 + @myVar3;
SELECT @myVar4, Name FROM usertbl WHERE height > 180;
2) PREPARE EXCUTE
LIMIT는 변수선언이 안돼
PREPARE 쿼리이름 FROM
prepare
excute 할 떄 실행돼
USE sqldb;
SET @myVar1 = 3;
PREPARE myQuery
FROM 'SELECT Name, height FROM usertbl ORDER BY height LIMIT ?';
EXCUTE myQuery USING @myVar1;
3. 데이터 형식과 형 변환
1) CAST() 2) CONVERT()
형식:
CAST (expression AS 테이블 형식 [ (길이) ] )
CONVERT (expression, 데이터형식 [ (길이) ] )
use sqldb;
SELECT AVG(amount) AS '평균 구매 개수' FROM buytbl;
SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS '평균 구매 개수' FROM buytbl;
SELECT CONVERT(AVG(amount), SIGNED INTEGER) AS '평균 구매 개수' FROM buytbl;
3) 암시적 형 변환
SELECT '100' +'200'; -- 문자와 문자 더함(정수로 변환됨)
SELECT CONCAT('100','200'); -- 문자와 문자를 연결(문자로 처리)
SELECT CONCAT(100, '200'); -- 정수와 문자를 연결(정수가 문자로 변환되어 처리)
SELECT 1 > '2mega';
SELECT 3 > '2MEGA';
SELECT 0 = 'mega2'; -- 문자는 0으로 변환
mega
4, 내장 함수
1) 제어 흐름 함수
ㆍ IF(수식, 참, 거짓)
ㆍ IFNULL(수식1, 수식2)
수식1이 NULL이 아니면 수식1 반환, NULL이면 수식2 반환
앞에 있는 것이 NULL인지 아닌지
ㆍ NULLIF(수식1, 수식2)
수식1과 수식2가 같으면 NULL 반환, 다르면 수식1 반환
SELECT IF (100>200, '참이다', '거짓이다');
-- 거짓이다
SELECT IFNULL(NULL, '널이군요'), IFNULL(100, '널이군요');
-- 널이군요 / 100
SELECT NULLIF(100,100), IFNULL(200,100);
-- NULL / 200
ㆍ CASE~ WHEN ~ ELSE ~ END
SELECT CASE 10
WHEN 1 THEN '일'
WHEN 5 THEN '오'
WHEN 10 THEN '십'
ELSE '모름'
END AS 'CASE연습'; -- 출력될 열의 별칭
2) 문자열 함수
ㆍ ASCII(아스키 코드), CHAR(숫자)
ㆍ CONCAT(문자열1, 문자열2,...)
CONCAT_WS(구분자, 문자열1, 문자열2,...)
구분자와 함께 문자열을 이어줌
INNER JOIN
애칭 쓰는게 더 효율적, 직관적으로 이름 볼 수 있어