我有两个或更多列表,例如:
name = ['Chris', 'John', 'Louis']
surname = ['Brown', 'Green', 'Red']
car = ['Audi', 'Mercedes', 'Ferrari']
Run Code Online (Sandbox Code Playgroud)
我想要实现的是创建一个sql数据库,其中每个列表都是一列,这样就像:第一行中的"Chris",第二行中的"Brown"和第三行中的"Audi" - 等等.我的实际python脚本是以下一个,但我无法弄清楚如何保存列表:
connection = sqlite3.connect("name.db")
cursor = connection.cursor()
cursor.execute("DROP TABLE IF EXISTS peopleList")
cursor.execute("CREATE TABLE peopleList(Name TEXT, Surname TEXT, Car TEXT)")
Run Code Online (Sandbox Code Playgroud) 我在这里从Codecademy做SQL转换课程.我不确定他们为什么在GROUP BY子句之后使用这些数字以及这些数字正在做什么.任何人都可以通过这个课程这么好,让我知道吗?
SELECT dep_month,
dep_day_of_week,
dep_date,
COUNT(*) AS flight_count
FROM flights
GROUP BY 1,2,3
Run Code Online (Sandbox Code Playgroud) 当我尝试向Web2py数据库添加新记录时,出现此错误。我已将存储库从另一台计算机上移开,但是我所有的文件都是相同的。
我以前的数据库DAL连接参数如下:
from gluon.contrib.appconfig import AppConfig
myconf = AppConfig(reload=True)
if not request.env.web2py_runtime_gae:
db = DAL(myconf.get('db.'+myconf.get('db.mode')+'_uri'),
pool_size=myconf.get('db.pool_size'),
migrate=myconf.get('db.migrate'),
migrate_enabled=myconf.get('db.migrate_enabled'),
#fake_migrate_all=myconf.get('db.fake_migrate_all'),
fake_migrate_all=True,
check_reserved=['all'])
else:
db = DAL('google:datastore+ndb')
session.connect(request, response, db=db)
Run Code Online (Sandbox Code Playgroud)
它给了我user_auth找不到错误,因此我按照官方文档将其更改为:
from gluon.contrib.appconfig import AppConfig
myconf = AppConfig(reload=True)
if not request.env.web2py_runtime_gae:
db = DAL('sqlite://storage.sqlite', pool_size=1, check_reserved=['all'], migrate=False, fake_migrate_all=True)
else:
db = DAL('google:datastore+ndb')
Run Code Online (Sandbox Code Playgroud)
它显示了/ database和“ Database_Administration”控制台中的所有表,我尝试添加新记录,但出现以下错误。
Web2py Error" <class 'sqlite3.OperationalError'> no such table: application
Run Code Online (Sandbox Code Playgroud)
我的应用程序中没有名为“应用程序”的表,因此它必须与应用程序相关。请指教。
我目前正在尝试使用EF Core构建UWP,并决定做出决定,因为我看到今天的更新随附2.0支持,以将EF 2.0与UWP定位为16299及更高版本。
使用示例dotnet核心控制台应用程序,我确定EF Core可以正常工作(迁移等)。当我去从事UWP工作时,遇到了以下错误,该错误似乎与Nuget有关:
Error
Cannot find type Microsoft.EntityFrameworkCore.Metadata.Internal.RelationalFullAnnotationNames
in module Microsoft.EntityFrameworkCore.Relational.dll
Run Code Online (Sandbox Code Playgroud)
我已经安装了相关的软件包(据我所知)。我不知道还有什么进一步的信息,因此我将根据需要更新我的信息。
此外,输出日志错误更具描述性:
C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\XamlCompiler\Microsoft.Windows.UI.Xaml.Common.targets(353,5): Xaml Internal Error error WMC9999: Cannot find type Microsoft.EntityFrameworkCore.Metadata.Internal.RelationalFullAnnotationNames in module Microsoft.EntityFrameworkCore.Relational.dll.
编辑:虽然我个人不再寻找解决方案,但这是我在将EF Core 2.0与Sqlite结合使用时遇到的问题。我现在没有设置环境,但是如果发布了任何特定于Sqlite的步骤,我将很高兴进行设置。
我有这个SQL查询?
SELECT COUNT(*) FROM PHRASE WHERE JLPT = 1
SELECT COUNT(*) FROM PHRASE WHERE JLPT = 2
SELECT COUNT(*) FROM PHRASE WHERE JLPT = 3
SELECT COUNT(*) FROM PHRASE WHERE JLPT = 4
Run Code Online (Sandbox Code Playgroud)
有没有办法可以将这些查询合并为1,以便计算出有多少JLPT行的值为1,2,3和4?
请考虑此计划细分:
Cursor cursor = mDatabase.query(TABLE_NAME, mColumns, null, null,null, null, null);
int nRows = cursor.getCount();
Run Code Online (Sandbox Code Playgroud)
请注意,从Log下面的输出中,这会将正确的行数返回到nRows-86000.
以下是任何精通SQL的开发人员都希望将86000返回到x:
Cursor c2 = mDatabase.rawQuery("select count(*) from " + TABLE_NAME, null);
int x = c2.getCount();
Run Code Online (Sandbox Code Playgroud)
这就是为什么他们会期望--sqlite3.exe产生这样的结果:
sqlite> select count(*) from wordlist;
86000
Run Code Online (Sandbox Code Playgroud)
但是,xAndroid SQLite 返回的结果是1.
这Log是上面代码底部的语句:
Log.w("`````dbDump","rows: " + nRows + " or is it " + x + " rows?");
Run Code Online (Sandbox Code Playgroud)
这是它的输出:
W/`````dbDump: rows: 86000 or is it 1 rows?
Run Code Online (Sandbox Code Playgroud)
答案是数据库有86000行,而不是1.
我的问题很简单(并在标题中说明):
为什么有人试图(即使松散地)模拟SQL设计常用函数,例如 …
我正在尝试创建一个简单的SQLite数据库,允许我存储电子邮件地址和时间戳.我创建了这样的表:
$sql =<<<EOF
CREATE TABLE ENTRIES
(ID INT PRIMARY KEY NOT NULL,
EMAIL EMAIL NOT NULL,
TIMESTAMP DATETIME DEFAULT CURRENT_TIMESTAMP);
EOF;
Run Code Online (Sandbox Code Playgroud)
我正在尝试插入这样的电子邮件:
$sql =<<<EOF
INSERT INTO ENTRIES (EMAIL)
VALUES (test@test.com);
EOF;
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误
Run Code Online (Sandbox Code Playgroud)NOT NULL constraint failed: ENTRIES.ID
我假设这与ID和自动增量有关吗?我已阅读文档,并建议不要使用自动增量.我哪里错了?
我觉得这应该很容易,但我无法弄清楚..
假设我有两张桌子
x y
1 1 2
2 2 3
3 3 4
Run Code Online (Sandbox Code Playgroud)
和
x y
1 4 2
2 16 1
3 5 1
4 5 3
Run Code Online (Sandbox Code Playgroud)
我想找到行数之间的差异(这里是4-3).
我试过了
ALTER TABLE table1 ADD COLUMN TBL CHAR DEFAULT "Table 1";
ALTER TABLE table2 ADD COLUMN TBL CHAR DEFAULT "Table 2";
SELECT COUNT(*)
FROM
(SELECT *
FROM table1
UNION SELECT *
FROM table2 )
GROUP BY TBL ;
Run Code Online (Sandbox Code Playgroud)
这确实给了我个别行数,但......不是差别.
我正在使用sqlite,所以空间对我来说是一个问题.我想要一张表来存储一些城市的历史温度数据.表就像
city_name 2018_04_04 2018_04_03 2018_04_02 ......
Run Code Online (Sandbox Code Playgroud)
但问题是这些历史温度记录的范围对于不同的城市是不同的.例如,对于纽约,温度记录从公元1800年开始,伦敦的温度记录从公元1600年开始.因此,如果我构建一个列,其列以1600 AD开始,那么将会有大量空间填充Null.据我所知,如果数据是浮点数,Null也会占用空间.
我应该如何构建这个表,以便它"更智能"并填充更多有用的数据?或者至少"强制"Null不占用任何空间?
我有以下简单的SQLite脚本来创建带有版本控制表的新数据库:
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS `db_versions` (
`version` integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`name` varchar ( 50 ) DEFAULT NULL UNIQUE,
`date_defined` datetime DEFAULT NULL,
`comments` text
);
INSERT INTO `db_versions` VALUES (0,'initial-create','2017-12-02 14:41:56',NULL);
COMMIT;
Run Code Online (Sandbox Code Playgroud)
在数据库浏览器中运行此脚本以便SQLite正确记录只有1行受影响(插入)的日志.但是,当我尝试使用Mono(Mono.Data.Sqlite)在代码中执行此脚本时,脚本显然会影响2行.这是代码:
using (var conn = new SqliteConnection(_connStr)) {
await conn.OpenAsync(cancellationToken);
using (SqliteCommand comm = conn.CreateCommand()) {
comm.CommandType = CommandType.Text;
comm.CommandText = @"
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS `db_versions` (
`version` integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`name` …Run Code Online (Sandbox Code Playgroud)