SQlite3本地数据库学习笔记

1、简介

SQLite 命令

与关系数据库进行交互的标准 SQLite 命令类似于 SQL。命令包括 CREATE、SELECT、INSERT、UPDATE、DELETE 和 DROP。这些命令基于它们的操作性质可分为以下几种:(区分大小写)

DDL - 数据定义语言

命令描述
CREATE创建一个新的表,一个表的视图,或者数据库中的其他对象。
ALTER修改数据库中的某个已有的数据库对象,比如一个表。
DROP删除整个表,或者表的视图,或者数据库中的其他对象。

DML - 数据操作语言

命令描述
INSERT创建一条记录。
UPDATE修改记录。
DELETE删除记录。

DQL - 数据查询语言

命令描述
SELECT从一个或多个表中检索某些记录。

 

SQLite 语句

所有的 SQLite 语句可以以任何关键字开始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的语句以分号(;)结束。 

 2、安装和运行

安装教程

cmd界面输入程序地址D:\APP\SQlite\sqlite3(即$),提示如下则安装完成

$ sqlite3    --$代表sqlite在文件资源管理器中的位置
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

创建数据库

D:\APP\SQlite\sqlite3 databasev1.db

创建表

--创建表
CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

--查看表
.schema COMPANY

 DROP语句(删除表(数据全部丢失))

DROP TABLE database_name.table_name;

 INSERT语句(表中添加新的数据行)

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

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'David', 27, 'Texas', 85000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 );

INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );--ID创建

SELECT语句(输出表里内容)

SELECT * FROM COMPANY;  //全部
SELECT ID, NAME, SALARY FROM COMPANY;//指定列

 3、运算

运算符

运算符描述
ANDAND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。
BETWEENBETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。
EXISTSEXISTS 运算符用于在满足一定条件的指定表中搜索行的存在。
ININ 运算符用于把某个值与一系列指定列表的值进行比较。
NOT ININ 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。
LIKELIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。
GLOBGLOB 运算符用于把某个值与使用通配符运算符的相似值进行比较。GLOB 与 LIKE 不同之处在于,它是大小写敏感的。
NOTNOT 运算符是所用的逻辑运算符的对立面。比如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定运算符。
OROR 运算符用于结合一个 SQL 语句的 WHERE 子句中的多个条件。
IS NULLNULL 运算符用于把某个值与 NULL 值进行比较。
ISIS 运算符与 = 相似。
IS NOTIS NOT 运算符与 != 相似。
||连接两个不同的字符串,得到一个新的字符串。
UNIQUEUNIQUE 运算符搜索指定表中的每一行,确保唯一性(无重复)。

 Where子句 

--列出了 AGE 大于等于 25 且工资大于等于 65000.00 的所有记录:
SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
--列出了 AGE 不为 NULL 的所有记录
SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
--列出了 NAME 以 'Ki' 开始的所有记录,'Ki' 之后的字符不做限制:
SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';
--列出了 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;
--子查询查找 SALARY > 65000 的带有 AGE 字段的所有记录,后边的 WHERE 子句与 EXISTS 运算符一起使用,列出了外查询中的 AGE 存在于子查询返回的结果中的所有记录:
SELECT AGE FROM COMPANY WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
--子查询查找 SALARY > 65000 的带有 AGE 字段的所有记录,后边的 WHERE 子句与 > 运算符一起使用,列出了外查询中的 AGE 大于子查询返回的结果中的年龄的所有记录:
SELECT * FROM COMPANY WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

AND/OR 运算符 

SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;--AND运算
SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;--OR运算

布尔表达式 

 SELECT * FROM COMPANY WHERE SALARY = 10000;--布尔表达式在匹配单个值的基础上获取整行数据

数值表达式

SELECT (15 + 6) AS ADDITION

日期表达式

SELECT COUNT(*) AS "RECORDS" FROM COMPANY; 

 Update 语句

UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;

Delete语句

DELETE FROM COMPANY WHERE ID = 7;--整行删除
DELETE FROM COMPANY;--删除整个表格

 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 结尾的任意值

Glob 子句(GLOB 是大小写敏感的)

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 结尾的任意值

 Limit 子句

SELECT * FROM COMPANY LIMIT 6;--限制了您想要从表中提取的行数,取到第6行
SELECT * FROM COMPANY LIMIT 3 OFFSET 2;--限制从第三位开始偏移2个行提取,共3个记录:

Order By子句(排序)

SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;--升序排序
SELECT * FROM COMPANY ORDER BY NAME DESC;--降序排序

 Group By子句

SELECT NAME, SUM(SALARY) 
         FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;
--计算SALARY总和,以NAME分组提取,以NAME降序

Having 子句

SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2;--显示名称计数小于 2 的所有记录:

Distinct 关键字

SELECT DISTINCT name FROM COMPANY;--消除所有重复的记录,并只获取唯一一次记录。

4、速查表sql cheat sheet

sql cheat sheet

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值