嵌入式数据库SQlite3-进阶篇

嵌入式数据库sqlite3 - HQ

### 文章目录

  • [嵌入式数据库sqlite3 - HQ](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [@[toc]](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [嵌入式数据库sqlite3【进阶篇】](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [数据库准备](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [order子句](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [Where 子句与逻辑运算符](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [语法](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [实例](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [group by子句](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [having子句](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [举例](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite COUNT 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite MAX 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite MIN 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite AVG 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite SUM 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite RANDOM 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite ABS 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite UPPER 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite LOWER 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite LENGTH 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite sqlite_version 函数](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SQLite时间/日期函数:](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [datetime()](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [date()](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [time()](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [strftime()](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [SELECT LIKE 用法](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [语法](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)
  • [举例](#文章目录 嵌入式数据库sqlite3 - HQ @[toc] 嵌入式数据库sqlite3【进阶篇】 数据库准备 order子句 Where 子句与逻辑运算符 语法 实例 group by子句 having子句 举例 函数 SQLite COUNT 函数 SQLite MAX 函数 SQLite MIN 函数 SQLite AVG 函数 SQLite SUM 函数 SQLite RANDOM 函数 SQLite ABS 函数 SQLite UPPER 函数 SQLite LOWER 函数 SQLite LENGTH 函数 SQLite sqlite_version 函数 SQLite时间/日期函数: datetime() date() time() strftime() SELECT LIKE 用法 语法 举例)

嵌入式数据库sqlite3【进阶篇】

数据库准备

新建数据库,company.db。设计一个表格employee,内容如下:

id name age dep salary
1 马云 21 market 6000
2 马化腾 22 tech 7000
3 李彦宏 23 trs 8600
4 张朝阳 24 trs 6000
5 罗永浩 26 tech 8900
6 王欣 25 market 4000

根据上述表格,我们首先确定主键是id。 创建表格命令如下:

CREATE TABLE employee(id integer primary key, name text,age integer , dep text, salary integer);
insert into employee values (1,'马云',21,'market',6000);
insert into employee values (2,'马化腾',22,'tech',7000);
insert into employee values (3,'李彦宏',23,'trs',8000);
insert into employee values (4,'张朝阳',24,'trs',6000);
insert into employee values (5,'罗永浩',26,'tech',8900);
insert into employee values (6,'王欣',25,'market',4000);
insert into employee values (7,'一口',18,'market',4000);

order子句

我们可以使用order子句实现对记录的排序:

select * from employee order by age;

Where 子句与逻辑运算符

SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件。如果满足给定的条件,即为真(true)时,则从表中返回特定的值。

可以使用 WHERE 子句来过滤记录,只获取需要的记录。WHERE 子句不仅可用在 SELECT 语句中,它也可用在 UPDATE、DELETE 语句中,等等,这些我们将在随后的章节中学习到。

语法

SQLite 的带有 WHERE 子句的 SELECT 语句的基本语法如下:

SELECT column1, column2, columnN FROM table_name WHERE [condition]
实例

您还可以使用比较或逻辑运算符指定条件,比如 >、<、=、>=,<= ,LIKE、NOT,等等。

下面的实例演示了 SQLite 逻辑运算符的用法。

下面的 SELECT 语句列出了 AGE 大于等于 25 且工资大于等于 65000.00 的所有记录:

 SELECT * FROM EMPLOYEE WHERE AGE >= 25 AND SALARY >= 6500;

下面的 SELECT 语句列出了 AGE 大于等于 25 或工资大于等于 65000.00 的所有记录:

SELECT * FROM EMPLOYEE WHERE AGE >= 25 OR SALARY >= 65000;

下面的 SELECT 语句列出了 AGE 不为 NULL 的所有记录,结果显示所有的记录,意味着没有一个记录的 AGE 等于 NULL:

SELECT * FROM EMPLOYEE WHERE AGE IS NOT NULL;

where子句还可以配合like子句一起使用。

下面的 SELECT 语句列出了 NAME 以 'Ki' 开始的所有记录,'Ki' 之后的字符不做限制:

SELECT * FROM EMPLOYEE WHERE NAME LIKE '马%'; 

下面的 SELECT 语句列出了 AGE 的值为 22 或 25 的所有记录:

SELECT * FROM EMPLOYEE WHERE AGE IN ( 22, 25 );

下面的 SELECT 语句列出了 AGE 的值既不是 25 也不是 27 的所有记录:

SELECT * FROM EMPLOYEE WHERE AGE NOT IN ( 22, 25 );

下面的 SELECT 语句列出了 AGE 的值在 22 与 25 之间的所有记录:

SELECT * FROM EMPLOYEE WHERE AGE BETWEEN 22 AND 25; 

group by子句

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。举例:

统计整个公司工资总和:

select sum(salary) from employee;

统计每个部门的工资总和:

select dep, sum(salary) from employee group by dep;

统计各部门的工资总和并且要求id值大于3

select dep, sum(salary) from employee where id>3 group by dep;    where子句要放在group by的前面。

having子句

having子句是group by的条件子句,where子句先发生,然后才是having 子句执行。

HAVING子句中能够使用三种要素:常数,聚合函数,GROUP BY子句中指定的列名(聚合建), 用having就一定要和group by连用, 用group by不一有having(它只是一个筛选条件用的)

举例

统计各部门的工资总和并且要求id值大于3

select dep, sum(salary) from employee where id>3 group by dep having sum(salary)>5000;

查找重复记录的方法

我们先插入依据名字相同的记录。

insert into employee values (8,'一口',19,'market',5000);
select id,name from employee group by name having count(*) > 1;

可以看到,结果显示了相同名字的重复记录。

显示名字相同的多项

select id,name,dep,salary  from employee group by name  having count(*) > 1;

显示table中所有的记录

select count(*) from employee;

显示所有记录的个数

select dep,avg(salary) from employee group by dep;

显示dep下每一组的平均值

select * from employee where id > 3 intersect select * from employee where id < 9;

显示id > 3 && id < 9 的所有记录:即4 - 8 的记录

select * from employee where id > 3 union all select * from employee where id < 9;

显示所有的大于3并且小于9的,并集(如果有相同的,会重复显示)

select * from studentnew where id > 3 union all select * from studentnew where id < 9;

显示大于9的记录

select * from employee where id > 3 union all select * from studentnew where id < 6;

显示大于6的记录,(与上一个进行比较)

select *from employee where salary= (select salary from employee order by salary desc limit 1);
select *from employee where salary= (select max(salary) from employee );

显示最高工资的所有员工的记录

select name,max(salary) from employee;

显示table中名字不相同的员工;

select distinct name from employee; 

显示所有员工的名字;

 select all name from employee; 

函数

SQLite 有许多内置函数用于处理字符串或数字数据。下面列出了一些有用的 SQLite 内置函数,且所有函数都是大小写不敏感,这意味着您可以使用这些函数的小写形式或大写形式或混合形式。欲了解更多函数的说明,可以参考 SQLite 的官方文档,下面列举常用的一些函数

序号 函数 & 描述
1. COUNT SQLite COUNT 聚集函数是用来计算一个数据库表中的行数。
2. MAX SQLite MAX 聚合函数允许我们选择某列的最大值。
3. MIN SQLite MIN 聚合函数允许我们选择某列的最小值。
4. AVG SQLite AVG 聚合函数计算某列的平均值。
5. SUM SQLite SUM 聚合函数允许为一个数值列计算总和。
6. RANDOM SQLite RANDOM 函数返回一个介于 -9223372036854775808 和 +9223372036854775807 之间的伪随机整数。
7. ABS SQLite ABS 函数返回数值参数的绝对值。
8. UPPER SQLite UPPER 函数把字符串转换为大写字母。
9. LOWER SQLite LOWER 函数把字符串转换为小写字母。
10. LENGTH SQLite LENGTH 函数返回字符串的长度。
11. sqlite_version SQLite sqlite_version 函数返回 SQLite 库的版本。

SQLite COUNT 函数

SQLite COUNT 聚集函数是用来计算一个数据库表中的行数。下面是实例:

SELECT count(*) FROM EMPLOYEE ;

执行结果:

SQLite MAX 函数

SQLite MAX 聚合函数允许我们选择某列的最大值。下面是实例:

SELECT max(salary) FROM EMPLOYEE ;

执行结果:

SQLite MIN 函数

SQLite MIN 聚合函数允许我们选择某列的最小值。下面是实例:

SELECT min(salary) FROM EMPLOYEE ;

执行结果:

SQLite AVG 函数

SQLite AVG 聚合函数计算某列的平均值。下面是实例:

SELECT avg(salary) FROM EMPLOYEE ;

执行结果:

SQLite SUM 函数

SQLite SUM 聚合函数允许为一个数值列计算总和。下面是实例:

SELECT sum(salary) FROM EMPLOYEE ;

执行结果:

SQLite RANDOM 函数

SQLite RANDOM 函数返回一个介于 -9223372036854775808 和 +9223372036854775807 之间的伪随机整数。下面是实例:

SELECT random() AS Random;

执行结果:

SQLite ABS 函数

SQLite ABS 函数返回数值参数的绝对值。下面是实例:

SELECT abs(5), abs(-15), abs(NULL), abs(0), abs("ABC");

执行结果:

SQLite UPPER 函数

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

insert into employee values (9,'yikoulinux',22,'market',8000);
SELECT upper(name) FROM EMPLOYEE ;

执行结果:

SQLite LOWER 函数

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

SELECT lower(name) FROM EMPLOYEE ;

执行结果:

SQLite LENGTH 函数

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

SELECT name, length(name) FROM EMPLOYEE ;

执行结果:

SQLite sqlite_version 函数

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

SELECT sqlite_version() AS 'SQLite Version';

执行结果:

SQLite时间/日期函数:

datetime()

datetime() 产生日期和时间 无参数表示获得当前时间和日期

select datetime();

有字符串参数则把字符串转换成日期

select datetime('2012-01-07 12:01:30'); 

2012-01-07 12:01:30

select date('2019-09-09','+1 day','+1 year');

2013-01-09

select datetime('2019-09-09 00:20:00','+1 hour','-12 minute');

2019-09-09 01:08:00

select datetime('now','start of year');

2020-01-01 00:00:00

select datetime('now','start of month');

2020-09-01 00:00:00

select datetime('now','start of day');

2020-09-13 00:00:00

select datetime('now','localtime');

结果:2020-09-12 20:26:35

date()

date()用于产生日期

select date('2019-09-09 12:01:30'); 

2019-09-09

select date('now','start of year');

2020-01-01

select date('2019-09-09','+1 month');

2019-10-09

time()

time() 用于产生时间。

select time();

03:28:49

select time('23:18:59');

23:18:59

select time('23:18:59','start of day');

00:00:00

在时间/日期函数里可以使用如下格式的字符串作为参数:

  • YYYY-MM-DD
  • YYYY-MM-DD HH:MM
  • YYYY-MM-DD HH:MM:SS
  • YYYY-MM-DD HH:MM:SS.SSS
  • HH:MM
  • HH:MM:SS
  • HH:MM:SS.SSS
  • now

其中now是产生现在的时间。

日期不能正确比较大小,会按字符串比较,日期默认格式 dd-mm-yyyy

strftime()

strftime() 对以上三个函数产生的日期和时间进行格式化。

strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。strftime(格式, 日期/时间, 修正符, 修正符, ...)

它可以用以下的符号对日期和时间进行格式化:

%d 在该月中的第几天, 01-31 
%f 小数形式的秒,SS.SSS 
%H 小时, 00-23 
%j 算出某一天是该年的第几天,001-366 
%m 月份,00-12 
%M 分钟, 00-59 
%s 从1970年1月1日到现在的秒数 
%S 秒, 00-59 
%w 星期, 0-6 (0是星期天) 
%W 算出某一天属于该年的第几周, 01-53 
%Y 年, YYYY 
%% 百分号
select strftime('%Y.%m.%d %H:%M:%S','now'); 

2020.09.13 03:32:49

select strftime('%Y.%m.%d %H:%M:%S','now','localtime'); 

2020.09.12 20:33:24

SELECT LIKE 用法

在SQL结构化查询语言中,LIKE语句有着至关重要的作用。

语法

LIKE语句的语法格式是:

select * from 表名 where 字段名 like 对应值(子串),

它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。

  • A):% 包含零个或多个字符的任意字符串:
  1. LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
  2. LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
  3. LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
  • B:_(下划线) 任何单个字符:LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
  • C:[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:
  1. LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
  2. LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
  • D:[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符:LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
  • E:* 它同于DOS命令中的通配符,代表多个字符:c*c代表cc,cBc,cbc,cabdfec等多个字符。
  • F:?同于DOS命令中的?通配符,代表单个字符 :b?b代表brb,bFb等
  • G:# 大致同上,不同的是代只能代表单个数字。k#k代表k1k,k8k,k0k 。
  • F:[!] 排除 它只代表单个字符

举例

下面我们来举例说明一下:

  • 例1,查询name字段中包含有"明"字的。

    select * from table1 where name like '%明%'

  • 例2,查询name字段中以"李"字开头。

    select * from table1 where name like '李*'

  • 例3,查询name字段中含有数字的。

    select * from table1 where name like '%[0-9]%'

  • 例4,查询name字段中含有小写字母的。

    select * from table1 where name like '%[a-z]%'

  • 例5,查询name字段中不含有数字的。

    select * from table1 where name like '%[!0-9]%'

以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符""与"%"的区别。很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用""?先看看下面的例子能分别出现什么结果:

select * from table1 where name like '*明*'
select * from table1 where name like '%明%'

大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有"明"的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用"%"而不用"",用""的时候只在开头或者只在结尾时,而不能两端全由"*"代替任意字符的情况下。

相关推荐
OLDERHARD20 分钟前
Java - MyBatis(上)
java·oracle·mybatis
Code成立25 分钟前
1、深入理解Redis线程模型
数据库·redis·bootstrap
缘友一世2 小时前
macos安装mongodb
数据库·mongodb·macos
万事大吉CC3 小时前
mysql单表查询·3
数据库·mysql
bin91534 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha4 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐5 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
Java探秘者9 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2301_786964369 小时前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
阿维的博客日记10 小时前
图文并茂解释水平分表,垂直分表,水平分库,垂直分库
数据库·分库分表