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μ΄κ° μ§λμ μ κ° λ³΄μ¬μ'