zoukankan      html  css  js  c++  java
  • 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 运算符

    
    
     



  • 相关阅读:
    multidownloadXkcd 多线程抓图
    51job_selenium测试2
    51job_selenium测试
    python爬虫 前程无忧网页抓取
    化工pdf下载
    Velocity写法注意
    Velocity中文乱码问题解决方法
    velcoity使用说明:foreach指令
    strults2标签s:set的用法
    struts提交action乱码
  • 原文地址:https://www.cnblogs.com/easy-wang/p/10089724.html
Copyright © 2011-2022 走看看