zoukankan      html  css  js  c++  java
  • SQLite3学习笔记(1)

    命令:

    DDL-数据定义:

    CREATE -- 创建一个新的表,一个表的视图,或者数据库中的其他对象

    ALTER -- 修改数据库中的某个已有的数据对象,比如一个表

    DROP -- 删除整个表,或者表的视图,或者数据库中的其他对象

    DML - 数据操作:

    INSERT -- 创建一条记录

    UPDATE -- 修改记录

    DELETE -- 删除记录

    DQL - 数据查询:

    SELECT -- 从一个或多个表中检索某些记录


    可以使用 . help 命令来获取各种重要的SQLite 点命令的列表;

    可以使用 .show 命令来获取SQLite命令提示符的默认设置;

    sqlite> .show
            echo: off
             eqp: off
         explain: auto
         headers: off
            mode: list
       nullvalue: ""
          output: stdout
    colseparator: "|"
    rowseparator: "
    "
           stats: off
           
        filename: :memory:
    .show

    也可以使用属性的方法改变设置

    sqlite>.header on
    sqlite>.mode column
    sqlite>.timer on
    View Code

    SQLite 存储类:

    NULL 值是一个 NULL 值
    INTEGER 值是一个带符号的整数根据值的大小,存储在 1、2、3、4、6 或 8 字节中。
    REAL 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
    TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
    BLOB

    值是一个 blob 数据,完全根据它的输入存储。



    使用命令 sqlite3 testDB.db 来创建一个新的数据库

    E:SQLite3>sqlite3 testDB.db
    SQLite version 3.25.0 2018-09-15 04:01:47
    Enter ".help" for usage hints.

    一旦数据库被创建,就可以使用 .databases 命令来查看它是否在数据库列表中

    sqlite> .databases
    main: E:SQLite3	estDB.db

    可以使用 .quit 命令退出 sqlite提示符

    sqlite> .quit
    
    E:SQLite3>

    可以在命令行中使用 SQLite.dump 点命令来导出完整的数据库在一个文本文件中

    E:SQLite3>sqlite3 testDB.db .dump > testDB.sql

    上面的命令将转换整个 testDB.db 数据库的内容到 SQLite 的语句中,并将其转储到 testDB.sql 中。你可以通过简单的方式从生产的testDB.db 恢复

    E:SQLite3>sqlite3 testDB.db < testDB.sql

    此时的数据库是空的,一旦数据库中有表和数据,可以进行尝试。


    如果想要附加一个现有的数据库 testDB.db ,则 ATTACH DATABASE 语句将如下所示

    sqlite> ATTACH DATABASE 'testDB.db' as 'TEST';

    使用 .database 命令来显示附加的数据库

    sqlite> .database
    main:
    TEST: E:SQLite3	estDB.db

    数据库名称 main 和temp 被保留用于主数据库和存储临时表及其它临时数据对象的数据库。这两个数据库名称可以用于每个数据库连接,且不应该被用于附加,否则将得到一个警告消息。


    SQLite的 DETACH DTABASE 语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的。如果同一个数据库文件已经被附加上多个别名,DETACH 命令将只断开给定名称的连接,而其余的仍然有效。您无法分离 main 或 temp 数据库。

    如果数据库是在内存中或者是临时数据库,则该数据库将被摧毁,且内容将会丢失。

    SQLite 的 DETACH DATABASE 的基本语句的基本语法如下:

    DETACH DATABASE 'Alias-Name';

    假设已经创建一个数据库并给他附加了‘TEST’ 和 ‘XING',使用.database 命令,我们可以看到如下:

    main:
    TEST: E:SQLite3	estDB.db
    XING: E:SQLite3	estDB.db

    现在尝试把'XING' 从 testDB.db 中分离出来,如下:

    sqlite> DETACH DATABASE 'XING';

    如果现在再次检查,会发现testDB.db 任与 main 保持连接

    sqlite> .database
    main:
    TEST: E:SQLite3	estDB.db

  • 相关阅读:
    Count and Say leetcode
    Find Minimum in Rotated Sorted Array II leetcode
    Find Minimum in Rotated Sorted Array leetcode
    Search in Rotated Sorted Array II leetcode
    search in rotated sorted array leetcode
    Substring with Concatenation of All Words
    Subsets 子集系列问题 leetcode
    Sudoku Solver Backtracking
    Valid Sudoku leetcode
    《如何求解问题》-现代启发式方法
  • 原文地址:https://www.cnblogs.com/jxxclj/p/9662700.html
Copyright © 2011-2022 走看看