欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

SQLite | Select 语句

发布时间:2025/3/15 数据库 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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. CUSTOMER_IDNAMEREGIONSTREET_ADDRESSCITYSTATEZIP
1LITE IndustrialSouthwest729 Ravine WayIrvingTX75014
2Rex Tooling IncSouthwest6129 Collie BlvdDallasTX75201
3Re-Barre ConstructionSouthwest9043 Windy DrIrvingTX75032
4Prairie ConstructionSouthwest264 Long RdMooreOK62104
5Marsh Lane Metal WorksSoutheast9143 Marsh LnAvondaleLA79782

也可以指定选取某几列,如 CUSTOMER_ID, NAME

%sql select CUSTOMER_ID, NAME from CUSTOMER; * sqlite:///DataBase/rexon_metals.db Done. CUSTOMER_IDNAME
1LITE Industrial
2Rex Tooling Inc
3Re-Barre Construction
4Prairie Construction
5Marsh 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. PRODUCT_IDDESCRIPTIONPRICETAXED_PRICE
1Copper7.518.0357
2Aluminum2.582.7606
3Silver1516.05
4Steel12.3113.171700000000001
5Bronze44.28
6Duralumin7.68.132
7Solder14.1615.151200000000001
8Stellite13.3114.241700000000002
9Brass4.755.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. PRODUCT_IDDESCRIPTIONUNTAXED_PRICETAXED_PRICE
1Copper7.518.0357
2Aluminum2.582.7606
3Silver1516.05
4Steel12.3113.171700000000001
5Bronze44.28
6Duralumin7.68.132
7Solder14.1615.151200000000001
8Stellite13.3114.241700000000002
9Brass4.755.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. PRODUCT_IDDESCRIPTIONUNTAXED_PRICETAXED_PRICE
1Copper7.518.04
2Aluminum2.582.76
3Silver1516.05
4Steel12.3113.17
5Bronze44.28
6Duralumin7.68.13
7Solder14.1615.15
8Stellite13.3114.24
9Brass4.755.08
图1 SQLite 内置函数

1.4 文字拼接

表达式不一定只对数字类型的数据起作用,也可以用与文字型(text)或者其他类型的数据。对于文字型数据,一个有用的命令就是 concatenation(联合),可以将两段数据联合到一起。

在 SQLite 中,这个联合操作符为 (||),可以将两边的数据联合到一起;举个例子,可以将 CUSTOMER 表中的 CITY 和 STATE 联合为一个 LOCAYION:

  • Concatenation 对任何的数据类型都适用(numbers, dates,…)
  • 很多数据库平台使用 (||) 来进行拼接,但 MySQL 使用 CONCAT() 函数
%%sql select NAME, CITY ||','|| STATE as LOCATION from CUSTOMER; * sqlite:///DataBase/rexon_metals.db Done. NAMELOCATION
LITE IndustrialIrving,TX
Rex Tooling IncDallas,TX
Re-Barre ConstructionIrving,TX
Prairie ConstructionMoore,OK
Marsh Lane Metal WorksAvondale,LA

也可以将几个 fields 合成为一个单独的 SHIP_ADDRESS (邮件地址):

%%sql select NAME, STREET_ADDRESS || ' ' || CITY || ',' || STATE || ' ' || ZIP as SHIP_ADDRESS from CUSTOMER; * sqlite:///DataBase/rexon_metals.db Done. NAMESHIP_ADDRESS
LITE Industrial729 Ravine Way Irving,TX 75014
Rex Tooling Inc6129 Collie Blvd Dallas,TX 75201
Re-Barre Construction9043 Windy Dr Irving,TX 75032
Prairie Construction264 Long Rd Moore,OK 62104
Marsh Lane Metal Works9143 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 语句的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。