์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์ฝํ
- JS
- ๋ช ๋ น์ด
- select
- ๋ฆฌ๋ ์ค
- ์ปจํธ๋กค๋ฌ
- JSP
- order by
- MySQL
- ํจ์
- ์ธ๋ผ์ธ๋ทฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋์ปค
- ๋ฐฐ์ด
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋์
- ๋ฐฑํฑ
- oracle
- ๋์ ํ ์ด๋ธ
- like
- optionํ๊ทธ
- SQL
- ๋ณ์
- Ajax
- Update
- ํ ์ด๋ธ
- DATE_FORMAT
- JavaScript
- Spring
- post๋ฐฉ์
- Today
- Total
bom's happy life
MariaDB ๋ฐ์ดํฐ ํ์ ๋ณธ๋ฌธ
<MariaDB์์ ์ง์ํ๋ ๋ฐ์ดํฐ ํ์์ ์ข ๋ฅ>
.
.
์ซ์ ๋ฐ์ดํฐ ํ์(์์ฃผ์ฌ์ฉํ๋ ๊ฒ ์์ฃผ)
๋ฐ์ดํฐํ์ | ๋ฐ์ดํธ ์ | ์ซ์๋ฒ์ | ์ค๋ช |
BIT | N/8 | 1~64bit๋ฅผ ํํ | |
INT(=INTEGER) | 4 | ์ฝ -21์ต~+21์ต | ์ ์ |
DOUBLE(=REAL) | 8 | -1.22E-308~1.79E+308 | ์์์ ์๋ 15์๋ฆฌ๊น์ง ํํ |
์ซ์ ๋ฐ์ดํฐ ํ์
–์ ์, ์ค์ ๋ฑ์ ์ซ์
–DECIMAL ๋ฐ์ดํฐ ํ์ : ์ ํํ ์์น ์ ์ฅ, ์์์ ์ด ๋ค์ด๊ฐ ์ค์ ์ ์ฅ
–FLOAT, REAL(=DOUBLE) : ๊ทผ์ฌ์น์ ์ซ์ ์ ์ฅ, ์๋นํ ํฐ ์ซ์๋ฅผ ์ ์ฅํ ์ ์๋ ์ฅ์
–๋ถํธ ์๋ ์ ์๋ฅผ ์ง์ ํ ๋๋ UNSIGNED ์์ฝ์ด ์ฌ์ฉ
.
.
๋ฌธ์ ๋ฐ์ดํฐ ํ์(์์ฃผ ์ฌ์ฉํ๋ ๊ฒ ์์ฃผ)
๋ฐ์ดํฐ ํ์ | ๋ฐ์ดํธ ์ | ์ค๋ช |
CHAR(n) | 1~255 | ๊ณ ์ ๊ธธ์ด ๋ฌธ์ํ. n์ 1๋ถํฐ 255๊น์ง ์ง์ . |
VARCHAR(n) | 1~65535 | ๊ฐ๋ณ๊ธธ์ด ๋ฌธ์ํ.n์ ์ฌ์ฉํ๋ฉด 1๋ถํฐ 65535๊น์ง ์ง์ . VARCAHRํ์ ์ฌ์ฉํ๋ฉด ์ฉ๋์ ์ค์ฌ์ค. |
SET(๊ฐ๋ค...) | 1,2,3,4,8 | ์ต๋ 64๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ฐ |
CHAR ํ์
– ๊ณ ์ ๊ธธ์ด ๋ฌธ์ํ (์๋ฆฟ์ ๊ณ ์ )
– Ex) CHAR(100)์ ‘ABC’ 3๊ธ์ ์ ์ฅ
» 100์๋ฆฌ๋ฅผ ๋ชจ๋ ํ๋ณดํ ํ ์์ 3์๋ฆฌ ์ฌ์ฉํ ๊ณ ๋ค์ 97์๋ฆฌ๋ ๋ญ๋น
– INSERT/UPDATE ์ ์ผ๋ฐ์ ์ผ๋ก ๋ ์ข์ ์ฑ๋ฅ
VARCHAR ํ์
– ๊ฐ๋ณ๊ธธ์ด ๋ฌธ์ํ์ผ๋ก VARCHAR(100)์ ‘ABC’ 3๊ธ์๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ์ 3์๋ฆฌ๋ง ์ฌ์ฉ
SET
– ์ต๋ 64๊ฐ๋ฅผ ์ค๋นํ ํ์ ์ ๋ ฅ์ ๊ทธ ์ค์์ 2๊ฐ์ฉ ์ธํธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
.
.
๋ ์ง์ ์๊ฐ ๋ฐ์ดํฐ ํ์(์์ฃผ์ฌ์ฉํ๋ ๊ฒ ์์ฃผ)
๋ฐ์ดํฐ ํ์ | ๋ฐ์ดํธ ์ | ์ค๋ช |
DATE | 3 | ๋ ์ง๋ 1001-01-01~9999-12-31๊น์ง ์ ์ฅ๋๋ฉฐ ๋ ์ง ํ์๋ง ์ฌ์ฉ. 'YYYY-MM-DD'ํ์์ผ๋ก ์ฌ์ฉ๋จ. |
TIMESTAMP | 4 | ๋ ์ง๋ 1001-01-01 00:00:00~9999-12-31 23:59:59๊น์ง ์ ์ฅ๋๋ฉฐ ํ์์ 'YYYY-MM-DD HH:MM:SS' ํ์์ผ๋ก ์ฌ์ฉ. time_zone์์คํ ๋ณ์์ ๊ด๋ จ์ด ์์ผ๋ฉฐ UTC์๊ฐ๋๋ก ๋ณํํ์ฌ ์ ์ฅ(์ธ๋ถ์์ ๊ฐ์ ธ์ด) |
.
.
๋ณ์ ์ฌ์ฉ 1
ํ๋ก์์ ๋ ํจ์ ์์์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด DECLARE๋ฌธ ํ์
- @๋ณ์๋ช ํ์์ด ์๋ ๋ณ์๋ช ๋ง ์ฌ์ฉ
SET @๋ณ์์ด๋ฆ = ๋ณ์์ ๊ฐ; -- ๋ณ์์ ์ ์ธ ๋ฐ ๊ฐ ๋์
SELECT @๋ณ์์ด๋ฆ ; -- ๋ณ์์ ๊ฐ ์ถ๋ ฅ
๋ณ์ ์ง์ ํ๊ธฐ ์ค์ตํด๋ณด๊ธฐ (๋์๋ฌธ์ ๊ตฌ๋ถ ํน๋ณํ ํ์ง ์๋๋ค.)
USE sqldb;
SET @MyVAR1 = 5; -- ์๋ฃํ์ ๊ธฐ์
ํ์ง ์์๋ ์๋์ผ๋ก int๊ฐ ๋ค์ด๊ฐ๋ค.
SET @MyVAR2 = 3;
SET @MyVAR3 = 4.25;
SET @MyVAR4 = '๊ฐ์ ์ด๋ฆ ==> ';
SELECT @MyVAR1;
SELECT @MyVAR2 + @MyVAR3;
SELECT @MyVAR4, userName FROM usertbl WHERE height > 180;
๋ณ์ ์ฌ์ฉ 2
LIMIT ๋ฌธ ์ฌ์ฉ์ ๋ณ์ ์ง์
- ?๋ EXECUTE ๋ฌธ์ ๋ง๋๋ฉด์ ์คํ๊ณผ ์ฒ๋ฆฌ
USE sqldb;
SET @myVar1 = 3; -- myVar1๋ณ์์ 3 ๋ฃ๊ธฐ
PREPARE myQuery
FROM 'select userName, height from userTBL order by
height limit ?'; -- ?๋ 3
EXECUTE myQuery USING @myVar1; -- ์ฒ๋ฆฌ๊ตฌ๋ฌธ ํธ์ถ
.
.
๋ฐ์ดํฐ ํ์๊ณผ ํ๋ณํ
CAST( )
CONVERT( ) - ๊ฑฐ์ ๋น์ทํ ๊ธฐ๋ฅ
CAST ( expression AS ๋ฐ์ดํฐํ์ [ (๊ธธ์ด) ] )
CONVERT ( expression, ๋ฐ์ดํฐํ์ [ (๊ธธ์ด) ] )
๋ฐ์ฌ๋ฆผํ ์ ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์
USE sqldb;
SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS 'ํ๊ท ๊ตฌ๋งค ๊ฐ์' FROM buytbl;
SELECT convert(AVG(amount) AS SIGNED INTEGER) AS 'ํ๊ท ๊ตฌ๋งค ๊ฐ์' FROM buytbl;
.
.
์ ์ด ํ๋ฆ ํจ์ - ํ๋ก๊ทธ๋จ ํ๋ฆ ์ ์ด
IF(์์,์ฐธ,๊ฑฐ์ง)
- ์์์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ 2์ค ๋ถ๊ธฐ
- SELECT IF(100>200, '์ฐธ์ด๋ค', '๊ฑฐ์ง์ด๋ค'); -- ์ผํญ์ฐ์ฐ
IFNULL(์์1, ์์2)
-์์1์ด NULL์ด ์๋๋ฉด ์์1 ๋ฐํ
-์์1์ด NULL ์ด๋ฉด ์์2 ๋ฐํ
-SELECT IFNULL(NULL, '๋์ด๊ตฐ์'), IFNULL(100,'๋์ด๊ตฐ์');
-์ฒซ ๋ฒ์งธ '๋์ด๊ตฐ์' ์ถ๋ ฅ, ๋ ๋ฒ์งธ๋ 100 ์ถ๋ ฅ
.
.
<๋ฌธ์์ด ํจ์ - ๋ฌธ์์ด์ ์กฐ์ํจ>
CONCAT(๋ฌธ์์ด1, ๋ฌธ์์ด2, ...), (CONCAT_WS(๊ตฌ๋ถ์, ๋ฌธ์์ด1, ๋ฌธ์์ด2,...)
- ๋ฌธ์์ด์ ์ด์ด์ค
- CONCAT_WS( )๋ ๊ตฌ๋ถ์ ํฌํจ ๋ฌธ์์ด์ ์ด์ด์ค
.
.
INSERT(๊ธฐ์ค ๋ฌธ์์ด, ์์น, ๊ธธ์ด, ์ฝ์ ํ ๋ฌธ์์ด)
- ๊ธฐ์ค ๋ฌธ์์ด์ ์์น๋ถํฐ ๊ธธ์ด๋งํผ์ ์ง์ฐ๊ณ ์ฝ์ ํ ๋ฌธ์์ด์ ๋ผ์ ๋ฃ์
ex)
SELECT INSERT('kangeunhee', 5, 3, 'joung')
.
.
TRIM(๋ฌธ์์ด), TRIM(๋ฐฉํฅ ์๋ฅผ ๋ฌธ์์ด FROM ๋ฌธ์์ด)
- ๋ฌธ์์ด์ ์๋ค ๊ณต๋ฐฑ์ ๋ชจ๋ ์์ฐ
ex)
SELECT TRIM(' EUNHEE ');
.
.
REPEAT(๋ฌธ์์ด, ํ์)
-๋ฌธ์์ด์ ํ์๋งํผ ๋ฐ๋ณต
REPLACE(๋ฌธ์์ด, ์๋ ๋ฌธ์์ด, ๋ฐ๊ฟ ๋ฌธ์์ด)
-๋ฌธ์์ด์์ ์๋ ๋ฌธ์์ด์ ์ฐพ์์ ๋ฐ๊ฟ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ค
REVERSE(๋ฌธ์์ด)
-๋ฌธ์์ด์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก
ex)
SELECT REPEAT('bom', 2) -->์คํ๊ฒฐ๊ณผ : bom bom
SELECT REPLACE('kim bom', 'bom', 'hong'); -->์คํ๊ฒฐ๊ณผ : kim hong
SELECT REVERSE('bom'); -->์คํ๊ฒฐ๊ณผ : mob
.
.
SPACE(๊ธธ์ด)
-๊ธธ์ด ๋งํผ์ ๊ณต๋ฐฑ ๋ฐํ
SUBSTRING(๋ฌธ์์ด, ์์์์น, ๊ธธ์ด) ๋๋ SUBSTRING(๋ฌธ์์ด FROM ์์์์น FOR ๊ธธ์ด)
-์์ ์์น๋ถํฐ ๊ธธ์ด๋งํผ ๋ฌธ์ ๋ฐํ
SUBSTRING_INDEX(๋ฌธ์์ด, ๊ตฌ๋ถ์, ํ์)
-๋ฌธ์์ด์์ ๊ตฌ๋ถ์๊ฐ ์ผ์ชฝ๋ถํฐ ํ์ ๋ฒ์งธ ๋์ค๋ฉด ๊ทธ ์ดํ์ ์ค๋ฅธ์ชฝ์ ๋ฒ๋ฆผ. ํ์๊ฐ ์์๋ฉด ์ค๋ฅธ์ชฝ๋ถํฐ ์ธ๊ณ ์ผ์ชฝ์ ๋ฒ๋ฆผ
ex)
SELECT SPACE(5); -->์คํ๊ฒฐ๊ณผ : SPACE(5)
SELECT SUBSTRING('kimbom', 4, 3) ; -->์คํ๊ฒฐ๊ณผ : bom
SELECT SUBSTRING_INDEX('kimbom', 'm', 1); -->์คํ๊ฒฐ๊ณผ : kimbo
.
.
<์ํ ํจ์>
ABS(์ซ์)
- ์ซ์์ ์ ๋๊ฐ ๊ณ์ฐ : ์๋ฅผ ๋ค๋ฉด ์์๊ฐ์ ์ ๋ ฅํด๋ ์์์ ์ ์๋ ๋ณํ์์ผ์ฃผ๋ ์ .
ex)
SELECT ABS(-5) -->์คํ๊ฒฐ๊ณผ : 5
.
.
CEILING(์ซ์) = CEIL( )
-์ฌ๋ฆผ : ์์ซ์ ๋ฐ์ฌ๋ฆผ
FLOOR(์ซ์)
- ๋ด๋ฆผ : ์์ซ์ ๋ฌด์กฐ๊ฑด ๋ฒ๋ฆผ
ROUND(์ซ์)
- ๋ฐ์ฌ๋ฆผ : ์์ซ์ ์ด 5~9์ผ๋ ๋ฐ์ฌ๋ฆผ
ex)
SELECT CEILING(3.5), FLOOR(3.5), ROUND(3.5);
.
.
MOD(์ซ์1, ์ซ์2) ๋๋ ์ซ์1 % ์ซ์2 ๋๋ ์ซ์1 MOD ์ซ์2
- ์ซ์1์ ์ซ์2๋ก ๋๋ ๋๋จธ์ง ๊ฐ
ex)
SELECT MOD(5, 2);
SELECT 5 % 2 ;
SELECT 5 MOD 2 ;
.
.
POW(์ซ์1, ์ซ์2), SQRT(์ซ์) = POWER( )
- ์ ๊ณฑ๊ทผ
ex)
SELECT POW(2,4);
SELECT SQRT(9);
.
.
RAND( )
- ๋๋ค์ซ์
- 0 <= x < 1
- 0์ด์ 1๋ฏธ๋ง์ ์ค์๋ฅผ ๊ตฌํจ
- ๋ง์ฝ, ‘m<= ์์์ ์ ์ < n’๋ฅผ ๊ตฌํ๊ณ ์ถ๋ค๋ฉด FLOOR(m + (RAND( ) * (n-m) )์ ์ฌ์ฉ!
select FLOOR(1 + (RAND() * (10-1) )); -- ์ธ์๋๋ฉด ํธํ๋ค
.
.
.
<๋ ์ง ๋ฐ ์๊ฐ ํจ์>
CURDATE( )
- ํ์ฌ ์ฐ-์-์ผ
SELECT CURDATE() -->์คํ๊ฒฐ๊ณผ : 2022-12-30
.
.
DATEDIFF(๋ ์ง1, ๋ ์ง2)
TIMEDIFF(๋ ์ง1 ๋๋ ์๊ฐ1, ๋ ์ง1 ๋๋ ์๊ฐ2)
DAYOFWEEK(๋ ์ง)
.
.
LAST_DAY(๋ ์ง)
-์ฃผ์ด์ง ๋ ์ง์ ๋ง์ง๋ง ๋ ์ง ๊ตฌํจ
-์ฃผ๋ก ๊ทธ ๋ฌ์ด ๋ช ์ผ๊น์ง ์๋์ง ํ์ผํ ๋ ์ฌ์ฉ
SELECT LAST_DAY('2020-05-01');
.
.
MAKEDATE(์ฐ๋, ์ ์)
- ์ฐ๋์์ ์ ์๋งํผ ์ง๋ ๋ ์ง ๊ตฌํจ
SELECT MAKEDATE(2020, 32);
.
.
.
<์์คํ ์ ๋ณด ํจ์>
USER( ), DATEBASE( )
- ํ์ฌ ์ฌ์ฉ์ ๋ฐ ํ์ฌ ์ ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
SELECT CURRENT_USER(), DATABASE();
.
.
SLEEP(์ด)
-์ฟผ๋ฆฌ์ ์คํ์ ์ ๊น ๋ฉ์ถค(๋๋ ์ด)
SELECT SLEEP(5);
SELECT '์ง ~ 5์ด๊ฐ ์ง๋์ ์ ๊ฐ ๋ณด์ฌ์'
'Deveolpment Study๐๏ธ > Databases' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SELECT๋ฌธ์ ํ์๊ณผ ์ฌ์ฉ๋ฒ (0) | 2023.02.22 |
---|---|
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ ํ์ฉ (0) | 2023.02.22 |
๋ฐ์ดํฐ ์ฝ์ (INSERT) (0) | 2023.02.22 |
oracle -> mariaDB ๋ฌธ๋ฒ๋ณํ ์ฌ์ดํธ (0) | 2023.02.03 |
DB์์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ ์ฝ๋์ฐธ๊ณ (0) | 2022.06.17 |