Android 中创建的数据库文件默认放在那里的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 中创建的数据库文件默认放在那里的相关的知识,希望对你有一定的参考价值。

默认路径是/data/data/然后是你创建的包名,然后就找到你创建的数据库名字了 

参考技术A 在根文件夹下的 /data/data/your package name/database/xxx.db
下面。推荐用re浏览器访问。还可以直接查看数据库文件。

另外这里有安卓4.0目录结构的介绍。
http://blog.sina.com.cn/s/blog_c92f7b180101dtsw.html

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、php、Java等,还有ODBC接口,同样比起mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
参考技术B data/data目录下 参考技术C 是的,找你创建工程的时候 写的那个包名下面的 database 下

如何为数据库中创建的所有表设置默认排序规则?

【中文标题】如何为数据库中创建的所有表设置默认排序规则?【英文标题】:How do I set default collation for all tables that are created in a database? 【发布时间】:2011-10-14 05:16:14 【问题描述】:

我有一个从损坏的数据库中提取的数据库转储,我需要将其导入到全新安装中。但是,原来的数据库似乎已经设置为使用 utf8_unicode_ci。

当将此转储导入干净的数据库时,所有数据库都是使用默认的 utf8_general_ci 创建的,这会为我提供包括 ß 在内的单词的重复条目,因为一般会生成 'ß' == 's',而 utf8_unicode_ci 应该有 'ß' == 'ss'

但是,在导入mysql时,创建表时似乎总是选择默认的utf8_general_ci,即使我将数据库(架构)默认设置为utf8_unicode_ci。

有没有办法强制它使用 utf8_unicode_ci 创建表,而不必在我的转储中注入 alter table 语句?它有几 GB 大小,手动修改会很痛苦。

在系统范围内配置 MySQL 很好。

我试过设置:

collation-server=utf8_unicode_ci

在 my.cnf 中,但这似乎没有为表创建设置默认排序规则。

【问题讨论】:

不,我正在使用命令行导入,mysql db_name < dbdump.sql 【参考方案1】:

今天早上我正在处理同样的问题,我能够通过以下方式设置表格排序规则。

DROP TABLE IF EXISTS `agtAgentTypes`;
CREATE TABLE `agtAgentTypes` (
  `agentTypeID` int(11) NOT NULL,
  `agentType` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`agentTypeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;

由于某种原因,引擎和字符集似乎需要一个 =,但如果有一个,排序规则就会出错。我试了一下,因为我注意到 MySQL Charset Examples 也没有使用 =。

这是针对 MySQL Community Server 5.5.32-cll-lve 进行测试的。

【讨论】:

太好了,它也对我有用。我一直在尝试使用 = 并遇到错误。【参考方案2】:

如果您在创建语句中指定字符集,显然没有办法强制对新创建的表进行排序,这意味着如果您有:

CREATE TABLE foo
...
CHARSET=utf8;

它将隐式设置为 utf8_general_ci,这是该字符集的默认排序规则。这与数据库设置、系统设置和连接设置无关。

我最终调用了这个:

 cat dump.sql|sed s/CHARSET=utf8/CHARSET=utf8\ COLLATE=utf8_unicode_ci/ > dump_replaced.sql

然后就等着了。

【讨论】:

【参考方案3】:

如果您使用的是 phpmyadmin,请阅读以下文章:

http://kb.mediatemple.net/questions/138/Default+MySQL+character+set+and+collation#gs

或者试试这个方法

CREATE TABLE tbl_name (column_list)
    [[DEFAULT] CHARACTER SET charset_name]
    [COLLATE collation_name]]

ALTER TABLE tbl_name
    [[DEFAULT] CHARACTER SET charset_name]
    [COLLATE collation_name]

Reference

【讨论】:

但我不想更改创建语句,所有创建语句都在数 GB 大的转储中。 查看我在下面给出的链接。有一个关于如何使用 sed 更新转储中的编码的说明。 好吧,它说明了如何删除转储中的任何字符集规范。我最终在转储中直接使用 sed 替换了 CREATE 语句,因为字符集规范隐式设置了排序规则,而不考虑数据库或连接上的排序规则。

以上是关于Android 中创建的数据库文件默认放在那里的的主要内容,如果未能解决你的问题,请参考以下文章

无法打开在 Android 中创建的 SQLite DB(文件已加密或不是数据库)

是否可以将在用户定义的函数中创建的数据表放在全局环境中?

在 Windows 资源管理器中看不到在 android 中创建的文件 [重复]

如何更改在 Google App Inventor 中创建的 android 应用程序的图标?

在当前目录中创建的新文件夹

如何释放在子对话框中创建的 CWin 对象以避免内存泄漏