美文网首页
SQLite 基本操作

SQLite 基本操作

作者: 岑吾 | 来源:发表于2020-03-30 12:49 被阅读0次

    SQLite的基本语法和MySQL的类似。

    1.数据库操作

    1.1 创建/打开数据库

    直接使用sqlite3 DatabaseName.db就可以打开数据库了,如果数据库不存在,则创建。

    • .help:查看帮助
    • .databases:显示数据库列表
    • .exit/.quit:退出
    • .header on: 显示表头
    • .mode column: 左对齐的列,长太时会被忽略

    如例:

    [root@guoke3915 ~]# sqlite3 guoke.db
    SQLite version 3.7.17 2013-05-20 00:56:22
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    

    1.2 附加数据库

    用时需要用到多库操作的时候,需要附加数据库了。

    attach database 'file_name' as 'database_name';
    

    例如

    sqlite> attach database 'test.db' as 'test';
    sqlite> .database
    seq  name             file                                                      
    ---  ---------------  ----------------------------------------------------------
    0    main             /root/guoke.db                                            
    2    test             /root/test.db    
    

    1.3 分离数据库

    只能分离attach添加的数据库,不能分离main

    detach database 'name';
    
    • name为.satabase时显示的name

    例如

    sqlite> detach database 'test';
    sqlite> .database
    seq  name             file                                                      
    ---  ---------------  ----------------------------------------------------------
    0    main             /root/guoke.db                                            
    

    2. 表操作

    2.1 创建表

    create table 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。

    create table database_name.table_name(
       column1 datatype  primary key(one or more columns),
       column2 datatype,
       column3 datatype,
       .....
       columnN datatype,
    );
    
    • 如果只有一个db时,database_name可以不写,多可以时为.satabase时显示的name

    例如:

    sqlite> create table test(
       ...> id int primary key not null,
       ...> name text not null,
       ...> age int not null
       ...> );
    
    sqlite> .tables
    test
    

    2.2 删除表

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

    drop table database_name.table_name;
    

    例如:

    sqlite> drop table test;
    sqlite> .tables
    

    2.3 增

    insert into 语句用于向数据库的某个表中添加新的数据行。

    insert into table_name [(column1, column2, column3,...columnn)]  
    values (value1, value2, value3,...valuen);
    

    如果是全值添加可以简单化为

    insert into table_name values (value1,value2,value3,...valueN);
    

    例如:

    sqlite> insert into test values(1,'guoke',30);
    sqlite> insert into test values(2,'abc',25);
    

    2.4 查

    select 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集

    select column1, column2, columnn from table_name;
    

    如果查所有的可以用

    select * from table_name;
    

    可以在后面使用where显示查询的过滤条件

    例如:

    sqlite> .header on
    sqlite> .mode column
    sqlite> select * from test;
    id          name        age       
    ----------  ----------  ----------
    1           guoke       30        
    2           abc         25        
       
    sqlite> select * from test where age>28;
    id          name        age       
    ----------  ----------  ----------
    1           guoke       30        
    

    2.5 改

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

    update table_name
    set column1 = value1, column2 = value2...., columnn = valueN
    where [condition];
    

    例如:

    sqlite> update test set age=31 where name='guoke';
    sqlite> select * from test;
    id          name        age       
    ----------  ----------  ----------
    1           guoke       31        
    2           abc         25  
    

    2.6 删

    delete 查询用于删除表中已有的记录。可以使用带有 where 子句的 delete 查询来删除选定行,否则所有的记录都会被删除。

    delete from table_name where [condition];
    

    例如:

    sqlite> delete from test where name='abc';
    sqlite> select * from test;
    id          name        age       
    ----------  ----------  ----------
    1           guoke       31   
    

    相关文章

      网友评论

          本文标题:SQLite 基本操作

          本文链接:https://www.haomeiwen.com/subject/ozieuhtx.html