SQLite的sqlite_master表】的更多相关文章

SQLite的sqlite_master表   sqlite_master表是SQLite的系统表.该表记录该数据库中保存的表.索引.视图.和触发器信息.每一行记录一个项目.在创建一个SQLIte数据库的时候,该表会自动创建.sqlite_master表包含5列.   type列记录了项目的类型,如table.index.view.trigger. name列记录了项目的名称,如表名.索引名等. tbl_name列记录所从属的表名,如索引所在的表名.对于表来说,该列就是表名本身. rootpag…
  SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引.每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式. SQLITE_MASTER 表看起来如下: CREATE TABLE sqlite_master (  type TEXT,  name TEXT,  tbl_name TEXT,  rootpage INTEGER,  sql TEXT  );  对于表来说,type 字段永远是 ‘t…
SQLite判断表是否存在:其实很简单,只要查看sqlite_master表中是否存在这条数据就可以知道了.SELECT count(*) FROM sqlite_master WHERE type='table' AND name='tableName';…
sqlite查看所有表名.判断表是否存在,字段名及字段信息   sqlite查看所有表名及字段名查询table,type 段是'table',name段是table的名字, select name from sqlite_master where type='table' order by name; 如果type段是'index', 则name 是index的名字,tbl_name是index所拥有的table的名字. 如果type段是'table',则name是表名由此可以进一步引深:判断指…
数据库管理 创建数据库,创建完成之后自动进入 [root@localhost ~]# sqlite3 /www/wwwroot/task.db 使用数据库,如果 /www/wwwroot 路径下面没有task.db这个数据库,则会自动创建数据库 [root@localhost ~]# sqlite3 /www/wwwroot/task.db 其他命令 sqlite> .databases # 查看数据库列表 sqlite> .quit # 退出 sqlite 提示符 表管理 每一个 SQLit…
sqlite会自动维护一个系统表sqlite_master,该表存储了我们所创建的各个table, view, trigger等等信息. sqlite_master表数据字段: type: 类型,取值一般为table, view name: tbl_name: 表名 rootpage: sql:创建表或者视图的sql语句,可以从该sql语句中判断某字段是否存在 sqlite_master表结构如下: CREATE TABLE sqlite_master ( type TEXT, name TEX…
代码之余,将开发过程中经常用的代码片段备份一下,如下的代码是关于python在sqlite动态创建表的代码,应该能对各位有所用. import sqlite3 as db conn = db.connect('mytest.db')cursor = conn.cursor()cursor.execute("create table person(name text, age text, address text)")print("table created")…
其实在Mysql中,多表联合update不是什么难事. 语法: 1 UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] 示例: 1 UPDATE table1, table2 SET table1.value=table2.value, a.type=b.type WHERE table1.sid=table2.sid; 同样的,在SqlServer中也可以很简单…
SQLite的sqlite_sequence表   sqlite_sequence表也是SQLite的系统表.该表用来保存其他表的RowID的最大值.数据库被创建时,sqlite_sequence表会被自动创建.该表包括两列.第一列为name,用来存储表的名称.第二列为seq,用来保存表对应的RowID的最大值.该值最大值为9223372036854775807.当对应的表增加记录,该表会自动更新.当表删除,该表对应的记录也会自动删除.如果该值超过最大值,会引起SQL_FULL错误.所以,一旦发…
SQL查询的基本原理:两种情况介绍. 第一.   单表查询:依据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后依据SELECT的选择列选择对应的列进行返回终于结果. 第二.   两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接连接类型进行过滤形成中间表:然后依据WHERE条件过滤中间表的记录,并依据SELECT指定的列返回查询结果. 第三.   多表连接查询:先对第一个和第二个表依照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到全部的表都连…
用下面的语句肯定是行不通的,语句不支持 truncate table t_Records 方法:1.删除表数据 2.重置自动增长列 where name='t_Records' /*name :是表名*/ SQLite Expert软件网址:  http://www.sqliteexpert.com/…
一.数据库的创建 1.文件的创建      //引用,如果文件不存在是不会创建的   File  file = new File("haha.txt"):     //输出流写数据,文件才会被创建   FileOutputStream  fos = new FileOutputStream(file):   fos.write("".getBytes()):   fos.close(): 2.数据库的创建 //执行下面这一点代码,数据库是不会被创建出来的.相当于Fi…
注意点1 要注意SQLite datatime()函数为何获取不到系统本地时间?这个问题,坑死我了. 解决方法详见这篇文章:SQLite datatime()函数为何获取不到系统本地时间? 注意点2: SQLite 支持以下五个日期和时间函数: 序号 函数 实例 1 date(timestring, modifier, modifier, ...) 以 YYYY-MM-DD 格式返回日期. 2 time(timestring, modifier, modifier, ...) 以 HH:MM:S…
最近处理一个较大数据的sqlite库,基础表300万条,结果表30万条左右,我的笔记本跑起来还算流畅.最后结果,需要两个表连接,把另一个表的计算结果更新过来,却遇到麻烦.sqliter并不支持常见的连接更新: update a set a.id =b.id from table_1 a inner join table_2 b on a.name=b.name 查了一下,只能这样: update table1 set col1=(select col1 from table2 where col…
前面已经说了怎样打开和关闭数据库,这次要说得是怎样运行SQL语句,来创建一张表. 要用的的函数: sqlite3_exec(sqlite3* db, const char *sql, sqlite_callback callback, void *data, char **errmsg) 參数: db:已经打开的数据库实例 sql:SQL语句,是一个字符串 callback:是一个回调函数 data:做为回调函数的第一个參数 errmsg:用于带回错误信息 该回调函数有两种返回值类型. 1.返回…
SQLite并不支持TRUNCATE TABLE语句 方式一: DELETE FROM [Tab_User] --不能将递增数归零 方式二: DELETE FROM sqlite_sequence WHERE name = ‘TableName’; --可以将递增数归零 详细看我从其他博友园子里扒来的介绍: SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容.但SQLite不支持这个语句.在SQLite中直接使用“DELETE FROM TableName”就可以了.对于大多数…
一.数据库的创建 1.文件的创建      //引用,如果文件不存在是不会创建的   File  file = new File("haha.txt"):     //输出流写数据,文件才会被创建   FileOutputStream  fos = new FileOutputStream(file):   fos.write("".getBytes()):   fos.close(): 2.数据库的创建 //执行下面这一点代码,数据库是不会被创建出来的.相当于Fi…
最后要使用到号码归属地的查询,在网上找到一个数据库文件.大小有12M多,压缩成zip也有1.9M,这样对于一个apk的大小非常不利,后来看了一下数据库的内容,发现有非常多冗余.特别是中文字符占用非常大的空间,在网上找了一种方法把一个表进行分离.分成两个表,两个表之间能够使用外键的形式进行关联.这里用到的几个表名:tb_city.mob_location.tb_mobile,终于是要把表mob_location分离成tb_city.tb_mobile在SQLite Expert上能够使用sql语句…
今天我们来了解下VS使用的众多数据库中比较轻量的数据库SQLITE,好处当然就在于“轻~”!!!.自己理解…
原文摘自 http://www.tuicool.com/articles/jmmMnu 一般数据库升级时,需要检测表中是否已存在相应字段(列),因为列名重复会报错.方法有很多,下面列举2种常见的方式: 1.根据 cursor.getColumnIndex(String columnName) 的返回值判断,如果为-1表示表中无此字段 /** * 方法1:检查某表列是否存在 * @param db * @param tableName 表名 * @param columnName 列名 * @re…
SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引.每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式. SQLITE_MASTER 表看起来如下: CREATE TABLE sqlite_master (type TEXT,name TEXT,tbl_name TEXT,rootpage INTEGER,sql TEXT);对于表来说,type 字段永远是 ‘table’,name 字段永远是…
如何列出SQLite数据库中的所有表 SQLite数据库中的信息存在于一个内置表sqlite_master中,在查询器中可以用 select * from sqlite_master 来查看,如果只要列出所有表名的话,则只要一个语句: SELECT name FROM sqlite_master WHERE type='table' order by name,因为表的列type固定为'table' 一.创建数据表: 该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方…
1.列出当前db文件中所有的表的表名 SQL语句:SELECT * FROM sqlite_master WHERE type='table'; 结构如下: 注:网上有人说可以带上db文件的名称,如:SELECT * FROM dbname.sqlite_master WHERE type='table'; 但我试了不行...难道我姿势不对~ 2.判断某表是否存在SQL语句:select count(*) from sqlite_master where type='table' and nam…
SQLite语句: cmd.CommandText = "SELECT count(*) from sqlite_master where type='table' and name='tableName'; int a= Convert.ToInt32(cmd.ExecuteScalar()); 如果存在,则返回数值1: 如果不存在,则返回数值0. if ( a== 0) // 不存在此数据表 解释:每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式…
转自:http://blog.sina.com.cn/s/blog_6afeac500100yn9k.html SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引.每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式. SQLITE_MASTER 表看起来如下: CREATE TABLE sqlite_master (type TEXT,name TEXT,tbl_name TEXT,rootpa…
在项目中遇到需要判断sqlite数据库中某个表是否存在,上网搜索一些资料后,解决了问题,如下: 首先,在每个sqlite数据库中,都有一个名为sqlite_master的表,它定义了数据库的模式,它的结构如下: sqlite_master ( type TEXT, //项目的类型,如table.index.view.trigger name TEXT, //项目的名称,如表名.索引名等 tbl_name TEXT, //所从属的表名,如索引所在的表名.对于表来说,该列就是表名本身 rootpag…
转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schema. 在 SQL 语句中,专门有一些语句用来定义数据库架构,这些语句被称为“数据库定义语言”,即 DDL. SQLite 数据库引擎支持下列三种 DDL 语句: CREATE ALTER TABLE DROP 其中,CREATE 语句用来创建表…
一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schema. 在 SQL 语句中,专门有一些语句用来定义数据库架构,这些语句被称为“数据库定义语言”,即 DDL. SQLite 数据库引擎支持下列三种 DDL 语句: CREATE ALTER TABLE DROP 其中,CREATE 语句用来创建表 Table.视图 View.索引 Index.关系 R…
SQLite -创建表 SQLite CREATE TABLE语句用于创建一个新表在任何给定的数据库.创建一个基本表包括表命名和定义其列,每列的数据类型 语法: CREATE TABLE语句的基本语法如下: CREATE TABLE database_name.table_name( column1 datatype PRIMARY KEY(one or more columns), column2 datatype, column3 datatype, ..... columnN dataty…
问题 我们在生产环境中使用SQLite时中发现建表报“table xxx already exists”错误,但DB文件中并没有该表.后面才发现这个是SQLite在实现过程中的一个bug,而这个bug与数据字典的一致性相关,下面这篇文章主要讨论SQLite的缓存机制,以及缓存一致性实现的策略,希望对大家了解SQLite缓存机制有一定的帮助. 缓存 SQLite中缓存主要包括两方面,数据字典缓存和数据页缓存.SQLite本身是一个文件数据库,所有的数据都在一个DB文件中,文件以块(page)的形式…