设为首页 加入收藏

TOP

SQLite SELECT 基本组合用法大全(一)
2017-12-14 14:32:25 】 浏览:336
Tags:SQLite SELECT 基本 组合 用法 大全

SQLite SELECT 基本组合用法大全

//表

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

1. Where 条件筛选

SELECT * FROM COMPANY WHERE AGE = 25 ;

2. AND/OR NOT/BETWEEN交并集

-- AGE 大于等于 25 且工资大于等于 65000.00 的所有记录:
SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
-- AGE 大于等于 25 或工资大于等于 65000.00 的所有记录:
SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
-- AGE 不为 NULL 的所有记录
SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
-- AGE 的值为 25 或 27 的所有记录:
SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );
 -- AGE 的值既不是 25 也不是 27 的所有记录:
SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );
-- AGE 的值在 25 与 27 之间的所有记录:
SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;
-- 使用 SQL 子查询,子查询查找 SALARY > 65000 的带有 AGE 字段的所有记录,后边的 WHERE 子句与 EXISTS 运算符一起使用,列出了外查询中的 AGE 存在于子查询返回的结果中的所有记录
SELECT AGE FROM COMPANY WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
-- 使用 SQL 子查询,子查询查找 SALARY > 65000 的带有 AGE 字段的所有记录,后边的 WHERE 子句与 > 运算符一起使用,列出了外查询中的 AGE 大于子查询返回的结果中的年龄的所有记录:
SELECT * FROM COMPANY WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

3. Update 更新

-- 更新 ID 为 6 的客户地址:
UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;
-- 修改 COMPANY 表中 ADDRESS 和 SALARY 列的所有值,则不需要使用 WHERE 子句
UPDATE COMPANY SET ADDRESS = 'Texas', SALARY = 20000.00;

4. Delete 删除

-- 删除 ID 为 7 的客户:
DELETE FROM COMPANY WHERE ID = 7;
-- 从 COMPANY 表中删除所有记录,则不需要使用 WHERE 子句
DELETE FROM COMPANY;

5. Like 模糊匹配

这里有两个通配符与 LIKE 运算符一起使用:
– 百分号 (%)
– 下划线 (_)
百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。

语句 描述
WHERE SALARY LIKE ‘200%’ 查找以 200 开头的任意值
WHERE SALARY LIKE ‘%200%’ 查找任意位置包含 200 的任意值
WHERE SALARY LIKE ‘_00%’ 查找第二位和第三位为 00 的任意值
WHERE SALARY LIKE ‘2_%_%’ 查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY LIKE ‘%2’ 查找以 2 结尾的任意值
WHERE SALARY LIKE ‘_2%3’ 查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY LIKE ‘2___3’ 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值

//

-- COMPANY 表中 AGE 以 2 开头的所有记录:
SELECT * FROM COMPANY WHERE AGE  LIKE '2%';
--COMPANY 表中 ADDRESS 文本里包含一个连字符(s)的所有记录
SELECT * FROM COMPANY WHERE ADDRESS  LIKE '%s%';

6. Glob 匹配指定模式

SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算符将返回真(true),也就是 1。与 LIKE 运算符不同的是,GLOB 是大小写敏感的,对于下面的通配符,它遵循 UNIX 的语法。
– 星号 (*)
– 问号 (?)
星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。

语句 描述
WHERE SALARY GLOB ‘200*’ 查找以 200 开头的任意值
WHERE SALARY GLOB ‘*200*’ 查找任意位置包含 200 的任意值
WHERE SALARY GLOB ‘?00*’ 查找第二位和第三位为 00 的任意值
WHERE SALARY GLOB ‘2??’ 查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY GLOB ‘*2’ 查找以 2 结尾的任意值
WHERE SALARY GLOB ‘?2*3’ 查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY GLOB ‘2???3’ 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值
-- COMPANY 表中 AGE 以 2 开头的所有记录:
SELECT * FROM COMPANY WHERE AGE  GLOB '2*';
-- COMPANY 表中 ADDRESS 文本里包含一个连字符(-)的所有记录:
SELECT * FROM COMPANY WHERE ADDRESS  GLOB '*-*';

7. Limit 条数限制

-- 用法1 默认从第0个开始
SELECT column1, column2, columnN FROM table_nameLIMIT rows;

-- 用法2 从第几个开始
SELECT column1, column2, columnN FROM table_name LIMIT rows OFFSET num
-- 从表中提取的行数:
SELECT * FROM COMPANY LIMIT 6;

-- 从一个特定的偏移开始提取记录。下面是一个实例,从第三位开始提取 6 个记录:
SELECT * FROM COMPANY LIMIT 6 OFFSET 2;

8. Order By 排序

-- 将结果按 SALARY 升序排序:ASC(升序)
SELECT * FROM COMPANY ORDER BY SALARY ASC;
-- 将结果按 NAME 和 SALARY 升序排序:NAME的优先级高于SALARY
SELECT * FROM COMPANY O
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇如何运用SQL进行双向表头报表查询 下一篇Oracle和MySQL分组后字段间拼接问..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目