4-2 에는 SQL의 주력 함수들을 배웠고 4-3에는 SQL에서의 Data type을 배웠다.
숫자
C와 같이 bit, tiny int, small int, int ( interger), big int, float, double 등이 있었다.
차지하는 메모리도 거의 유사하다.
SQL에는 숫자 타입에 Bool 타입이 들어가 있었다.
말 그대로 True, False가 레코드에 들어가는 것이 아닌
tinyint(1)을 지정하여 1은 True, 0은 False 이런식으로 해서 사용한다고 한다.
boolean 타입을 지원하는 DB도 있지만 지원하지 않는 DB도 존재하기에
쿼리 간 호환성을 높이기 위해서 tinyint(1)으로 boolean 타입을 사용한다.
그리고 boolean 타입을 지원하는 mysql 같은 경우에 실제 작동은 tinyint(1) 로 한다고 한다.
문자
비주류, 비선호 타입은 제외한다.
크게 3가지 종류가 있다.
char // 고정된 길이의 문자열
varchar // 변동 가능한 길이의 문자열, 길이의 상한 정할 수 있음
text // 변동 가능한 길이의 문자열, Mb 단위에서 Gb 단위까지 저장이 가능하다.
varchar는 비교적 짧은, 길이의 상한이 정해져 있는 문자열, 형식이 정해져 있는 문자열을 받을 때 용이하다.
예를들어 이메일 주소라던지, 비밀번호, 이름처럼 들어오는 문자열의 길이가 매번 자유분방하지 않고
얼추 형식이 정해져 있으며, 몇개 이상, 이하 사용이 정해져 있는 문자열들에 사용하면 좋겠다.
text는 말 그대로 text. 이런 블로그의 글이라던지, 책, 뉴스처럼 입력받는 문자열의 길이가 varchar의 예시들에 비해 엄~~청나게 긴 문자열들을 저장하기 위해 사용한다.
이진
https://arin-nya.tistory.com/25
Json에 관해 무지했기에 Json 자체에 대한 가벼운 요약이다.
https://arin-nya.tistory.com/24
배열
Json_array // 입력을 Json 배열로 반환 // Json_array를 사용하지 않고 ', " 구분으로도 할 수 있는데 번거롭고 헷갈리니 그냥 함수 쓰자.
Json_type // Json data의 type을 반환
2차원 배열과 인덱싱 또한 가능하다.
인덱싱 예시 // Json_extract( Json_object , '$[index]')
Key - Value
python의 dict와 거의 유사하고 python에 json 내장 모듈이 존재한다.
Json_object(key1, value1, key2, value2, ...)
와 같은 방식으로 key -value 형태의 json 타입을 만든다.
Json_extract(Json_object , '$.key')
python의 dict를 조작할 때 get을 사용하여 key를 통해 value를 출력하듯이
SQL에서는 Json_extract를 사용한다.
Key-value로 이루어진 json object에서 조회, 인덱싱을 하려면 $.key를
단순 배열이라면 '$[index]' 로 사용하면 되겠다.
2차원 배열일 땐 '$[out_list_index][inner_list_index]' 로 사용하면 된다.
Key-value 쌍의 value가 key-value 쌍이고 이것의 value가 2차원 배열인것도 가능하다.
{
"key1": {
"key1_1": [
[0, 1],
[2, 3]
]
}
}
이런 식으로도 json object가 만들어 질 수 있고
만약 위의 2차원 배열에 접근하는 예시를 들면
Josn_extract(A, '$.key 1.key 1-1[0][0])
으로 2차원 배열의 첫번째 행, 첫번째 열에 접근할 수 있다.
'프로그래머스 > 데이터분석 데브코스' 카테고리의 다른 글
프로그래머스 데이터분석 데브코스 4-5 (0) | 2024.03.08 |
---|---|
프로그래머스 데이터분석 데브코스 4-4 (0) | 2024.03.07 |
프로그래머스 데이터분석 데브코스 4-2 (0) | 2024.03.05 |
프로그래머스 데이터분석 데브코스 4-1 (0) | 2024.03.04 |
데이터분석 데브코스 3 일차 (0) | 2024.02.23 |