SQLite | Select 语句
文章目錄
- 1. Select
- 1.1 SELECT
- 1.2 alias
- 1.3 內置函數
- 1.4 文字拼接
- 參考資料
1. Select
本文將使用 rexon_metals.db 數據庫,其中包含了 CUSTOMER,CUSTOMER_ORDER 以及 PRODUCT 三張表。
-
使用Jupyter Notebook 運行 SQL 語句需安裝 ipython-sql
-
%sql 以及 %%sql 為在 Notebook 中運行 SQL 語句,在 SQLite 命令行或 SQLite Stiduo 中不需要 %sql 或 %%sql
載入 SQL 以及連接 SQLite:
%load_ext sql %sql sqlite:///DataBase/rexon_metals.db 'Connected: @DataBase/rexon_metals.db'1.1 SELECT
使用 * 選取 CUSTOMER 表中的所有列:
%sql select * from CUSTOMER; * sqlite:///DataBase/rexon_metals.db Done.| 1 | LITE Industrial | Southwest | 729 Ravine Way | Irving | TX | 75014 |
| 2 | Rex Tooling Inc | Southwest | 6129 Collie Blvd | Dallas | TX | 75201 |
| 3 | Re-Barre Construction | Southwest | 9043 Windy Dr | Irving | TX | 75032 |
| 4 | Prairie Construction | Southwest | 264 Long Rd | Moore | OK | 62104 |
| 5 | Marsh Lane Metal Works | Southeast | 9143 Marsh Ln | Avondale | LA | 79782 |
也可以指定選取某幾列,如 CUSTOMER_ID, NAME
%sql select CUSTOMER_ID, NAME from CUSTOMER; * sqlite:///DataBase/rexon_metals.db Done.| 1 | LITE Industrial |
| 2 | Rex Tooling Inc |
| 3 | Re-Barre Construction |
| 4 | Prairie Construction |
| 5 | Marsh Lane Metal Works |
1.2 alias
SELECT 不僅可以簡單的選取某幾列數據,還可以對它們進行運算,如利用 PRODUCT 表中的 PRICE 計算相應的稅后價格 TAXED_PRICE:
%%sql select PRODUCT_ID, DESCRIPTION, PRICE, PRICE * 1.07 as TAXED_PRICE from PRODUCT; * sqlite:///DataBase/rexon_metals.db Done.| 1 | Copper | 7.51 | 8.0357 |
| 2 | Aluminum | 2.58 | 2.7606 |
| 3 | Silver | 15 | 16.05 |
| 4 | Steel | 12.31 | 13.171700000000001 |
| 5 | Bronze | 4 | 4.28 |
| 6 | Duralumin | 7.6 | 8.132 |
| 7 | Solder | 14.16 | 15.151200000000001 |
| 8 | Stellite | 13.31 | 14.241700000000002 |
| 9 | Brass | 4.75 | 5.0825000000000005 |
- 當在 SQL 中對任何東西賦予變量名時(不論是alias, a column name, a table name 或者其他 entity),都應該使用下劃線 (_) 作為占位符,如果使用空格的話,將會出現錯誤。
我們可以使用 別名(alias)對表達式賦予名字,也可以在查詢中用 alias 做為已存在的列的列名。比如將 UNTAXED_PRICE 作為 PRICE 的 alias,但這并不會改變表中的列名,而是在執行 SELECT 語句時賦予了一個新的名字:
%%sql select PRODUCT_ID, DESCRIPTION, PRICE AS UNTAXED_PRICE, PRICE * 1.07 as TAXED_PRICE from PRODUCT; * sqlite:///DataBase/rexon_metals.db Done.| 1 | Copper | 7.51 | 8.0357 |
| 2 | Aluminum | 2.58 | 2.7606 |
| 3 | Silver | 15 | 16.05 |
| 4 | Steel | 12.31 | 13.171700000000001 |
| 5 | Bronze | 4 | 4.28 |
| 6 | Duralumin | 7.6 | 8.132 |
| 7 | Solder | 14.16 | 15.151200000000001 |
| 8 | Stellite | 13.31 | 14.241700000000002 |
| 9 | Brass | 4.75 | 5.0825000000000005 |
1.3 內置函數
每一個數據庫平臺都有內置函數(built-in-functions),SQLite 提供了 round() 函數來對數據進行四舍五入,如將 TAXED_PRICE 保留兩位小數:
%%sql select PRODUCT_ID, DESCRIPTION, PRICE AS UNTAXED_PRICE, round(PRICE * 1.07, 2) as TAXED_PRICE from PRODUCT; * sqlite:///DataBase/rexon_metals.db Done.| 1 | Copper | 7.51 | 8.04 |
| 2 | Aluminum | 2.58 | 2.76 |
| 3 | Silver | 15 | 16.05 |
| 4 | Steel | 12.31 | 13.17 |
| 5 | Bronze | 4 | 4.28 |
| 6 | Duralumin | 7.6 | 8.13 |
| 7 | Solder | 14.16 | 15.15 |
| 8 | Stellite | 13.31 | 14.24 |
| 9 | Brass | 4.75 | 5.08 |
1.4 文字拼接
表達式不一定只對數字類型的數據起作用,也可以用與文字型(text)或者其他類型的數據。對于文字型數據,一個有用的命令就是 concatenation(聯合),可以將兩段數據聯合到一起。
在 SQLite 中,這個聯合操作符為 (||),可以將兩邊的數據聯合到一起;舉個例子,可以將 CUSTOMER 表中的 CITY 和 STATE 聯合為一個 LOCAYION:
- Concatenation 對任何的數據類型都適用(numbers, dates,…)
- 很多數據庫平臺使用 (||) 來進行拼接,但 MySQL 使用 CONCAT() 函數
| LITE Industrial | Irving,TX |
| Rex Tooling Inc | Dallas,TX |
| Re-Barre Construction | Irving,TX |
| Prairie Construction | Moore,OK |
| Marsh Lane Metal Works | Avondale,LA |
也可以將幾個 fields 合成為一個單獨的 SHIP_ADDRESS (郵件地址):
%%sql select NAME, STREET_ADDRESS || ' ' || CITY || ',' || STATE || ' ' || ZIP as SHIP_ADDRESS from CUSTOMER; * sqlite:///DataBase/rexon_metals.db Done.| LITE Industrial | 729 Ravine Way Irving,TX 75014 |
| Rex Tooling Inc | 6129 Collie Blvd Dallas,TX 75201 |
| Re-Barre Construction | 9043 Windy Dr Irving,TX 75032 |
| Prairie Construction | 264 Long Rd Moore,OK 62104 |
| Marsh Lane Metal Works | 9143 Marsh Ln Avondale,LA 79782 |
參考資料
[1] Thomas Nield.Getting Started with SQL[M].US: O’Reilly, 2016: 19-28
相關文章:
SQL | 目錄
SQLite | SQLite 與 Pandas 比較篇之一
SQLite | Select 語句
SQLite | Where 子句
SQLite | Group by 與 Order by 子句
SQLite | CASE 子句
SQLite | Join 語句
SQLite | 數據庫設計與 Creat Table 語句
SQLite | Insert、Delete、Updata 與 Drop 語句
總結
以上是生活随笔為你收集整理的SQLite | Select 语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像处理之轮廓属性
- 下一篇: Adobe illustrator 图