删除一张表(没有关联关系)html
DROP TABLE tableName
创建一张表,带有一个自增字段(ID):sql
CREATE TABLE Persons ( ID INTEGER PRIMARY KEY, LastName varchar(255), FirstName varchar(255) )
在Column后面加入INTEGER PRIMARY KEY
就表明AUTO_INCREASEMENT
,而且是NOT NULL
的,由于在Sqlite中没有AUTO_INCREASEMENT
这个关键字。每次INSERT
一条记录,不用给ID指定值,Sqlite会自动增长值。另外注意,必定要写成这样:INTEGER PRIMARY KEY
。若是写成这样INT PRIMARY KEY
也是不会自增的。更详细内容能够点击查看这里。函数
查看某一张表是否存在:code
SELECT * FROM sqlite_master WHERE type='table' AND name='yourtablename'
在查找某个字段的内容时,使用SELECT
语句,在Sqlite里是case-sensitive的。也就是说,若是你的表里的内容是大写,可是你查的是相同内容,可是是小写的,是查不到的。若是想忽略大小写,即 case-insensitive,须要用到COLLATE NOCASE
:sqlite
SELECT * FROM tablename WHERE someField = 'value' COLLATE NOCASE
查找一张表中,某个字段someField没有重复的条目:htm
SELECT distinct someField FROM table
查找一张表中,某个字段someField有重复的条目:字符串
SELECT * FROM table GROUP BY someField HAVING count(*) > 1
向一张已经存在的表里加两个Column,分别为Name和Password。固然,这里的Password是明文的。get
ALTER TABLE User RENAME TO sqlitestudio_temp_table; CREATE TABLE User ( ID INTEGER PRIMARY KEY, AuthToken VARCHAR NOT NULL UNIQUE, Routeway VARCHAR NOT NULL UNIQUE, Name VARCHAR NOT NULL, Password VARCHAR NOT NULL ); INSERT INTO User ( ID, AuthToken, Routeway ) SELECT ID, AuthToken, Routeway FROM sqlitestudio_temp_table; DROP TABLE sqlitestudio_temp_table;
用一张表TableB里的一个字段fieldB内容给另一张表TableA里的一个字段fieldA赋值:string
UPDATE TableA SET fieldA = TableB.fieldB
若是是同一张表TableA中,用一个字段field1的值给表中的另一个字段field2值赋值:it
UPDATE TableA SET field2 = field1
若是须要把一个字符串('someString')和一个字段field1的值进行链接,而后赋值给一个字段field2:
UPDATE TableA SET field2 = field1 || 'someString'
把一张表TableA里的数据导入到另一张表TableB中(两张表中的结构和字段必须同样):
INSERT INTO TableB SELECT * FROM TableA
将两个字符链接,用 ||
:
string1 || string2
关于字符串的格式,好比一个字段Month,表明月份,类型是int,可是表中的月份若是不超过十月,是单个字符。好比:1,2,3,4,12。可是打印出来但愿是:01,02,03,04,12。目前没发现可用的函数。可使用substr
和||
组合一下:
substr('0'|| Month, -2, 2)
这里简单解释一下:若是Month是1,那么'0'|| Month
以后是01,-2意味着从倒数第2个开始,取2个字符。取出来是01。
若是Month是12,那么'0'|| Month
以后是012,-从倒数第2个开始,取2个字符。取出来仍是12。