Python 操作Sqlite3

SQLite命令


1> .help  帮助信息

2>.show  输出格式设置

3>.excel  把操作结果输入excel

4>.schema sqlite_master 输出主表中保存数据库表

5>.header on / .mode column /.timer on  输出形式设置

6>.exit 退出数据库

7>.databases 显示数据库列表

8> -- 、/*....*/ 注释

9> .dump > 点命令来导出完整的数据库在一个文本文件中  -- testDB.db  .dump > testDB.sql

10> < 从生成的testDB.sql恢复

11>.table 列出附加数据库中的所有表

12>.schema 命令得到表的完整信息

13>.width num,num...命令设置显示列的宽度

SQLite数据类型


 

 SQLite 数据库操作:


1>. 创建数据库 :sqlite3 DatabaseName.db

2>. 附加数据库: ATTACH DATABASE 'testDB.db' as  'TEST'

3>.分离数据库: DETACH  DATABASE ‘Alias-Name’;

SQLite 数据库表的操作:


创建表:CREATE TABLE

CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

删除表:DROP TABLE语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范

DROP TABLE database_name.table_name;

向数据库的某个表中添加新的数据行:Insert into 语句:

第一种:INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
    VALUES (value1, value2, value3,...valueN);

第二种:INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

第三种:
INSERT INTO first_table_name [(column1, column2, ... columnN)] 
   SELECT column1, column2, ...columnN 
   FROM second_table_name
   [WHERE condition];

更新数据库数据: UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

删除数据库已有的记录:DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。

DELETE FROM table_name
WHERE [condition];

SQLite Like 子句:

  • 百分号 (%)

  • 下划线 (_)

  百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。

SQLite Glob 子句:与 LIKE 运算符不同的是,GLOB 是大小写敏感的,

  • 星号 (*)

  • 问号 (?)

星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。

SQLite 语句的格式:

SELECT Distinct
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Limit

 

SQLite 逻辑运算符:

 SQLite 约束:


约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。

约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。

以下是在 SQLite 中常用的约束

 

  • NOT NULL 约束:确保某列不能有 NULL 值。

  • DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

  • UNIQUE 约束:确保某列中的所有值是不同的。

  • PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

  • CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

  • 一个表只能有一个主键,它可以由一个或多个字段组成。当多个字段作为主键,它们被称为复合键
CREATE TABLE COMPANY3(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    CHECK(SALARY > 0)
);

SQLite Join


 

SQL 定义了三种主要类型的连接:

  • 交叉连接 - CROSS JOIN --- 两个表所有数据行的笛卡尔积

  • 内连接 - INNER JOIN ----把 table1 中的每一行与 table2 中的每一行进行比较,找到所有满足连接谓词的行的匹配对。当满足连接谓词时,A 和 B 行的每个匹配对的列值会合并成一个结果行

    • SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression ...
    • SELECT ... FROM table1 JOIN table2 USING ( column1 ,... ) ...
  • 外连接 - OUTER JOIN

    • SELECT ... FROM table1 LEFT OUTER JOIN table2 ON conditional_expression ...
    • SELECT ... FROM table1 LEFT OUTER JOIN table2 USING ( column1 ,... ) ...

SQLite Unions


 

UNION 子句:

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 语句的结果,包括重复行。

适用于 UNION 的规则同样适用于 UNION ALL 运算符。

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

UNION ALL

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

SQLite NULL


SQLite 的 NULL 是用来表示一个缺失值的项。表中的一个 NULL 值是在字段中显示为空白的一个值。

带有 NULL 值的字段是一个不带有值的字段。NULL 值与零值或包含空格的字段是不同的,理解这点是非常重要的

IS NOT NULL  / IS NULL 运算符

 

 

 


 



 

posted @ 2018-12-08 23:27  easy_wang  阅读(2856)  评论(0编辑  收藏  举报