{DAY8} SQLite基础语法

前言

今天要开始练习SQLite基本的语法
介绍内容有

  1. SELECT 从资料库中选取特定资料
  2. 数值运算
  3. 文字运算

这里使用到的资料是Kaggle上关於Spotify音乐榜单的资料库
kaggle

基础语法 SQL

先来看SQL查询资料的基本形式,

接下来几天会详细介绍要怎麽从资料库中利用这些语法找出指定资料

SELECT query
SELECT column, another_column, …
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC
LIMIT num_limit OFFSET num_offset;

要注意的是SQL需要按照上述的写作顺序排!

先来看一段例子

1. SELECT & FROM

SELECT *
 FROM top50
 LIMIT 5;


来解释每个语法的意思

  • select 选取的栏位
  • from 『从』哪个资料表查询资料
  • limit 限定显示的资料列数
    • 资料表的「所有」栏位(方便查看栏位)
  • ; 表示一段SQL的结束

因此这段话的意思就是从top50这张资料表上选择所有栏位的资料
但是限制显示的资料列数在第5列

保留字大小写不会影响执行结果的对错。
写作一段 SQL 可以单行或者换行并搭配缩排。

  • 若想指定多个栏位,就用逗号 , 将多个栏位名称隔开
SELECT trackname, artistname, genre
  FROM top50
 LIMIT 5;


可以看到只会出现想要的三个栏位的数据

2.AS

用来改变变数名称,使用AS为查询结果中的变数取别名:
先来看原本的栏位变数名称的样子

现在来改变变数名称
假如想让Trackname跟Artistname分别变成
track_name, artist_name
可以输入下列式子

SELECT Trackname AS track_name,  --AS後面接的是变数的别名
       Artistname AS artist_name,
       
  FROM top50
 LIMIT 5;


输出的会是选择的栏位,并且显示改变过後的栏位变数名称
要注意的是只会改变在查询後显示的结果,并不会改变到原始资料表中的栏位名称

3. DISTINCT

使用 DISTINCT 省略查询结果中重复的资料

  • 原本出现很多的重复资料,使用DISTINCT之後只会显示独一值

先看原本Genre栏位里,资料原本的样子

SELECT genre
  FROM top50
  LIMIT 14;  


可以看到资料里会出现重复的
此时使用DISTICT会只让该栏位的独一值出现
可以用来查看总共有多少种音乐类型
记得将选出的新栏位用AS取新的名称

SELECT DISTINCT genre AS ditinct_genre
  FROM top50;


从输出的结果可以看出所有的资料类型分成21种

数值运算

运用数值运算将BPM跟Energy相加

假如现在想利用两个数值相加来判断歌曲

SELECT BPM,
       energy,
       BPM + energy AS evaluation
  FROM top50
 LIMIT 10;


可以看到新增的evalutaion栏位,是由左边两栏的数值相加而成

文字运算

针对文字(TEXT)可以使用文字运算符计算衍生栏位

假设现在想将Trackname和Artistname两个栏位的文字合并
并且取名新的栏位名称singer_record

基础文字运算符

使用 ||:两个垂直线能够连接文字。

SELECT Trackname,
       Artistname,
       Trackname|| ' ' || Artistname AS singer_record
  FROM top50
 LIMIT 10;


可以看到两个栏位的文字成功的合并在一起

小结

今天的练习就到这里~
明天会有更进阶的查询语法介绍


<<:  [Day8]-元组(tuple)

>>:  Day 20 什麽是「长尾关键字」?

Day3_网页建置流程

制作网站大致分为四个阶段 1. 蒐集资料,规划网站架构 相信大家都知道,执行一个计划前都必须要有规划...

会员管理网站实作篇 - (以律师谘询平台为例子) part 2

大纲 sitemap 架构 安装 Ultimate Member plugin UM三大表单 实作律...

Day 20 真真假假的 Instance doubles

该文章同步发布於:我的部落格 昨天有提到会稍微介绍一下 allow method,其实在昨天的范例...

[Re:PixiJS - Day45] 不同时期的学习 PixiJS 的过程与真完赛心得

来到这系列的最後一篇,除了心得结语外,也讨论的学习 PixiJS 的过程 时期1:不考虑效能,这时期...

上场,就是要放手一博 - 认清自己的特质与优势

我们先看看以下这些知名的团队运动的状况: 在棒球的规则中,各国一军日常可以登录25-29名球员,约在...