TIL/SQL

SQL <자료형, 외부에서 데이터 불러오기>

jojoon2786 2024. 7. 23. 22:04

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
    • 데이터베이스 인코딩 설정
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;