标签: sqlite

MySQL,PostgreSQL和SQLite中数据库列类型的比较?(跨映射)

我试图找到一些方法来关联最常用的数据库中的列类型:MySQL,PostgreSQLSQLite.

这是我到目前为止所做的,但我担心它没有完成,我需要一些有更多经验的人来帮助我完成任何缺失的类型.

MySQL                   PostgreSQL          SQLite

TINYINT                 SMALLINT            INTEGER
SMALLINT                SMALLINT
MEDIUMINT               INTEGER
BIGINT                  BIGINT
BIT                     BIT                 INTEGER
_______________________________________________________

TINYINT UNSIGNED        SMALLINT            INTEGER
SMALLINT UNSIGNED       INTEGER
MEDIUMINT UNSIGNED      INTEGER
INT UNSIGNED            BIGINT
BIGINT UNSIGNED         NUMERIC(20)
_______________________________________________________

DOUBLE                  DOUBLE PRECISION    REAL
FLOAT                   REAL                REAL
DECIMAL                 DECIMAL             REAL
NUMERIC                 NUMERIC             REAL
_______________________________________________________

BOOLEAN                 BOOLEAN             INTEGER
_______________________________________________________

DATE                    DATE                TEXT
TIME                    TIME
DATETIME                TIMESTAMP
_______________________________________________________

TIMESTAMP DEFAULT       TIMESTAMP DEFAULT   TEXT
NOW()                   NOW()   
_______________________________________________________

LONGTEXT …
Run Code Online (Sandbox Code Playgroud)

mysql database sqlite postgresql types

66
推荐指数
1
解决办法
4万
查看次数

66
推荐指数
6
解决办法
5万
查看次数

SQL在日期之间选择

我正在运行sqlite来为销售报告选择两个范围之间的数据.要从两个日期之间选择数据,请使用以下语句:

SELECT * FROM test WHERE date BETWEEN "11/1/2011" AND "11/8/2011";
Run Code Online (Sandbox Code Playgroud)

该声明甚至包括那些超出标准的日期.您看到输入的日期格式与我返回的格式相同.我不确定什么是错的,但感谢我能找到的任何帮助.谢谢!

sql sqlite

66
推荐指数
4
解决办法
10万
查看次数

我可以从多个连接同时读写SQLite数据库吗?

我有一个由两个进程使用的SQLite数据库.我想知道,使用最新版本的SQLite,当一个进程(连接)启动一个事务来写入数据库时​​,另一个进程是否能够同时从数据库中读取?

sqlite

66
推荐指数
3
解决办法
4万
查看次数

核心数据和iOS 7:持久性存储的不同行为

我正准备更新基于Core Data的应用程序以修复iOS 7.我使用Xcode 5和iOS 7 SDK GM.但是我意识到持久性存储的不同行为(即a UIManagedDocument):在iOS 7构建之前,persistentStore文档文件夹中只有一个文件(有时还有第二个文件persistentStore-journal).

在iOS 7构建(干净安装)中,持久性存储现在有三个文件:

  • persistentStore
  • persistentStore-wal
  • persistentStore-shm

Apple现在默认将日志模式更改为WAL吗?我想知道我的应用程序是否有影响(想想用户如何从上一版本更新)?是否最好禁用WAL - 如果是这样,我怎么能用iOS 7/UIManagedDocument

sqlite core-data ios uimanageddocument ios7

66
推荐指数
1
解决办法
2万
查看次数

如何在Android应用程序中执行SQLite查询?

我试图在我的Android数据库上使用此查询,但它不返回任何数据.我错过了什么吗?

SQLiteDatabase db = mDbHelper.getReadableDatabase();
    String select = "Select _id, title, title_raw from search Where(title_raw like " + "'%Smith%'" +
    ")";        
    Cursor cursor = db.query(TABLE_NAME, FROM, 
            select, null, null, null, null);
    startManagingCursor(cursor);
    return cursor;
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

65
推荐指数
4
解决办法
20万
查看次数

SQLite,python,unicode和非utf数据

我开始尝试使用python在sqlite中存储字符串,并得到消息:

sqlite3.ProgrammingError:除非使用可解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串.强烈建议您只需将应用程序切换为Unicode字符串.

好的,我切换到Unicode字符串.然后我开始收到消息:

sqlite3.OperationalError:无法使用文本'SigurRós'解码为UTF-8列'tag_artist'

尝试从数据库中检索数据时.更多的研究和我开始在utf8编码,但随后'SigurRós'开始看起来像'SigurRós'

注意: @John Machin指出,我的控制台设置为'latin_1'显示.

是什么赋予了?在阅读完这篇文章后,描述了我所处的完全相同的情况,似乎建议忽略其他建议并且毕竟使用8位字节串.

在开始这个过程之前,我对unicode和utf了解不多.我在过去的几个小时里学到了很多东西,但我仍然不知道是否有办法正确地将'ó'从latin-1转换为utf-8而不是破坏它.如果没有,为什么sqlite'强烈推荐'我将我的应用程序切换到unicode字符串?


我将用最后24小时内学到的所有内容的摘要和一些示例代码来更新这个问题,以便我的鞋子里的人可以有一个简单的(呃)指南.如果我发布的信息有任何错误或误导,请告诉我,我会更新,或者你们中的一个高级人员可以更新.


答案摘要

让我首先说明我理解的目标.处理各种编码的目标,如果您尝试在它们之间进行转换,则要了解源编码是什么,然后使用该源编码将其转换为unicode,然后将其转换为所需的编码.Unicode是基础,编码是该基础的子集的映射.utf_8为unicode中的每个字符都有空间,但由于它们与例如latin_1不在同一个地方,因此以utf_8编码并发送到latin_1控制台的字符串将不会像您期望的那样.在python中,获取unicode和进入另一个编码的过程如下:

