SQLite数据库

目录

时间函数

1,时间查询函数菜鸟教程

 2,实例:

计算当年 10 月的第一个星期二的日期:

常用函数

数字函数

字符函数

实例:

sqlite_version 函数

 Autoincrement(自动递增)

子查询

select

form

exist

in(包括多行多列子查询)

Having

集合链接查询

并集

Unions 子句(去重)

UNION ALL 子句(不去重)

交集

INTERSECT

差集(minus不能使用)


 


时间函数

1,时间查询函数菜鸟教程

序号函数实例
1date(timestring, modifier, modifier, ...)以 YYYY-MM-DD 格式返回日期。
2time(timestring, modifier, modifier, ...)以 HH:MM:SS 格式返回时间。
3datetime(timestring, modifier, modifier, ...)以 YYYY-MM-DD HH:MM:SS 格式返回。
4julianday(timestring, modifier, modifier, ...)这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。
5strftime(format, timestring, modifier, modifier, ...)这将根据第一个参数指定的格式字符串返回格式化的日期。具体格式见下边讲解。
  1. date(timestring, modifier, modifier, ...)以 YYYY-MM-DD 格式返回日期。
  2. time(timestring, modifier, modifier, ...)以 HH:MM:SS 格式返回时间。
  3. datetime(timestring, modifier, modifier, ...)以 YYYY-MM-DD HH:MM:SS 格式返回。
  4. julianday(timestring, modifier, modifier, ...)这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数
  5. strftime(format, timestring, modifier, modifier, ...)这将根据第一个参数指定的格式字符串返回格式化的日期

 2,实例:

计算当前日期

SELECT date('now');

计算当前月份的最后一天:

意思是先从这个月开始,向下查下一个月份,然后查询下一个月份第一天的前一天,就是这个月的最后一天

SELECT date('now','start of month','+1 month','-1 day');

计算给定 UNIX 时间戳 1092941466 的日期和时间:

给定毫秒数,然后转换成具体日期

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

计算当前的 UNIX 时间戳:

SELECT strftime('%s','now');
1367926057

计算美国"独立宣言"签署以来的天数:

也可以看成是,给定一个日期,然后计算两者之间的时间间隔

SELECT julianday('now') - julianday('1776-07-04');
86504.4775830326

计算从 2004 年某一特定时刻以来的秒数:

用了格式化函数

SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
替换描述
%d一月中的第几天,01-31
%f带小数部分的秒,SS.SSS
%H小时,00-23
%j一年中的第几天,001-366
%J儒略日数,DDDD.DDDD
%m月,00-12
%M分,00-59
%s从 1970-01-01 算起的秒数
%S秒,00-59
%w一周中的第几天,0-6 (0 is Sunday)
%W一年中的第几周,01-53
%Y年,YYYY
%%% symbol

计算当年 10 月的第一个星期二的日期:

计算今年第一个月在往后9个月的第一个星期二

SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01

常用函数

数字函数

序号函数 & 描述
1SQLite COUNT 函数
SQLite COUNT 聚集函数是用来计算一个数据库表中的行数。
2SQLite MAX 函数
SQLite MAX 聚合函数允许我们选择某列的最大值。
3SQLite MIN 函数
SQLite MIN 聚合函数允许我们选择某列的最小值。
4SQLite AVG 函数
SQLite AVG 聚合函数计算某列的平均值。
5SQLite SUM 函数
SQLite SUM 聚合函数允许为一个数值列计算总和。
6SQLite RANDOM 函数
SQLite RANDOM 函数返回一个介于 -9223372036854775808 和 +9223372036854775807 之间的伪随机整数。
7SQLite ABS 函数
SQLite ABS 函数返回数值参数的绝对值。

字符函数

8SQLite UPPER 函数
SQLite UPPER 函数把字符串转换为大写字母。
9SQLite LOWER 函数
SQLite LOWER 函数把字符串转换为小写字母。
10SQLite LENGTH 函数
SQLite LENGTH 函数返回字符串的长度。
11SQLite sqlite_version 函数
SQLite sqlite_version 函数返回 SQLite 库的版本。

 

实例:

先给一张表

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.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
7           James       24          Houston     10000.0

 COUNT 函数

SELECT count(*) FROM COMPANY;

 UPPER 函数把字符串转换为大写字母。下面是实例:

SELECT upper(name) FROM COMPANY;
upper(name)
-----------
PAUL
ALLEN
TEDDY
MARK
DAVID
KIM
JAMES

 LOWER 函数把字符串转换为小写字母。下面是实例:

SELECT lower(name) FROM COMPANY;
lower(name)
-----------
paul
allen
teddy
mark
david
kim
james

 LENGTH 函数返回字符串的长度。下面是实例:

 SELECT name, length(name) FROM COMPANY;
NAME        length(name)
----------  ------------
Paul        4
Allen       5
Teddy       5
Mark        4
David       5
Kim         3
James       5

sqlite_version 函数

 sqlite_version 函数返回 SQLite 库的版本。下面是实例:

SELECT sqlite_version() AS 'SQLite Version';
SQLite Version
--------------
3.6.20

 Autoincrement(自动递增)

SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增。我们可以在创建表时在特定的列名称上使用 AUTOINCREMENT 关键字实现该字段值的自动增加。

关键字 AUTOINCREMENT 只能用于整型(INTEGER)字段。所以我们在建表的时候,主键只能用integer

建表语句

CREATE TABLE COMPANY(
   ID INTEGER PRIMARY KEY   AUTOINCREMENT,
   NAME           TEXT      NOT NULL,
   AGE            INT       NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

插入语句

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Paul', 32, 'California', 20000.00 );

子查询

select

SELECT column1, column2, columnN FROM table_name;
SELECT * FROM table_name;

form

SELECT * FROM table_name;

exist

select * from dd1 where exists(select bh from dd2 where dd1.bh=dd2.bh)

in(包括多行多列子查询)

select * from tablename where userid in('张三','李四','王五');

Having

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

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

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2;

集合链接查询

并集

Unions 子句(去重)

SQLite的 UNION 子句/运算符用于合并两个或多个 SELECT 语句的结果,不返回任何重复的行。

为了使用 UNION,每个 SELECT 被选择的列数必须是相同的,相同数目的列表达式,相同的数据类型,并确保它们有相同的顺序,但它们不必具有相同的长度

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION ALL 子句(不去重)

UNION ALL 运算符用于结合两个 SELECT 语句的结果,包括重复行

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION ALL

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

交集

INTERSECT

用查询语句将这两个表的MODEL列全部输出

(SELECT MODEL
FROM PRODUCT)
INTERSECT
(SELECT MODEL
FROM PC)

差集(minus不能使用)

但是我们可以用exist来代替minus

查出A表中B表不存在的信息

select *
from A a
where not exists(select 1 from B b
where a.name=b.name and a.age=b.age)

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值