Search

ํ•จ์ˆ˜

๊ทธ๋ฃน ์ง‘๊ณ„ ํ•จ์ˆ˜

SELECT MAX(Quantity), MIN(Quantity), COUNT(Quantity), SUM(Quantity), AVG(Quantity) FROM OrderDetails WHERE OrderDetailID BETWEEN 20 AND 30;
SQL
๋ณต์‚ฌ
โ€ข
MAX : ๊ฐ€์žฅ ํฐ ๊ฐ’
โ€ข
MIN : ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’
โ€ข
COUNT : ๊ฐฏ์ˆ˜ย (null ์ œ์™ธ)
โ€ข
SUM : ์ดํ•ฉ
โ€ข
AVG : ํ‰๊ท 
โ€ข
SELECT๋ฅผ ์ด์šฉํ•ด ์ปฌ๋Ÿผ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜๋„ ์žˆ๊ณ  HAVING์—์„œ ์กฐ๊ฑด์ ˆ์˜ ์žฌ๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆซ์ž ๊ด€๋ จ ํ•จ์ˆ˜

SELECT ROUND(0.5), CEIL(0.4), FLOOR(0.6); SELECT Price, ROUND(price), CEIL(price), FLOOR(price) FROM Products;
SQL
๋ณต์‚ฌ
โ€ข
ROUND : ๋ฐ˜์˜ฌ๋ฆผ
โ€ข
CEIL : ์˜ฌ๋ฆผ
โ€ข
FLOOR : ๋‚ด๋ฆผ
SELECT ABS(1), ABS(-1), ABS(3 - 10); SELECT * FROM OrderDetails WHERE ABS(Quantity - 10) < 5;
SQL
๋ณต์‚ฌ
โ€ข
ABS : ์ ˆ๋Œ€๊ฐ’
SELECT GREATEST(1, 2, 3), LEAST(1, 2, 3, 4, 5); SELECT OrderDetailID, ProductID, Quantity, GREATEST(OrderDetailID, ProductID, Quantity), LEAST(OrderDetailID, ProductID, Quantity) FROM OrderDetails;
SQL
๋ณต์‚ฌ
โ€ข
GREATEST : () ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’
โ€ข
LEAST : () ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’
SELECT POW(2, 3), POWER(5, 2), SQRT(16); SELECT Price, POW(Price, 1/2) FROM Products WHERE SQRT(Price) < 4;
SQL
๋ณต์‚ฌ
โ€ข
POW(a, b), POWER(a, b) : a๋ฅผ b๋งŒํผ ์ œ๊ณฑ
โ€ข
SQRT : ์ œ๊ณฑ๊ทผ
โ€ข
EXP(n) : e์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ
โ€ข
LOG(n) : ์ž์—ฐ๋กœ๊ทธ
SELECT TRUNCATE(1234.5678, 1), TRUNCATE(1234.5678, 2), TRUNCATE(1234.5678, 3), TRUNCATE(1234.5678, -1), TRUNCATE(1234.5678, -2), TRUNCATE(1234.5678, -3); SELECT Price FROM Products WHERE TRUNCATE(Price, 0) = 12;
SQL
๋ณต์‚ฌ
โ€ข
TRUNCATE(N, n) : N์„ ์†Œ์ˆซ์  n์ž๋ฆฌ๊นŒ์ง€ ์„ ํƒ
โ—ฆ
n์ž๋ฆฌ์— ์–‘์ˆ˜๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์†Œ์ˆ˜์  ์•„๋ž˜๋กœ ์ฃผ์–ด์ง„ ๊ฐ’์˜ ์ž๋ฆฌ๋งŒํผ ๋ฐ˜ํ™˜ํ•œ๋‹ค
โ—ฆ
n์ž๋ฆฌ์— ์Œ์ˆ˜๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์†Œ์ˆ˜์  ์œ„๋กœ ์ฃผ์–ด์ง„ ๊ฐ’์˜ ์ž๋ฆฌ๋งŒํผ ๋‚ด๋ฆผ์ฒ˜๋ฆฌ๋œ ํ›„ ๋ฐ˜ํ™˜ํ•œ๋‹ค
โ—ฆ
n์ž๋ฆฌ์— 0์„ ๋„ฃ์œผ๋ฉด ์†Œ์ˆ˜์ ์„ ๋–ผ๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค
SELECT bin(31), hex(31), oct(31);
SQL
๋ณต์‚ฌ
โ€ข
bin() : 2์ง„์ˆ˜
โ€ข
hex() : 16์ง„์ˆ˜
โ€ข
oct() : 8์ง„์ˆ˜
SELECT ROUND(RAND()*100, 0)
SQL
๋ณต์‚ฌ
โ€ข
ROUND(RAND() * max, min) : min~max ์‚ฌ์ด์˜ ๋žœ๋ค๊ฐ’