str.decode('source_encoding').encode('desired_encoding')
Run Code Online (Sandbox Code Playgroud)

或者如果str已经是unicode

str.encode('desired_encoding')
Run Code Online (Sandbox Code Playgroud)

对于sqlite我实际上并不想再次编码,我想解码它并保持unicode格式.当您尝试在python中使用unicode和编码时,您可能需要注意以下四件事.

  1. 要使用的字符串的编码,以及要将其转换为的编码.
  2. 系统编码.
  3. 控制台编码.
  4. 源文件的编码

阐述:

(1)当您从源读取字符串时,它必须具有一些编码,如latin_1或utf_8.在我的情况下,我从文件名中获取字符串,所以不幸的是,我可以获得任何类型的编码.Windows XP使用UCS-2(Unicode系统)作为其本机字符串类型,这似乎是在欺骗我.对我来说幸运的是,大多数文件名中的字符不会由多个源编码类型组成,我认为我的全部都是完全latin_1,完全是utf_8,或者只是简单的ascii(这是两者的子集)那些).所以我只是阅读它们并将它们解码,就像它们仍处于latin_1或utf_8一样.但是,有可能你可以将latin_1和utf_8以及在Windows上的文件名中混合在一起的任何其他字符.有时这些角色可以显示为框,有时它们看起来很糟糕,有时它们看起来是正确的(重音符号等等).继续.

(2)Python有一个默认的系统编码,在python启动时设置,在运行时不能更改.详情请见此处.脏的总结...这里是我添加的文件:

\# sitecustomize.py  
\# this file can be anywhere in your Python path,  
\# but it usually goes in ${pythondir}/lib/site-packages/  
import sys  
sys.setdefaultencoding('utf_8')  
Run Code Online (Sandbox Code Playgroud)

此系统编码是在没有任何其他编码参数的情况下使用unicode("str")函数时使用的编码.换句话说,python试图根据默认的系统编码将"str"解码为unicode.

(3)如果您正在使用IDLE或命令行python,我认为您的控制台将根据默认的系统编码显示.我出于某种原因使用带有eclipse的pydev,所以我必须进入我的项目设置,编辑测试脚本的启动配置属性,转到Common选项卡,然后将控制台从latin-1更改为utf-8,以便我可以直观地确认我在做什么工作.

(4)如果你想要一些测试字符串,例如

test_str = "ó"
Run Code Online (Sandbox Code Playgroud)

在你的源代码中,你必须告诉python你在该文件中使用了什么样的编码.(仅供参考:当我输入错误编码时,我必须使用ctrl-Z,因为我的文件变得不可读.)这可以通过在源代码文件的顶部放置一行来实现:

# -*- coding: utf_8 -*-
Run Code Online (Sandbox Code Playgroud)

如果您没有此信息,python会尝试默认将您的代码解析为ascii,因此:

SyntaxError: Non-ASCII character '\xf3' in file _redacted_ on line 81, but no encoding declared; …
Run Code Online (Sandbox Code Playgroud)

python sqlite unicode utf-8 python-2.x

65
推荐指数
4
解决办法
5万
查看次数

使用相同的用户名更新另一个表中的表值

我有两个表,同一列名为user_name,表示table_a,table_b.

我想,从table_b,column_b_1,column_b2,分别复制到table_b1,column_a_1,column_a_2,其中user_name是相同的,如何在sql语句中做到这一点?

sql sqlite

65
推荐指数
3
解决办法
7万
查看次数

IllegalArgumentException:索引1处的绑定值为null

有谁知道这意味着什么?

12-31 20:55:45.861: ERROR/AndroidRuntime(12478): Caused by: java.lang.IllegalArgumentException: the bind value at index 1 is null
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:234)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.database.sqlite.SQLiteQuery.bindString(SQLiteQuery.java:182)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:48)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:330)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:280)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at net.lp.collectionista.providers.ProductContentProvider.query(ProductContentProvider.java:350)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.content.ContentProvider$Transport.query(ContentProvider.java:163)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.content.ContentResolver.query(ContentResolver.java:245)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at net.lp.collectionista.providers.FacadeContentProvider.query(FacadeContentProvider.java:563)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.content.ContentProvider$Transport.query(ContentProvider.java:163)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at android.content.ContentResolver.query(ContentResolver.java:245)
12-31 20:55:45.861: ERROR/AndroidRuntime(12478):     at net.lp.collectionista.util.ScanAddTask.existsProduct(ScanAddTask.java:164) …
Run Code Online (Sandbox Code Playgroud)

database sqlite android android-contentprovider

65
推荐指数
1
解决办法
5万
查看次数

rails install pg - 找不到'libpq-fe.h标头

$ sudo bundle install
Run Code Online (Sandbox Code Playgroud)

结果

Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Using rake (0.9.2.2) 
Using i18n (0.6.1) 
Using multi_json (1.3.6) 
Using activesupport (3.2.8) 
Using builder (3.0.4) 
Using activemodel (3.2.8) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.2) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.3) 
Using actionpack (3.2.8) 
Using mime-types (1.19) 
Using polyglot (0.3.3) 
Using treetop (1.4.11) 
Using mail (2.4.4) 
Using actionmailer (3.2.8) 
Using arel (3.0.2) 
Using tzinfo …
Run Code Online (Sandbox Code Playgroud)

sqlite ruby-on-rails pg ruby-on-rails-3

65
推荐指数
8
解决办法
5万
查看次数