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; -- 方法1sqlite> .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; -- 方法1sqlite> 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 Asqlite> drop table if exists A -- 将A表删除sqlite> alter table B rename to A -- 将B表重命名为A
赞 (0)