๋ฌธ์ž์—ด ๊ด€๋ จ ํ•จ์ˆ˜

SELECT UPPER('abcDEF'), LOWER('abcDEF'); SELECT UCASE(CustomerName), LCASE(ContactName) FROM Customers;
SQL
๋ณต์‚ฌ
โ€ข
UCASE, UPPER : ๋Œ€๋ฌธ์ž๋กœ
โ€ข
LCASE, LOWER : ์†Œ๋ฌธ์ž๋กœ
SELECT CONCAT('HELLO', ' ', 'THIS IS ', 2021) -- HELLO THIS IS 2021 SELECT CONCAT_WS('-', 2021, 8, 15, 'AM') -- 2021-8-15-AM SELECT CONCAT('O-ID: ', OrderID) FROM Orders; SELECT CONCAT_WS(' ', FirstName, LastName) AS FullName FROM Employees;
SQL
๋ณต์‚ฌ
โ€ข
CONCAT(โ€ฆ) : () ์•ˆ์˜ ๋‚ด์šฉ์„ ์ด์–ด๋ถ™์ž„
โ€ข
CONCAT_WS(S, โ€ฆ) : () ์•ˆ์˜ ๋‚ด์šฉ์„ S๋กœ ์ด์–ด๋ถ™์ž„
โ—ฆ
NULL์ด ๋‚ด์šฉ์— ์žˆ์œผ๋ฉด ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.
SELECT SUBSTR('ABCDEFG', 3), -- CDEFG SUBSTR('ABCDEFG', 3, 2), -- CD SUBSTR('ABCDEFG', -4), -- DEFG SUBSTR('ABCDEFG', -4, 2); -- DESELECT LEFT('ABCDEFG', 3), -- ABC RIGHT('ABCDEFG', 3); -- EFG
SQL
๋ณต์‚ฌ
โ€ข
SUBSTR, SUBSTRING(โ€™strโ€™, start, n) : โ€˜strโ€™์—์„œ start์œ„์น˜๋ถ€ํ„ฐ n๋งŒํผ ์ž๋ฅธ๋‹ค
โ—ฆ
start์— ์Œ์ˆ˜๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฉด ๋’ค์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
โ€ข
LEFT, RIGHT(โ€™strโ€™, n) : โ€˜strโ€™์˜ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ n๋งŒํผ ์ž๋ฅธ๋‹ค
SELECT LENGTH('ABCDE'), -- 5 CHAR_LENGTH('ABCDE'), -- 5 CHARACTER_LENGTH('ABCDE'); -- 5SELECT LENGTH('์•ˆ๋…•ํ•˜์„ธ์š”'), -- 15 CHAR_LENGTH('์•ˆ๋…•ํ•˜์„ธ์š”'), -- 5 CHARACTER_LENGTH('์•ˆ๋…•ํ•˜์„ธ์š”'); -- 5
SQL
๋ณต์‚ฌ
โ€ข
LENGTH : ๋ฌธ์ž์—ด ๋ฐ”์ดํŠธ ํฌ๊ธฐ
โ€ข
CHAR_LENGTH, CHARACTER_LENGTH : ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜
โ€ข
BIT_LENGTH : ๋ฌธ์ž์—ด ๋น„ํŠธ ํฌ๊ธฐ
SELECT CONCAT('|', ' HELLO ', '|'), -- | HELLO | CONCAT('|', LTRIM(' HELLO '), '|'), -- |HELLO | CONCAT('|', RTRIM(' HELLO '), '|'), -- | HELLO| CONCAT('|', TRIM(' HELLO '), '|'); -- |HELLO|
SQL
๋ณต์‚ฌ
โ€ข
TRIM : ์–‘์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ
โ€ข
LTRIM : ์™ผ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ
โ€ข
RTRIM : ์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ
SELECT LPAD('ABC', 5, '-'), -- --ABC RPAD('ABC', 5, '-'); -- ABC--
SQL
๋ณต์‚ฌ
โ€ข
LPAD(s, n, p) : s๊ฐ€ n๊ฐœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ์™ผ์ชฝ์— p๋ฅผ ๋ถ™์ธ๋‹ค
โ€ข
RPAD(s, n, p) : s๊ฐ€ n๊ฐœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ์˜ค๋ฅธ์ชฝ์— p๋ฅผ ๋ถ™์ธ๋‹ค
SELECT REPLACE('๋งฅ๋„๋‚ ๋“œ์—์„œ ๋งฅ๋„๋‚ ๋“œ ํ–„๋ฒ„๊ฑฐ๋ฅผ ๋จน์—ˆ๋‹ค.', '๋งฅ๋„๋‚ ๋“œ', '๋ฒ„๊ฑฐํ‚น'); -- ๋ฒ„๊ฑฐํ‚น์—์„œ ๋ฒ„๊ฑฐํ‚น ํ–„๋ฒ„๊ฑฐ๋ฅผ ๋จน์—ˆ๋‹ค.
SQL
๋ณต์‚ฌ
โ€ข
REPLACE(s, a, b) : s์—์„œ a๋ฅผ b๋กœ ์น˜ํ™˜
SELECT INSTR('ABCDE', 'ABC'), -- 1 INSTR('ABCDE', 'BCDE'), -- 2 INSTR('ABCDE', 'C'), -- 3 INSTR('ABCDE', 'DE'), -- 4 INSTR('ABCDE', 'F'); -- 5
SQL
๋ณต์‚ฌ
โ€ข
INSTR(S, s) : S ์ค‘ s์˜ ์ฒซ ์œ„์น˜ ๋ฐ˜ํ™˜ (์—†์œผ๋ฉด 0)
SELECT '01' = '1', -- 0 CONVERT('01', DECIMAL) = CONVERT('1', DECIMAL); -- 1
SQL
๋ณต์‚ฌ
โ€ข
CONVERT(a, t) : a๋ฅผ t ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€ํ™˜
โ€ข
CAST(a AS t)๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โ€ข
t๋กœ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…
โ—ฆ
BINARY
โ—ฆ
DECIMAL, CHAR, NCHAR, SIGNED, UNSIGNED
โ—ฆ
DATE, DATETIME, TIME
โ—ฆ
JSON
SELECT REPEAT('A', 3);
SQL
๋ณต์‚ฌ
โ€ข
REPEAT(s, n) : s๋ฅผ n๋ฒˆ ๋ฐ˜๋ณต
SELECT REVERSE('abcdef');
SQL
๋ณต์‚ฌ
โ€ข
REVERSE(s) : s๋ฅผ ๋’ค์ง‘์–ด ๋ฐ˜ํ™˜
-- MySQL์€ ๋ฐฐ์—ด ์ธ๋ฑ์Šค ์‹œ์ž‘์ด 1์ด๋‹ค. LOCATE('abc', 'ababcDEFabc'); -- 3 LOCATE('abc', 'ababcDEFabc', 4); --9
SQL
๋ณต์‚ฌ
โ€ข
LOCATE(s, t, i) : t์—์„œ s์˜ ์œ„์น˜๋ฅผ i๋ถ€ํ„ฐ ์ฐพ์•„์„œ ๋ฐ˜ํ™˜

