//默认升序
SELECT NumID,ChipID,BatchID,T1_Timestamp FROM main.Table_1004A WHERE Table_1004A.NumID >= 1000 ORDER BY ChipID;
1010 1301000100001000 100 1570877172
1011 1301000100002001 100 1570877359
1016 1301000100004001 100 1570879295
1015 1301000100004002 100 1570879275
1014 1301000100004004 100 1570879275
1013 1301000100004010 100 1570879275
1012 1301000100004020 100 1570879274
/*==========*/
//降序
SELECT NumID,ChipID,BatchID,T1_Timestamp FROM main.Table_1004A WHERE Table_1004A.NumID >= 1000 ORDER BY ChipID DESC;
1012 1301000100004020 100 1570879274
1013 1301000100004010 100 1570879275
1014 1301000100004004 100 1570879275
1015 1301000100004002 100 1570879275
1016 1301000100004001 100 1570879295
1011 1301000100002001 100 1570877359
1010 1301000100001000 100 1570877172
/*==========*/
/*
insert 硬盘的IO速度,最受影响. (如果primier key 是chipID, chipID插入顺序不规律, 但是DB内部会使chipID变有序)
insert 的如果chipID 重复,就crash. 所以还要先查询下,chipID是否已经有了.(T2 也先查询下,没有也报错)
查询时间因为chipID 用RBTree建立了有序索引,所以效率还算可以, 5W记录 8ms.
如果按照之前的表设计, numID 为 primier key autoincrease, (用NumID 为索引建立RBTree)则insert 变快(因为每次都是自增的值,不用改位置), query变慢 chipID无序,
*/
//HD(7200) 写入速度:11个record每秒
SELECT COUNT(*) FROM "Table_1004A" WHERE T1_Timestamp =1571039500;
//SSD(TLC) 写入速度:50个record每秒
SELECT COUNT(*) FROM "Table_1004A" WHERE T1_Timestamp =1571040594;
//Memory 写入速度:大约14757个record每秒(100W/70s),cpu [email protected] 负载25%(可能只用到了单核心,多核心可以加倍), 内存占用100MB左右
SELECT COUNT(*) FROM "Table_1004A" WHERE T1_Timestamp =1571122590; //查询时间118ms
/*==========*/
SELECT * FROM "Table_1004A" WHERE ChipID=1301000100001000;
/*==========*/
//单值修改
UPDATE employees
SET lastname = 'Smith'
WHERE employeeid = 3;
/*==========*/
//多值修改
UPDATE table
SET column_1 = new_value_1,
column_2 = new_value_2
WHERE
search_condition
ORDER column_or_expression
LIMIT row_count OFFSET offset;
/*==========*/
UPDATE Table_1004A SET T2_Timestamp=1571041417 WHERE ChipID=1301000100001011;
SELECT * FROM "Table_1004A" WHERE T2_Timestamp NOTNULL;
SELECT * FROM "Table_1004A" WHERE T2_Timestamp=1571041417;
/*==============
Paginate 页码 共多少页,每页多少数据
https://sqlkata.com/docs/execution/fetching-records
var page1 = query.Paginate(1);
foreach(var item in page1.Each)
{
// print items in the first page
}
var page2 = page1.Next(); // same as query.Paginate(2)
foreach(var item in page2.Each)
{
// print items in the 2nd page
}
*/
var users = query.Paginate(1, 10);
foreach(var user in users.Each)
{
Console.WriteLine($"Id: {user.Id}, Name: {user.Name}");
}
//=================
//找到最大的rowid(如果是自定义的primaryKey, 比如 NumID 则都可以用, 反正是alias 别名)
SELECT *,MAX(rowid) FROM Table_1004A;//推荐
SELECT *,MAX(NumID ) FROM Table_1004A;//推荐
SELECT rowid FROM Table_1004A ORDER BY ROWID DESC LIMIT(1);
SELECT *,rowid FROM Table_1004A ORDER BY ROWID DESC LIMIT(1);
//SELECT *,rowid FROM Table_1004A LIMIT 53000,1000
//返回最后一次insert的rowid,如果没有插入就返回0 (开机重启后也返回0, 是记录在内存中)
SELECT LAST_INSERT_ROWID();
//SELECT * FROM Table_1004A where rowid=LAST_INSERT_ROWID();
SELECT *,rowid "NAVICAT_ROWID" FROM "main"."Table_1004A" LIMIT 53000,1000
//===============
//时间: 0.03s
INSERT INTO "main"."Table_1004A"("ChipID", "ChipType", "BatchID", "T1_TestMode", "T1_Timestamp", "T1_Temp", "T1_ErrSaAddrNum", "T1_ErrSaAddr", "T1_ChipResult", "T1_HandlerResult",
"T2_TestMode", "T2_Timestamp", "T2_Temp", "T2_ErrSaAddrNum", "T2_ErrSaAddr", "T2_ChipResult", "T2_RepairedSaAddr", "T2_HandlerResult", "Comment")
VALUES (1301000100005001, 'XM1004_A_DWL', 100, 'ArrayWR', 1571106878, 120, 5, '1,2,3,4,5', 'Finish_MarchC', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
//INSERT后, LAST_INSERT_ROWID() 结果显示53102 + 显示最后插入信息
1. SELECT LAST_INSERT_ROWID();
2. SELECT *,rowid FROM Table_1004A WHERE rowid= 53102;
//2句话,一句搞定
SELECT *,rowid FROM Table_1004A WHERE rowid=LAST_INSERT_ROWID();
//SQLiteConfigDbOpsEnum sQLiteConfigDbOpsEnum = SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_NONE;
//connection.SetConfigurationOption(sQLiteConfigDbOpsEnum, );
//var users = new XQuery(connection, compiler).From("Users").Limit(10).Get();
var db = new QueryFactory(connection, compiler);
// You can register the QueryFactory in the IoC container
var query = db.Query("UsersTable").Where("Id", 1).Where("Status", "Active").First();
/*
var query = new Query()
.Select("client.Id")
.From("schema.client as c")
.Join("schema.order as o", "c.Id", "o.ClientId")
.WhereIn("c.Id", new[] { 1, 2, 3 });
*/
sqlite 语法etc
猜你喜欢
转载自www.cnblogs.com/scotth/p/11685611.html
今日推荐
周排行