zoukankan      html  css  js  c++  java
  • Sqlite—数据库管理与表管理

    数据库管理

    创建数据库,创建完成之后自动进入

    [root@localhost ~]# sqlite3 /www/wwwroot/task.db

    使用数据库,如果 /www/wwwroot 路径下面没有task.db这个数据库,则会自动创建数据库

    [root@localhost ~]# sqlite3 /www/wwwroot/task.db

    其他命令

    sqlite> .databases               # 查看数据库列表
    sqlite> .quit                    # 退出 sqlite 提示符
    

    表管理

    每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 里面存储着数据库的数据结构(表结构、视图结构、索引结构等),只可以对它使用查询语句,即SQLITE_MASTER 表是只读的。SQLITE_MASTER 表DDL信息如下:

    CREATE TABLE sqlite_master (type TEXT, name TEXT, tbl_name TEXT, rootpage INTEGER, sql TEXT);

    type:类型(如表、视图、索引等) name:名称   tbl_name:所属表名称   SQL:(表、视图、索引)的DDL语句。

    创建表

    sqlite> create table tb_user(
       ...>   id INTEGER PRIMARY KEY,
       ...>   name TEXT,
       ...>   time TEXT
       ...> );

    查看所有表

    -- 对于表来说,type 字段永远是 'table',name 字段永远是表的名字。所以,要获得数据库中所有表的列表, 使用下列SELECT语句:
    sqlite> SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;   -- 方法1
    sqlite> .table                                                             -- 方法2
    
    -- 对于索引来说,type 等于 'index', name 则是索引的名字,tbl_name 是该索引所属的表的名字, 使用下列SELECT语句:
    sqlite> SELECT name FROM sqlite_master WHERE type='index' ORDER BY name;  
    
    -- 对于视图来说,type 等于 'view', name 则是视图的名字,tbl_name 是该视图所属的表的名字, 使用下列SELECT语句:
    sqlite> SELECT name FROM sqlite_master WHERE type='view' ORDER BY name;  

    检查某个表是否存在

    sqlite> SELECT name FROM sqlite_master WHERE type='table' AND name='表名';
    sqlite> SELECT name FROM sqlite_master WHERE type='table' AND name='tb_task';
    sqlite> SELECT count(*) FROM sqlite_master WHERE type='table' AND name='tb_task';

    查看某个表的完整创建信息

    sqlite> .schema 表名
    sqlite> .schema tb_task

    查看某个表的所有字段信息

    sqlite> PRAGMA table_info(表名);
    sqlite> PRAGMA table_info(tb_task);

    删除表

    sqlite> drop table tb_task;             -- 方法1
    sqlite> drop table if exists tb_task;   -- 方法2
    

    重命名表

    sqlite> alter table tb_task rename to tb_user;   -- 将表tb_task重命名为tb_user
    

    新增列、删除列、重命名列

    -- 新增列
    sqlite> alter table tb_task add column username TEXT;
    
    -- 删除列,A表有x,y,z三列,现在删除x列
    sqlite> create table B as select y,z from A
    sqlite> drop table if exists A        -- 将A表删除
    sqlite> alter table B rename to A     -- 将B表重命名为A
    

      

  • 相关阅读:
    django orm中filter(条件1).filter(条件2)与filter(条件1,条件2)的区别 哈欠涟涟的日志 网易博客
    提示:ERROR 1044 (42000): Access denied for user
    取消选中的区域
    1.XML复习、HTML DOM 复习 2.simpleXML方式解析XML 3.XPath 4,MVC
    JSP的内置对象(session)
    每月自评之三:2013年3月
    HDU1405:The Last Practice
    一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair)(字母不重复,且都为小写字母),然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下:
    一个经典实用的 IPtables Shell 脚本
    static class 静态类
  • 原文地址:https://www.cnblogs.com/liuhaidon/p/11943845.html
Copyright © 2011-2022 走看看