设为首页 加入收藏

TOP

SQLite入门之四表的增删?查 (四)
2015-07-24 11:58:01 来源: 作者: 【 】 浏览:30
Tags:SQLite 入门 增删
uston 10000.0 3 Teddy 23 Norway 20000.0 6 Kim 22 South-Hall 45000.0 // sqlite> SELECT * FROM COMPANY WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000); ID NAME AGE ADDRESS SALARY 1 Paul 32 California 20000.0 sqlite> SELECT * FROM COMPANY WHERE AGE < (SELECT AGE FROM COMPANY WHERE SALARY > 65000); ID NAME AGE ADDRESS SALARY 7 James 24 Houston 10000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 6 Kim 22 South-Hall 45000.0

4.6.4 排序、分组、去重、时间

//通过内置函数查看一共有多少条数据
sqlite> SELECT COUNT(*) AS "RECORDS" FROM COMPANY;
RECORDS
7

//显示前4条
sqlite> SELECT * FROM COMPANY LIMIT 4;
ID  NAME    AGE ADDRESS SALARY
1   Paul    32  California  20000.0
7   James   24  Houston 10000.0
2   Allen   25  Texas   15000.0
3   Teddy   23  Norway  20000.0


//按SALARY降序排序
sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC;
ID  NAME    AGE ADDRESS SALARY
7   James   24  Houston 10000.0
2   Allen   25  Texas   15000.0
1   Paul    32  California  20000.0
3   Teddy   23  Norway  20000.0
6   Kim 22  South-Hall  45000.0
4   Mark    25  Rich-Mond   65000.0
5   David   27  Texas   85000.0

//按SALARY升序排序
sqlite> SELECT * FROM COMPANY ORDER BY SALARY DESC;
ID  NAME    AGE ADDRESS SALARY
5   David   27  Texas   85000.0
4   Mark    25  Rich-Mond   65000.0
6   Kim 22  South-Hall  45000.0
1   Paul    32  California  20000.0
3   Teddy   23  Norway  20000.0
2   Allen   25  Texas   15000.0
7   James   24  Houston 10000.0

//按NAME和SALARY升序排序
sqlite> SELECT * FROM COMPANY ORDER BY AGE,SALARY DESC;
ID  NAME    AGE ADDRESS SALARY
6   Kim 22  South-Hall  45000.0
3   Teddy   23  Norway  20000.0
7   James   24  Houston 10000.0
4   Mark    25  Rich-Mond   65000.0
2   Allen   25  Texas   15000.0
5   David   27  Texas   85000.0
1   Paul    32  California  20000.0

// GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。

// 查询某个人的工资总数
sqlite>  SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;
NAME    SUM(SALARY)
Allen   15000.0
David   85000.0
James   10000.0
Kim 45000.0
Mark    65000.0
Paul    20000.0
Teddy   20000.0

// GROUP BY 和 ORDER BY一起用
sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;
NAME    SUM(SALARY)
Teddy   20000.0
Paul    20000.0
Mark    65000.0
Kim 45000.0
James   10000.0
David   85000.0
Allen   15000.0

//HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。

//WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。

//在一个查询中,HAVING 子句必须放在 GROUP BY 子句之后,必须放在 ORDER BY 子句之前


//查询所有数据
qlite> SELECT * FROM COMPANY;
ID  NAME    AGE ADDRESS SALARY
1   Paul    32  California  20000.0
7   James   24  Houston 10000.0
2   Allen   25  Texas   15000.0
3   Teddy   23  Norway  20000.0
4   Mark    25  Rich-Mond   65000.0
5   David   27  Texas   85000.0
6   Kim 22  South-Hall  45000.0

//查询AGE,并去重
sqlite> SELECT DISTINCT AGE FROM COMPANY;
AGE
32
24
25
23
27
22

日期 & 时间

//把header关掉了
sqlite> . header off
sqlite> SELECT date('now');
2014-02-27

sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06

sqlite> SELECT TIME('NOW');
07:47:25?

4.6.5. 常用函数

//表行数
sqlite> SELECT count(*) FROM COMPANY;
7

//最大值
sqlite> SELECT max(salary) FROM COMPANY;
85000.0

//最小值 
sqlite> SELECT min(salary) FROM COMPANY;
10000.0

//平均值
sqlite> SELECT avg(salary) FROM COMPANY;
37142.8571428572
sqlite> SELECT sum(salary) FROM COMPANY;
260000.0

//转大写
sqlite> SELECT upper(name) FROM COMPANY;
PAUL
JAMES
ALLEN
TEDDY
MARK
DAVID
KIM

//转小写
sqlite> SELECT lower(name) FROM COMPANY;
paul
james
allen
teddy
mark
david
kim

//长度
sqlite> SELECT name, length(name) FR
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇alittleriakbook 下一篇lscpu,lspci,lsblk,lsscsi命令

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解智能指针? (2025-12-24 12:48:26)
·c++是否应避免使用普 (2025-12-24 12:48:23)
·如何通俗易懂学会 C+ (2025-12-24 12:48:21)
·在 C 语言函数中,如 (2025-12-24 12:19:41)
·C盘里面的AppData文 (2025-12-24 12:19:38)