<jupyter_start><jupyter_text>SQL에서 테이블 생성하기---------------------기본적인 SQL질의를 써서 테이블의 값을 찾는 실습 전에 테이블의 **생성** 방법을 알아보자.**NOTE: "dataset_1.db" 파일이 이 노트북과 같은 디렉터리에 있는지 확인하자.**<jupyter_code>%load_ext sql
%sql sqlite:///dataset_1.db<jupyter_output><empty_output><jupyter_text>활동 02a:------------스키마 & 테이블 생성 우리가 불러 온 데이터베이스에는 `precipitation_full`이라는 테이블이 하나 있다. 그리고 그 스키마는 다음과 같다.> * `state_code`> * `station_id`> * `year`> * `month`> * `day`> * `hour`> * `precipitation`> * `flag_1`> * `flag_2`이 테이블의 각 터플은 어떤 장소(`station_id`)에서의 한 시간 동안의 상태값 (`state_code`)과 강우량을(`precipitation`- 100분의 1인치 단위)을 나타낸다. 어떤 터플에`hour=25`이 기록되어 있다면 그것은 그 날의 전체 강우량을 나타낸다. 당장은 `flag_1`과 `flag_2`은 사용하지 않는다. 자, 이제 이미 존재하는 테이블의 **schema**를 확인하는 방법을 알아보자. 여러 다른 방법들이 있지만, 그 중 몇 개의 예를 보자.* DESCRIBE tablename* SHOW CREATE TABLE tablename* SHOW COLUMNS tablename불행하게도 이 명령들이 모든 DBMS에서 가능한 것은 아니고 우리가 IPython 환경에서 쓰고 있는 SQLite에서도 지원을 하지 않아 쓸 수가 없다. 대신 `.schema tablename` 이라는 명령이 있지만 IPython notebook에서는 쓸 수 없다. 여기서 쓸 수 있는 명령은 다음과 같다.<jupyter_code>%sql PRAGMA table_info(precipitation_full);<jupyter_output>* sqlite:///dataset_1.db
Done.<jupyter_text>너무 자세하긴 하지만, 우리가 우리가 원하는 목적은 달성했다!그리고, 이 테이블을 생성할 때 어떤 문장을 썼는지 알려주는 명령이 있다. (**가이드가 있다는 것은 좋은 일이다**):<jupyter_code>%sql SELECT sql FROM sqlite_master WHERE name = 'precipitation_full';<jupyter_output>* sqlite:///dataset_1.db
Done.
{'fraction_non_alphanumeric': 0.142433234421365, 'fraction_numerical': 0.011869436201780416, 'mean_word_length': 4.311023622047244, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '266781', 'license': 'MIT', 'n_tokens_mistral': 892, 'n_tokens_neox': 1075, 'n_words': 180, 'path': 'Day02/DB-WS02a.ipynb', 'repo_name': 'resourceful/lecture_db', 'size': '1348'}