출처| https://www.youtube.com/watch?v=UVY0mfa4VP0&list=PLqTUMsvO70nk8WfCyU-IPmc85390CaSqM&index=1
https://cafe.naver.com/thisisMySQL
https://velog.io/@ong_hh/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B5%AC%EC%B6%95
USE sqldb;
SET @myVar1 = 5;
SET @myVar2 = 10;
SET @myVar3 = 15;
SET @myVar4 = '가수 이름 ==> ';
SELECT @myVar1;
SELECT @myVar2 + @myVar3;
SELECT @myVar4, Name FROM usertbl WHERE height > 180;
SET @myvar1 = 3;
PREPARE myQuery
FROM 'SELECT Name, height FROM usertbl ORDER BY height LIMIT ?';
EXECUTE myQuery USING @myVar1;
[형식]
CAST ( expression AS 데이터형식 [ (길이) ] )
CONVERT ( expression , 데이터형식 [ (길이) ] )
[예시]
USE sqldb;
SELECT AVG(amount) AS '평균 구매 개수' FROM buytbl;
정수로 보기 위해서 변환함.
[변환 완료]
1. SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS '평균 구매 개수' FROM buytbl;
2. SELECT CONVERT(AVG(amount), SIGNED INTEGER) AS '평균 구매 개수' FROM buytbl;
SELECT CAST('2020$12$12' AS DATE);
SELECT CAST('2020/12/12' AS DATE);
쿼리문을 보기 좋게 처리할 대도 단가와 수량을 곱한 실제 입금액을 표시하는 쿼리는 다음과 같이 표현 가능하다.
SELECT num, CONCAT(CAST(price AS CHAR(10)), 'X', CAST(amount AS CHAR(4)), '=') AS '단가x수량', price*amount AS '구매액'
FROM buytbl;
SELECT IF(100>200, '참이다', '거짓이다');
-> 거짓이 출력된다.
SELECT IFNULL(NULL,'별이군요'), IFNULL(100,'낼이군요');
연산자
로 분류된다. 다중 분기에 사용될 수 있으므로 내장 함수와 알아두면좋다.SELECT CASE 10
WHEN 1 THEN '일'
WHEN 5 THEN '오'
WHEN 10 THEN '십'
ELSE '모름'
END AS 'CASE 연습'
---> 십 출력
SELECT ASCII('A'), CHAR(65);
-->65와 'A'를 돌려준다.
SELECT CONCAT_WS('/', '2025'. '01', '01');
--> 2025/01/01 반환
SELECT ADDDATE('2025-01-01', INTERVAL 31 DAY), ADDDATE('2025-01-01', INTERVAL 1 MONTH);
--> 31일후 또는 한달 후인 2025-02-01 출력
SELECT SUBDATE('2025-01-01', INTERVAL, 31 DAY), SUBDATE('2025-01-01', INTERVAL, 1 MONTH);
--> 한달 전인 2024-12-01 반환한다.
SELECT YEAR(CURDATE()), MONTH(CURDATE()), DAYOFMONTH(CURDATE());