์‹œ๊ฐ„/๋‚ ์งœ ๊ด€๋ จ ํ•จ์ˆ˜

SELECT CURDATE(), CURTIME(), NOW();
SQL
๋ณต์‚ฌ
โ€ข
CURRENT_DATE() , CURDATE() : ํ˜„์žฌ ๋‚ ์งœ ๋ฐ˜ํ™˜
โ€ข
CURRENT_TIEM() , CURTIME() : ํ˜„์žฌ ์‹œ๊ฐ„ ๋ฐ˜ํ™˜
โ€ข
CURRENT_TIMESTAMP() , SYSDATE() , NOW() : ํ˜„์žฌ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ ๋ฐ˜ํ™˜
SELECT '2021-6-1' = '2021-06-01', DATE('2021-6-1') = DATE('2021-06-01'), '1:2:3' = '01:02:03', TIME('1:2:3') = TIME('01:02:03');
SQL
๋ณต์‚ฌ
โ€ข
DATE(โ€™yyyy-MM-ddโ€™) : ๋ฌธ์ž์—ด์— ๋”ฐ๋ผ ๋‚ ์งœ ์ƒ์„ฑ
โ€ข
TIME(โ€™hh:mm:ssโ€™) : ๋ฌธ์ž์—ด์— ๋”ฐ๋ผ ์‹œ๊ฐ„ ์ƒ์„ฑ
SELECT OrderDate, YEAR(OrderDate) AS YEAR, MONTHNAME(OrderDate) AS MONTHNAME, MONTH(OrderDate) AS MONTH, WEEKDAY(OrderDate) AS WEEKDAY, DAYNAME(OrderDate) AS DAYNAME, DAY(OrderDate) AS DAY FROM Orders;
SQL
๋ณต์‚ฌ
โ€ข
YEAR : ์ฃผ์–ด์ง„ DATETIME๊ฐ’์˜ ๋…„๋„ ๋ฐ˜ํ™˜
โ€ข
MONTHNAME : ์ฃผ์–ด์ง„ DATETIME๊ฐ’์˜ ์›”(์˜๋ฌธ) ๋ฐ˜ํ™˜
โ€ข
MONTH : ์ฃผ์–ด์ง„ DATETIME๊ฐ’์˜ ์›” ๋ฐ˜ํ™˜
โ€ข
WEEKDAY : ์ฃผ์–ด์ง„ DATETIME๊ฐ’์˜ ์š”์ผ๊ฐ’ ๋ฐ˜ํ™˜ (์›”์š”์ผ : 0)
โ€ข
DAYNAME : ์ฃผ์–ด์ง„ DATETIME๊ฐ’์˜ ์š”์ผ๋ช… ๋ฐ˜ํ™˜
โ€ข
DAYOFMONTH, DAY : ์ฃผ์–ด์ง„ DATETIME๊ฐ’์˜ ๋‚ ์งœ(์ผ) ๋ฐ˜ํ™˜
SELECT HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());
SQL
๋ณต์‚ฌ
โ€ข
HOUR : ์ฃผ์–ด์ง„ DATETIME์˜ ์‹œ ๋ฐ˜ํ™˜
โ€ข
MINUTE : ์ฃผ์–ด์ง„ DATETIME์˜ ๋ถ„ ๋ฐ˜ํ™˜
โ€ข
SECOND : ์ฃผ์–ด์ง„ DATETIME์˜ ์ดˆ ๋ฐ˜ํ™˜
SELECT ADDDATE('2021-06-20', INTERVAL 1 YEAR), ADDDATE('2021-06-20', INTERVAL -2 MONTH), ADDDATE('2021-06-20', INTERVAL 3 WEEK), ADDDATE('2021-06-20', INTERVAL -4 DAY), ADDDATE('2021-06-20', INTERVAL -5 MINUTE), ADDDATE('2021-06-20 13:01:12', INTERVAL 6 SECOND);
SQL
๋ณต์‚ฌ
โ€ข
ADDDATE(โ€™yyyy-MM-ddโ€™,ย INTERVALย nย YEAR) : ์‹œ๊ฐ„/๋‚ ์งœ ๋”ํ•˜๊ธฐ
โ€ข
SUBDATE(โ€™yyyy-MM-ddโ€™,ย INTERVALย nย YEAR) : ์‹œ๊ฐ„/๋‚ ์งœ ๋นผ๊ธฐ
SELECT OrderDate, NOW(), DATEDIFF(OrderDate, NOW()) FROM Orders;
SQL
๋ณต์‚ฌ
โ€ข
DATEDIFF(โ€™yyyy-MM-ddโ€™, โ€˜yyyy-MM-ddโ€™) : ๋‘ ์‹œ๊ฐ„/๋‚ ์งœ ๊ฐ„ ์ผ์ˆ˜์ฐจ
โ€ข
TIMEDIFF(โ€™hh:mm:ssโ€™, โ€˜hh:mm:ssโ€™) : ๋‘ ์‹œ๊ฐ„/๋‚ ์งœ ๊ฐ„ ์‹œ๊ฐ„์ฐจ
SELECT OrderDate, LAST_DAY(OrderDate), DAY(LAST_DAY(OrderDate)), DATEDIFF(LAST_DAY(OrderDate), OrderDate) FROM Orders;
SQL
๋ณต์‚ฌ
โ€ข
LAST_DAY(โ€™yyyy-MM-ddโ€™) : ํ•ด๋‹น ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์งœ
SELECT DATE_FORMAT(NOW(), '%M %D, %Y %T'), DATE_FORMAT(NOW(), '%y-%m-%d %h:%i:%s %p'), DATE_FORMAT(NOW(), '%Y๋…„ %m์›” %d์ผ %p %h์‹œ %i๋ถ„ %s์ดˆ');
SQL
๋ณต์‚ฌ
โ€ข
%Y : ๋…„๋„ 4์ž๋ฆฌ
โ€ข
%y : ๋…„๋„ 2์ž๋ฆฌ
โ€ข
%M : ์›” ์˜๋ฌธ
โ€ข
%m : ์›” ์ˆซ์ž
โ€ข
%D : ์ผ ์˜๋ฌธ(1st, 2nd, 3rd โ€ฆ)
โ€ข
%d, %e : ์ผ ์ˆซ์ž(01~31)
โ€ข
%T : hh:mm:ss
โ€ข
%r : hh:mm:ss AM/PM
โ€ข
%H, %k : ์‹œ(~23)
โ€ข
%h, %l : ์‹œ(~12)
โ€ข
%i : ๋ถ„
โ€ข
%S, %s : ์ดˆ
โ€ข
%p : AM/PM
SELECT DATEDIFF( STR_TO_DATE('2021-06-04 07:48:52', '%Y-%m-%d %T'), STR_TO_DATE('2021-06-01 12:30:05', '%Y-%m-%d %T') ), TIMEDIFF( STR_TO_DATE('2021-06-04 07:48:52', '%Y-%m-%d %T'), STR_TO_DATE('2021-06-01 12:30:05', '%Y-%m-%d %T') );
SQL
๋ณต์‚ฌ
โ€ข
STR_TO_DATE(S, F) : S๋ฅผ Fํ˜•์‹์œผ๋กœ ํ•ด์„ํ•˜์—ฌ ์‹œ๊ฐ„/๋‚ ์งœ ์ƒ์„ฑ

