데이터타입 및 변수

원래벌레·2022년 10월 18일
0
post-custom-banner

🌞 데이터 타입

  • INT, INTEGER 정수

  • FLOAT 소수점 아래 7자리까지 표현

  • DOUBLE REAL 소수점 아래 15자리까지 표현

  • DECIMAL(m,[d]) 전체 자릿수(m)와 이하 자릿수(d)를 가진 숫자형
    NUMERIC(m.[d])

  • CHAR(n) 고정길이 문자형, n을 1부터 255까지 지정, 그냥 CHAR만 쓰면 CHAR(1)과 동일

  • VARCHAR(n) 가변길이 문자형, n을 사용하면 1부터 65535까지 지정


🌼 CHAR vs VARCHAR

CHAR는 고정길이 문자형으로 자릿수가 고정되어 있다. 그에 비해 VARCHAR는 가변길이 문자형이다. 이로인해서 VARCHAR는 효율적으로 공간을 운영이 가능하다. CHAR의 경우에는 INSERT나 UPDATE시 성능이 좋다.


🌼 BLOB

사진파일, 동영상파일, 문서파일 등의 대용량 이진 데이터를 저장하는 데 사용된다.


🌼 날짜와 시간 데이터 형식

  • DATE : YYYY-MM-DD 날짜만 표시
  • DATETIME : YYYY-MM-DD HH:MM:SS 시간까지 표시
  • TIEM : 시간만 표시

🌞 변수의 사용

  • 변수 선언 및 대입
set @myVar1 = 5;
set @myVar2 = 3;
set @myVar3 = 4.25;
set @myVar4 = '가수 이름==>';
  • 변수의 값 출력
SELECT @myVar1;
SELECT @myVar2 + @myVar2;
SELECT @myVar4, name
FROM userTbl
WHERE height > 180;

결과 : 5, 6, 가수이름==> name(height > 180)

  • LIMIT 에는 원칙적으로 변수를 사용할 수 없음

    • LIMIT는 LIMIT 3과 같이 직접 숫자를 넣어야 함
    • LIMIT @변수 형식을 사용하면 오류 발생
  • PREPARE 쿼리명 FROM '쿼리문'

    • 쿼리명에 쿼리문을 준비만 해놓고 실행하지 않음
  • EXECUTE 쿼리명 USING @변수

    • 쿼리명의 쿼리명에서 ?로 처리한 부분에 @변수를 대입하여 처리
SET @myVAR1 = 3;

PREPARE myQuery
FROM 'SELECT Name, height FROM userTbl ORDER BY height LIMIT ?';

EXECUTE myQuery USING @myVar1;

🌞 데이터 형식과 형 변환

  • 데이터 형식 변환 함수
    • CAST( ), CONVERT( ) 함수를 가장 일반적으로 사용
  • 데이터 형식중에서 가능한 것
    • BINARY, CHAR, DATE, DATETIME, DECIMAL, JSON, SIGNED INTEGER, TIME, UNSIGNED INTEGER
  • 함수 사용법
CAST ( expression AS 데이터형식 [ (길이) ] )
CONVERT ( expression, 데이터형식 [ (길이) ] )
  • ex
바꾸기전
SELECT AVG(amount) AS '평균 구매 개수'
FROM buyTbl;
결과 : 2.9167

바꾼 후
SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS '평균 구매 개수'
FROM buyTbl;
결과 3

SELECT CONVERT(AVG(amount) AS SIGNED INTEGER) AS SIGNED '평균 구매 개수'
FROM buyTbl;
  • ex2
    SELECT CAST('2020$12$12' AS DATE);
    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 '단가*수량',
              price*amount AS '구매액'
       FROM buyTbl;
    • 결과

🌼 암시적인 형변환

  • CAST( ) 나 CONVERT() 함수를 사용하지 않고 형이 변환 되는 것


profile
학습한 내용을 담은 블로그 입니다.
post-custom-banner

0개의 댓글