1. 정수형 자료형
SIGNED(기본)과 UNSIGNED 옵션을 가질 수 있음.
전자는 양수/음수를 후자는 양수를 저장함.
또한 정수형 자료형은 Auto_increment 제약조건을 이용하여 ID를 생성하는데 유용
2. 실수형 자료형
이진법으로 데이터를 저장하는 컴퓨터 특성상 소수점의 정확한 저장이 어렵다.
이를 부동소수점이라함.
저장이 효율적이지만 어느정도 정확도를 제한하겠다 --> 부동소수점
저장이 비효율적이지만 정확도를 추구하겠다 -->고정소수점
위부터 float, double, decimal 자료형
3. 문자 자료형
정규표현식
- 문자열에서 특정 패턴을 찾기 위한 강력한 도구
- 자연어 처리를 할 수 있는 제일 간단한 도구
- REGEXP_LIKE() : 주어진 문자열이 정규표현식과 일치하는지 여부를 반환
- REGEXP : 문자열이 정규표현식과 일치하는지 확인
SELECT 'hello world' REGEXP '^hello';
-- 결과: 1 (참)
자료형 변환
cast 함수 : 데이터를 지정된 자료로 변환, 표준 SQL 문법
# 문법
CAST(expression as target_type)
#예시
CAST(123 AS CHAR)
convert 함수 : 데이터를 다른 자료형으로 변환하거나 인코딩을 변경, cast와 유사
#문법
CONVERT(expression, target_type)
#예시
CONVERT(123 CHAR)
#참고
문자형에도 순서가 있음.
order by 같은 문법에도 문자순 정렬이 가능함.
JSON 문자형
json ?
키 - 쌍 구조를 이루는 자료형, Python의 dict와 유사
빠른 조회보다 데이터 저장에 중심을 둠.
어플리케이션을 통한 데이터 처리, DB에는 단순 저장
-- json 테이블
CREATE TABLE jsontable (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(45) NULL,
jsoncol JSON NULL,
PRIMARY KEY (id)
);
-- json 값 넣기
INSERT INTO jsontable(name, jsoncol) VALUES ("json_string", '{"a": "A", "b":"B"}');
-- json 조회 select id, name, jsoncol FROM jsontable;
-- json 특정 키 조회 select id, name, json_extract(jsoncol, '$.a') FROM jsontable;
4. 외부에서 데이터 불러오기
- 방법1) 외부 데이터 베이스 연결
- 주소, ID, PW만 안다면 연결가능
- 장점: ERD등 데이터 스키마정보 그대로 사용 가능
- 단점: 서버의 주소를 알아야함. 권한 제한되어있을 수 있음. 서버 비용필요
- 방법2) 외부 파일 import
- preview 로 데이터불러오는거 확인
- 적절한 자료형인지 확인. 특히 숫자형이 문자형으로 되어있지 않은지
- 인코딩 확인하기
- 인코딩이란?
- 데이터를 특정 형식으로 변환하는 과정일 일컫음
- ASCII → UTF-8 / euc-kr
- 데이터를 특정 형식으로 변환하는 과정일 일컫음
- 데이터베이스 인코딩 설정
- preview 로 데이터불러오는거 확인
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
테이블 생성시 인코딩 설정
CREATE TABLE mytable (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
'TIL > SQL' 카테고리의 다른 글
프로그래머스| 우유와 요거트가 담긴 장바구니(My SQL) (0) | 2024.07.31 |
---|---|
프로그래머스| 헤비 유저가 소유한 장소(My SQL) (0) | 2024.07.31 |
SQL<DDL, DML, 확장자> (1) | 2024.07.23 |
TIL (7/19) <날짜 차이 구하기 datediff()> (0) | 2024.07.19 |
TIL (7/17) <if문, 임시테이블> (0) | 2024.07.17 |