๊ธฐํƒ€ ํ•จ์ˆ˜

SELECT IF (1 > 2, '1๋Š” 2๋ณด๋‹ค ํฌ๋‹ค.', '1์€ 2๋ณด๋‹ค ์ž‘๋‹ค.');
SQL
๋ณต์‚ฌ
โ€ข
IF(์กฐ๊ฑด, T, F) : ์กฐ๊ฑด์ด ์ฐธ์ด๋ผ๋ฉด T, ๊ฑฐ์ง“์ด๋ฉด F ๋ฐ˜ํ™˜
SELECT IFNULL('A', 'B'), IFNULL(NULL, 'B');
SQL
๋ณต์‚ฌ
โ€ข
IFNULL(A, B) : A๊ฐ€ NULL์ด ์•„๋‹ˆ๋ฉด A ๋ฐ˜ํ™˜, NULL์ผ ์‹œ B ๋ฐ˜ํ™˜
SELECT NULLIF('A', 'B');
SQL
๋ณต์‚ฌ
โ€ข
NULLIF(A, B) : A์™€ B๊ฐ€ ๊ฐ™์œผ๋ฉด NULL ๋ฐ˜ํ™˜, ๊ฐ™์ง€ ์•Š์œผ๋ฉด A ๋ฐ˜ํ™˜
SELECT CASE WHEN -1 > 0 THEN '-1์€ ์–‘์ˆ˜๋‹ค.' WHEN -1 = 0 THEN '-1์€ 0์ด๋‹ค.' ELSE '-1์€ ์Œ์ˆ˜๋‹ค.' END;
SQL
๋ณต์‚ฌ
โ€ข
CASE
โ—ฆ
WHEN [์กฐ๊ฑด] THEN [์ฐธ์ผ ๋•Œ ๊ฒฐ๊ณผ]
โ—ฆ
ELSE [๊ฑฐ์ง“์ผ ๋•Œ ๊ฒฐ๊ณผ]
โ€ข
END