import sqlite3
import pandas as pd
from sqlFrameCheck import checkAnsQuery
from test_queries.test_queries_01 import extract_test_queries as etq
conn_twelection = sqlite3.connect('twelection.db')
sqlite_master
表格中選擇 type
與 name
這兩個欄位暸解 twelection.db
中有哪些表格¶ans_query = """
SELECT type,
name
FROM sqlite_master;
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
type | name | |
---|---|---|
0 | table | presidential2016 |
1 | table | presidential2020 |
caq = checkAnsQuery(etq('0101'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!
PRAGMA
指令與 TABLE_INFO()
函式暸解 presidential2020
中有哪些欄位¶ans_query = """
PRAGMA TABLE_INFO(presidential2020);
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
cid | name | type | notnull | dflt_value | pk | |
---|---|---|---|---|---|---|
0 | 0 | county | TEXT | 0 | None | 0 |
1 | 1 | town | TEXT | 0 | None | 0 |
2 | 2 | village | TEXT | 0 | None | 0 |
3 | 3 | office | INTEGER | 0 | None | 0 |
4 | 4 | number | INTEGER | 0 | None | 0 |
5 | 5 | candidates | TEXT | 0 | None | 0 |
6 | 6 | votes | INTEGER | 0 | None | 0 |
caq = checkAnsQuery(etq('0102'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!
SELECT *
將 presidential2020
中有哪些資料都查詢出來¶ans_query = """
SELECT *
FROM presidential2020;
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
county | town | village | office | number | candidates | votes | |
---|---|---|---|---|---|---|---|
0 | 南投縣 | 中寮鄉 | 中寮村 | 366 | 1 | 宋楚瑜/余湘 | 18 |
1 | 南投縣 | 中寮鄉 | 中寮村 | 366 | 2 | 韓國瑜/張善政 | 217 |
2 | 南投縣 | 中寮鄉 | 中寮村 | 366 | 3 | 蔡英文/賴清德 | 208 |
3 | 南投縣 | 中寮鄉 | 內城村 | 373 | 1 | 宋楚瑜/余湘 | 17 |
4 | 南投縣 | 中寮鄉 | 內城村 | 373 | 2 | 韓國瑜/張善政 | 141 |
... | ... | ... | ... | ... | ... | ... | ... |
51673 | 高雄市 | 鼓山區 | 龍水里 | 1268 | 2 | 韓國瑜/張善政 | 477 |
51674 | 高雄市 | 鼓山區 | 龍水里 | 1268 | 3 | 蔡英文/賴清德 | 647 |
51675 | 高雄市 | 鼓山區 | 龍水里 | 1269 | 1 | 宋楚瑜/余湘 | 39 |
51676 | 高雄市 | 鼓山區 | 龍水里 | 1269 | 2 | 韓國瑜/張善政 | 520 |
51677 | 高雄市 | 鼓山區 | 龍水里 | 1269 | 3 | 蔡英文/賴清德 | 673 |
51678 rows × 7 columns
caq = checkAnsQuery(etq('0103'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!
SELECT
將 presidential2020
表格中的 county
、town
與 village
三個欄位選擇出來¶ans_query = """
SELECT county,
town,
village
FROM presidential2020;
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
county | town | village | |
---|---|---|---|
0 | 南投縣 | 中寮鄉 | 中寮村 |
1 | 南投縣 | 中寮鄉 | 中寮村 |
2 | 南投縣 | 中寮鄉 | 中寮村 |
3 | 南投縣 | 中寮鄉 | 內城村 |
4 | 南投縣 | 中寮鄉 | 內城村 |
... | ... | ... | ... |
51673 | 高雄市 | 鼓山區 | 龍水里 |
51674 | 高雄市 | 鼓山區 | 龍水里 |
51675 | 高雄市 | 鼓山區 | 龍水里 |
51676 | 高雄市 | 鼓山區 | 龍水里 |
51677 | 高雄市 | 鼓山區 | 龍水里 |
51678 rows × 3 columns
caq = checkAnsQuery(etq('0104'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!
DISTINCT
檢視 presidential2020
表格中的 candidates
有幾組候選人參選¶ans_query = """
SELECT DISTINCT candidates
FROM presidential2020;
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
candidates | |
---|---|
0 | 宋楚瑜/余湘 |
1 | 韓國瑜/張善政 |
2 | 蔡英文/賴清德 |
caq = checkAnsQuery(etq('0105'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!
DISTINCT
檢視 presidential2016
表格中的 candidates
有幾組候選人參選¶ans_query = """
SELECT DISTINCT candidates
FROM presidential2016;
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
candidates | |
---|---|
0 | 朱立倫/王如玄 |
1 | 蔡英文/陳建仁 |
2 | 宋楚瑜/徐欣瑩 |
caq = checkAnsQuery(etq('0106'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!
LIMIT
檢視 presidential2020
表格中的前 10 個觀測值¶ans_query = """
SELECT *
FROM presidential2020
LIMIT 10;
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
county | town | village | office | number | candidates | votes | |
---|---|---|---|---|---|---|---|
0 | 南投縣 | 中寮鄉 | 中寮村 | 366 | 1 | 宋楚瑜/余湘 | 18 |
1 | 南投縣 | 中寮鄉 | 中寮村 | 366 | 2 | 韓國瑜/張善政 | 217 |
2 | 南投縣 | 中寮鄉 | 中寮村 | 366 | 3 | 蔡英文/賴清德 | 208 |
3 | 南投縣 | 中寮鄉 | 內城村 | 373 | 1 | 宋楚瑜/余湘 | 17 |
4 | 南投縣 | 中寮鄉 | 內城村 | 373 | 2 | 韓國瑜/張善政 | 141 |
5 | 南投縣 | 中寮鄉 | 內城村 | 373 | 3 | 蔡英文/賴清德 | 139 |
6 | 南投縣 | 中寮鄉 | 八仙村 | 358 | 1 | 宋楚瑜/余湘 | 13 |
7 | 南投縣 | 中寮鄉 | 八仙村 | 358 | 2 | 韓國瑜/張善政 | 111 |
8 | 南投縣 | 中寮鄉 | 八仙村 | 358 | 3 | 蔡英文/賴清德 | 119 |
9 | 南投縣 | 中寮鄉 | 八仙村 | 359 | 1 | 宋楚瑜/余湘 | 8 |
caq = checkAnsQuery(etq('0107'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!
DISTINCT
檢視 presidential2020
表格中的 county
有幾個縣市,並以 AS
將 county
命名為 distinct_counties
¶ans_query = """
SELECT DISTINCT county AS distinct_counties
FROM presidential2020;
"""
# 試跑看看結果
pd.read_sql(ans_query, conn_twelection)
distinct_counties | |
---|---|
0 | 南投縣 |
1 | 嘉義市 |
2 | 嘉義縣 |
3 | 基隆市 |
4 | 宜蘭縣 |
5 | 屏東縣 |
6 | 彰化縣 |
7 | 新北市 |
8 | 新竹市 |
9 | 新竹縣 |
10 | 桃園市 |
11 | 澎湖縣 |
12 | 臺中市 |
13 | 臺北市 |
14 | 臺南市 |
15 | 臺東縣 |
16 | 花蓮縣 |
17 | 苗栗縣 |
18 | 連江縣 |
19 | 金門縣 |
20 | 雲林縣 |
21 | 高雄市 |
caq = checkAnsQuery(etq('0108'), ans_query, conn_twelection)
caq.run_test()
測資比對正確!