creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z"); DROP TABLE t0; --- CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; --- CREATE TEMPORARY TABLE t0(x, y, z); SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; --- SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); --- CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (1, 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema = ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit --- CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',9e999); WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0; --- CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; --- CREATE TABLE T ( a INTEGER, b TEXT, c INTEGER ); INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2); WITH RECURSIVE d(a,b,c,e) AS ( SELECT *,1 FROM T WHERE c IS NULL UNION ALL SELECT T.a,T.b,T.c,d.e+1 FROM T JOIN d ON T.c=d.a ) SELECT * FROM d; --- CREATE TABLE T ( a TEXT, b TEXT, c REAL ); INSERT INTO T VALUES ('a','b',1.5), ('a','c',-2.25), ('b','b',4.75); SELECT a, SUM(CASE WHEN b='b' THEN c ELSE 0 END) AS d, SUM(CASE WHEN b='c' THEN c ELSE 0 END) AS e FROM T GROUP BY a; --- CREATE TABLE T ( a TEXT, b REAL ); INSERT INTO T VALUES ('a',100.0), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; --- CREATE TABLE T ( a INTEGER, b REAL, c REAL ); INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0); WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d; --- CREATE TABLE T ( a TEXT, b TEXT, c REAL ); INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25); SELECT a,b,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; --- CREATE TABLE T1 ( a INTEGER, b TEXT ); CREATE TABLE T2 ( a INTEGER, b TEXT ); INSERT INTO T1 VALUES (1,'a'),(2,'b'); INSERT INTO T2 VALUES (1,'c'),(1,'d'); SELECT T1.b, ( SELECT GROUP_CONCAT(b,',') FROM T2 WHERE T2.a=T1.a ) AS c FROM T1; --- CREATE TABLE T ( a TEXT, b TEXT, c REAL ); INSERT INTO T VALUES ('a','b',1.0), ('a','c',-1.0), ('b','d',0.0); SELECT COALESCE(a,'e') AS d, COALESCE(b,'f') AS e, SUM(c) AS f FROM T GROUP BY a,b; --- CREATE TABLE T ( a INTEGER, b REAL ); INSERT INTO T VALUES (1,1.5), (2,-2.5), (3,0.0); CREATE INDEX c ON T(b); SELECT * FROM T WHERE b >= -2.5 AND b < 2.0; --- CREATE TABLE T ( a TEXT, b TEXT ); INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01'); SELECT a, CAST( (julianday('now')-julianday(b))/365.25 AS INTEGER ) AS c FROM T; --- CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',0.0); SELECT * FROM T WHERE c < 2.0 ORDER BY c; --- CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; --- CREATE TABLE T1 ( a INTEGER, b REAL ); CREATE TABLE T2 ( a INTEGER, b REAL ); INSERT INTO T1 VALUES (1,1.0); INSERT INTO T2 VALUES (1,-1.0),(2,9e999); INSERT OR REPLACE INTO T1 SELECT * FROM T2; SELECT * FROM T1; --- CREATE VIRTUAL TABLE T USING fts5(a,b); INSERT INTO T VALUES ('a','b c'), ('d','e f'); SELECT a,b FROM T WHERE T MATCH 'b'; --- CREATE TABLE T ( a TEXT, b TEXT ); INSERT INTO T VALUES ('a','b'), ('c','d'); SELECT * FROM T WHERE a = REPLACE('a;',';','') AND b = 'b'; --- CREATE TABLE T ( a INTEGER, b REAL, c REAL ); INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0); SELECT * FROM T WHERE b < 2.0 ORDER BY b; --- CREATE TABLE T ( a INTEGER, b REAL ); INSERT INTO T VALUES (1,1.5), (2,-7.25), (3,0.0); SELECT a,b FROM T WHERE a >= 2 ORDER BY b; --- CREATE TABLE T ( a INTEGER, b TEXT, c REAL, d REAL ); INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999); SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5; --- CREATE TABLE T ( A VARCHAR(15) PRIMARY KEY, B VARCHAR(30) NOT NULL, C BIGINT UNIQUE ); INSERT INTO T VALUES ('a', 'x', -9223372036854775808); INSERT INTO T VALUES ('b', 'y', -1000000); INSERT INTO T VALUES ('c', 'y', 0); INSERT INTO T VALUES ('d', 'y', 42); INSERT INTO T VALUES ('e', 'x', 9223372036854775807); INSERT INTO T VALUES ('f', 'z', 2147483648); SELECT * FROM T WHERE C > 0 ORDER BY C DESC; --- CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; --- CREATE TABLE T ( A VARCHAR(10) PRIMARY KEY, B VARCHAR(15) NOT NULL, C DOUBLE PRECISION ); INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308); INSERT INTO T VALUES ('b', 'q', -0.000000001); INSERT INTO T VALUES ('c', 'r', 0.0); INSERT INTO T VALUES ('d', 's', 3.14159265358979); INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308); INSERT INTO T VALUES ('f', 't', 750.25); SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B; --- CREATE TABLE T ( A VARCHAR(10) PRIMARY KEY, B VARCHAR(15), C BIGINT, UNIQUE (B, C) ); INSERT INTO T VALUES ('a', 'p', -9223372036854775808); INSERT INTO T VALUES ('b', 'q', 4000); INSERT INTO T VALUES ('c', 'r', 1700); INSERT INTO T VALUES ('d', 'r', 9223372036854775807); INSERT INTO T VALUES ('e', 's', 0); SELECT A, C FROM T WHERE C > 1200 AND C < 9999999999 ORDER BY C; --- CREATE TABLE T ( A VARCHAR(20), B VARCHAR(10), C INTEGER, PRIMARY KEY (A, B) ); INSERT INTO T VALUES ('a', 'p', -2147483648); INSERT INTO T VALUES ('b', 'q', 100); INSERT INTO T VALUES ('b', 'r', 200); INSERT INTO T VALUES ('c', 's', 300); INSERT INTO T VALUES ('d', 't', 2147483647); INSERT INTO T VALUES ('b', 't', 50); SELECT A, COUNT(*) AS D, SUM(C) AS E FROM T GROUP BY A HAVING COUNT(*) > 1; --- CREATE TABLE T ( A VARCHAR(20), B VARCHAR(10), PRIMARY KEY (A, B) ); INSERT INTO T VALUES ('a', 'p'); INSERT INTO T VALUES ('a', 'q'); INSERT INTO T VALUES ('b', 'q'); INSERT INTO T VALUES ('c', 'r'); INSERT INTO T VALUES ('b', 'r'); INSERT INTO T VALUES ('b', 't'); SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC; --- CREATE TABLE T1 ( A VARCHAR(15) PRIMARY KEY, B VARCHAR(30) NOT NULL UNIQUE ); CREATE TABLE T2 ( A VARCHAR(10) PRIMARY KEY, X VARCHAR(15) NOT NULL, C BIGINT, FOREIGN KEY (X) REFERENCES T1(A) ); INSERT INTO T1 VALUES ('p', 'x'); INSERT INTO T1 VALUES ('q', 'y'); INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807); INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808); SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X; --- CREATE TABLE T1 ( A VARCHAR(10) PRIMARY KEY, B VARCHAR(15) UNIQUE, C INTEGER ); CREATE TABLE T2 ( X VARCHAR(20) PRIMARY KEY, A VARCHAR(10) NOT NULL UNIQUE, FOREIGN KEY (A) REFERENCES T1(A) ); INSERT INTO T1 VALUES ('a', 'p', -2147483648); INSERT INTO T1 VALUES ('b', 'q', 2147483647); INSERT INTO T2 VALUES ('m', 'a'); INSERT INTO T2 VALUES ('n', 'b'); SELECT T2.X, T1.B, T1.C FROM T2, T1 WHERE T2.A = T1.A AND T1.C >= 0; --- CREATE TABLE T1 ( A VARCHAR(10) PRIMARY KEY, B VARCHAR(15) UNIQUE, C BIGINT ); CREATE TABLE T2 ( X VARCHAR(20) PRIMARY KEY, A VARCHAR(10), FOREIGN KEY (A) REFERENCES T1(A) ); INSERT INTO T1 VALUES ('a', 'p', 9999999999999); INSERT INTO T1 VALUES ('b', 'q', -9999999999999); INSERT INTO T2 VALUES ('m', 'a'); INSERT INTO T2 VALUES ('n', 'b'); SELECT T2.X, T1.C FROM T2 INNER JOIN T1 ON T2.A = T1.A WHERE T1.C > -1000000000000; --- CREATE TABLE T ( A VARCHAR(10) PRIMARY KEY, B VARCHAR(15) NOT NULL, C INTEGER, UNIQUE (B, C) ); INSERT INTO T VALUES ('a', 'p', -2147483648); INSERT INTO T VALUES ('b', 'q', 700); INSERT INTO T VALUES ('c', 'r', 0); INSERT INTO T VALUES ('d', 's', 2147483647); INSERT INTO T VALUES ('e', 't', -1); INSERT INTO T VALUES ('f', 'u', 1); SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC; --- CREATE TABLE T ( A VARCHAR(10) PRIMARY KEY, B VARCHAR(15), C BIGINT NOT NULL, UNIQUE (B, C) ); INSERT INTO T VALUES ('a', 'p', 3000); INSERT INTO T VALUES ('b', 'q', 9223372036854775807); INSERT INTO T VALUES ('c', 'r', 1700); INSERT INTO T VALUES ('e', 'q', -9223372036854775808); INSERT INTO T VALUES ('f', 'r', 0); SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0; --- CREATE TABLE T1 ( A VARCHAR(20), X VARCHAR(10), PRIMARY KEY (A, X), UNIQUE (X) ); CREATE TABLE T2 ( A VARCHAR(20), Y VARCHAR(10) UNIQUE, PRIMARY KEY (A, Y) ); INSERT INTO T1 VALUES ('a', 'm'); INSERT INTO T1 VALUES ('b', 'n'); INSERT INTO T2 VALUES ('b', 'k'); SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A; --- CREATE TABLE T1 ( A VARCHAR(20) PRIMARY KEY, X VARCHAR(10) UNIQUE ); CREATE TABLE T2 ( A VARCHAR(20) PRIMARY KEY, Y VARCHAR(10) UNIQUE ); INSERT INTO T1 VALUES ('a', 'm'); INSERT INTO T1 VALUES ('b', 'n'); INSERT INTO T1 VALUES ('c', 'o'); INSERT INTO T2 VALUES ('b', 'k'); INSERT INTO T2 VALUES ('c', 'l'); SELECT A FROM T1 INTERSECT SELECT A FROM T2; --- CREATE TABLE T1 ( A VARCHAR(20), X VARCHAR(10), PRIMARY KEY (A, X) ); CREATE TABLE T2 ( A VARCHAR(20), Y VARCHAR(10), PRIMARY KEY (A, Y) ); INSERT INTO T1 VALUES ('a', 'm'); INSERT INTO T1 VALUES ('b', 'n'); INSERT INTO T1 VALUES ('c', 'o'); INSERT INTO T2 VALUES ('b', 'k'); SELECT A FROM T1 EXCEPT SELECT A FROM T2;