加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

常用的Sqlite SQL语句(持续更新中)

发布时间:2020-12-12 19:47:01 所属栏目:百科 来源:网络整理
导读:表操作 删除一张表(没有关联关系) DROP TABLE tableName 建立一张表,带有一个自增字段(ID): CREATE TABLE Persons( ID INTEGER PRIMARY KEY,LastName varchar(255),FirstName varchar(255)) 在Column后面加入 INTEGER PRIMARY KEY 就代表 AUTO_INCREAS

表操作

删除一张表(没有关联关系)

DROP TABLE tableName

建立一张表,带有一个自增字段(ID):

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也是不会自增的。更详细内容可以点击查看这里。

查看某一张表是否存在:

SELECT * FROM sqlite_master WHERE type='table' AND name='yourtablename'

在查找某个字段的内容时,使用SELECT语句,在Sqlite里是case-sensitive的。也就是说,如果你的表里的内容是大写,但是你查的是相同内容,但是是小写的,是查不到的。如果想忽略大小写,即 case-insensitive,需要用到COLLATE NOCASE

SELECT * FROM tablename WHERE someField = 'value' COLLATE NOCASE

字段操作

查找一张表中,某个字段someField没有重复的条目:

SELECT distinct someField FROM table

查找一张表中,某个字段someField有重复的条目:

SELECT * FROM table GROUP BY someField HAVING count(*) > 1

向一张已经存在的表里加两个Column,分别为Name和Password。当然,这里的Password是明文的。

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,Routeway
                   FROM sqlitestudio_temp_table;

DROP TABLE sqlitestudio_temp_table;

用一张表TableB里的一个字段fieldB内容给另外一张表TableA里的一个字段fieldA赋值:

UPDATE TableA SET fieldA = TableB.fieldB

如果是同一张表TableA中,用一个字段field1的值给表中的另外一个字段field2值赋值:

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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读