1. 형변환
묵시적 형변환: 조건절의 데이터 타입이 다를 때 우선순위가 높은 타입으로 형이 내부적으로 변환
명시적 형변환: 형 변환 함수를 사용하는 경우
형 변환 우선순위: -정수 타입 > 문자 타입 |
2. 주요 명령어:
DECIMAL(M, N): 최대 문자열 자릿수 M, 소수점 지정 N
CONVERT INTO: (변환할 데이터타입, 원하는 열).
VARCHAR와 NVARCHAR의 차이: NVARCHAR는 유니코드로 표기하며 용량(바이트)을 기존보다 2배 차지한다.
3. 유니코드 표기법의 중요성:
나라별(언어별) OS가 다르기 때문에 오류없이 불러오고 읽기 위해 필요(균일한 표기법)
테이블 생성:
CREATE TABLE doit_implict(
NUM INT,
COL1 INT,
COL2 INT,
COL3 DECIMAL (8,2), --최대문자열, 소수점 지정
COL4 NVARCHAR(50)
)
INSERT INTO doit_implict VALUES(1, 10, 3, 3.0, 3)
INSERT INTO doit_implict VALUES(2, 10, 3, 3.0, '3')
INSERT INTO doit_implict VALUES(3, 10, 3, 3.0, N'문자열') --N문자열:유니코드
암시적 형변환:
SELECT * FROM doit_implict
SELECT COL1/COL2 FROM doit_implict --정수 출력(버림)
SELECT COL1/COL3 FROM doit_implict --소수 출력(DECIMAL)
SELECT COL1/COL4 FROM doit_implict WHERE NUM = 1
SELECT COL1/COL4 FROM doit_implict WHERE NUM = 2 --문자열 숫자도 연산
SELECT COL1/COL4 FROM doit_implict WHERE NUM = 3 --오류 발생
형변환(문자열-숫자 변경 불가)
SELECT CONVERT (INT, COL4) FROM doit_implict WHERE NUM = 1
SELECT CONVERT (INT, COL4) FROM doit_implict WHERE NUM = 2
SELECT CONVERT (INT, COL4) FROM doit_implict WHERE NUM = 3 --변경할 수없는 데이터타입
SELECT * FROM doit_implict WHERE NUM = '1'
SELECT * FROM doit_implict WHERE COL3 = '3.0'
SELECT * FROM doit_implict WHERE COL3 = '3'
SELECT * FROM doit_implict WHERE COL3 = 3 --상위 데이터로 변환
'SQL > SQL 기본' 카테고리의 다른 글
SQL기본(7): 서브쿼리 (0) | 2023.08.26 |
---|---|
SQL기본(6): JOIN(INNER, OUTER, CROSS) (0) | 2023.08.22 |
SQL 기본(4): 테이블 생성과 제약 조건, 임시 테이블 개념 (0) | 2023.08.18 |
SQL 기본(3): ORDER BY, GROUP BY (0) | 2023.08.17 |
SQL 기본(2): 와일드 카드(문법 간 조합 가능) (0) | 2023.08.17 |