zoukankan      html  css  js  c++  java
  • 《SQLite3 — 创建数据库、创建及删除表、添加字段和获取数据》

    1.创建数据库

    $sqlite3 DatabaseName.db
    

      

     查询数据库列表:

    可以使用 SQLite 的 .database 命令来检查它是否在数据库列表中
    

      

     退出sqlite>提示符:

    sqlite>.quit

    导出数据库:

    $sqlite3 testDB.db .dump > testDB.sql
    上面的命令将转换整个 testDB.db 数据库的内容到 SQLite 的语句中,并将其转储到 ASCII 文本文件 testDB.sql 中。您可以通过简单的方式从生成的 testDB.sql 恢复,如下所示:
    $sqlite3 testDB.db < testDB.sql
    

      

    2.创建表

    CREATE TABLE语法:

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

      CREATE TABLE 是告诉数据库系统创建一个新表的关键字。CREATE TABLE 语句后跟着表的唯一的名称或标识。您也可以选择指定带有 table_name 的 database_name

    实例:

    创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL:
    sqlite> CREATE TABLE COMPANY(
       ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL
    );

      其中ID就是作为主键。主键的意思就是唯一标识符。不会出现重复。

      ID,NAME,AGE这些都是列,也就是字段。

    为什么要有主键?

      比如用COMPANY中的NANE这个字段,有可能出现同名同姓的人,那么在这个时候就会出现检索混乱的问题。所以增加主键,作为唯一标识符。

      NOT NULL表示这个字段不能为空,必须要填写。

    .tables列出数据库所有表:

    sqlite>.tables
    COMPANY  
    

      

    .schema列出表的完整信息:

    sqlite>.schema COMPANY
    CREATE TABLE COMPANY(
       ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL
    );
    

      

    3.删除表

    DROP TABLE语法:

    DROP TABLE database_name.table_name;
    

    实例:

    sqlite>.tables
    COMPANY       
    

      这意味着 COMPANY 表已存在数据库中,接下来让我们把它从数据库中删除,如下:

    sqlite>DROP TABLE COMPANY;
    sqlite>
    

      现在,如果尝试 .TABLES 命令,那么将无法找到 COMPANY 表了:

    sqlite>.tables
    sqlite>
    

      

    4.向表中的字段添加数据

    INSERT INTO

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

      在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。也就是要插入到哪个字段。

      如果要为表中的所有列添加值,您也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。SQLite 的 INSERT INTO 语法如下:

    INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);  

    实例:

    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 );

      也可以使用第二种语法在 COMPANY 表中创建一个记录,如下所示:

    INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
    

      

    5.获取表中数据

    SELECT语法:

    SELECT column1, column2, columnN FROM table_name;
    

      在这里,column1, column2...是表的字段,他们的值即是您要获取的。如果您想获取所有可用的字段,那么可以使用下面的语法:

    SELECT * FROM table_name;

    实例:

    假设 COMPANY 表有以下记录:

    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
    

      使用 SELECT 语句获取并显示所有这些记录。在这里,前两个命令被用来设置正确格式化的输出。

    sqlite>.header on
    sqlite>.mode column
    sqlite> SELECT * FROM COMPANY;
    

      最后,将得到以下的结果:

    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
    

      如果只想获取 COMPANY 表中指定的字段,则使用下面的查询:

    sqlite> SELECT ID, NAME, SALARY FROM COMPANY;
    

      上面的查询会产生以下结果:

    ID          NAME        SALARY
    ----------  ----------  ----------
    1           Paul        20000.0
    2           Allen       15000.0
    3           Teddy       20000.0
    4           Mark        65000.0
    5           David       85000.0
    6           Kim         45000.0
    7           James       10000.0
    

      

  • 相关阅读:
    Codeforces 512E
    UOJ #36 -【清华集训2014】玛里苟斯(线性基+暴搜)
    Codeforces 1188E
    洛谷 P7163
    C++ Boost库 操作日期与时间
    C/C++ 搜索缝隙并插入ShellCode
    线性代数学习之正交性,标准正交矩阵和投影
    洛谷 P5851 [USACO19DEC]Greedy Pie Eaters P(区间dp)
    洛谷 [NOIP2009 普及组] 道路游戏(dp)
    洛谷 P2890 [USACO07OPEN]Cheapest Palindrome G(区间dp)
  • 原文地址:https://www.cnblogs.com/zhuangquan/p/13225362.html
Copyright © 2011-2022 走看看