sqlite数据库每个文件都是一个database,因此同一个文件内部不再划分database。sqlite没有提供像MysqL那样的show tables;
和desc 表名
类似的语句。许多数据库的元数据也是存储在一个表里面,MysqL是这样,sqlite也是这样。在sqlite中,这个表的名字叫sql_master。
查看表的内容
select * from sqlite_master
查看表的每列
sqlite> pragma table_info(sqlite_master);0|type|text|0||01|name|text|0||02|tbl_name|text|0||03|rootpage|integer|0||04|sql|text|0||0
sqlite_master表有5列:
type :可取值包括table,vIEw,index name:表名,视图名,索引名 tbl_name:表名,如果是索引,表示索引所对应的表 rootpage sql : 创建数据库对象时的语句不管是表或视图还是索引,sql 字段是原先用 CREATE table 、CREATE VIEW 或 CREATE INDEX 语句创建它们时的命令文本。对于自动创建的索引(用来实现 PRIMARY KEY 或 UNIQUE 约束),sql字段为NulL。
sqlITE_MASTER 表是只读的。不能对它使用 UPDATE、INSERT 或 DELETE。 它会被 CREATE table、CREATE INDEX、DROP table 和 DROP INDEX 命令自动更新。
关于sqlite的数据库元信息,知道sqlmaster和pragma table_info这两点就已经足够了。最后,来记忆一下sqlite常用语句。
新增一列命令:ALTER? table?? table-name?ADD ColUMN? column-namecolumn-type
例如:在student表中添加一列名为name,类型为varchar:
alter table student add column name varchar;
alter table catalog add column xxx1 char(20) default ‘‘;
sqlite不支持删除列,所以只能用另一种方式来实现删除列:先把想要的列复制到新表,然后把旧表删除,最后把新表重命名为旧表。
create table B asselect y,z from A
drop table ifexists A
alter table Brename to A
sqlite不支持重命名列,所以只能用类似删除一列的方式:数据转移。
参考资料https://blog.csdn.net/runtime233/article/details/52439881
总结以上是内存溢出为你收集整理的sqlite元数据全部内容,希望文章能够帮你解决sqlite元数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)