资讯专栏INFORMATION COLUMN

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

james / 1264人阅读

摘要:表操作删除一张表没有关联关系建立一张表,带有一个自增字段在后面加入就代表,并且是的,因为在中没有这个关键字。每次一条记录,不用给指定值,会自动增加值。查看某一张表是否存在在查找某个字段的内容时,使用语句,在里是的。目前没发现可用的函数。

表操作

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

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,
                        AuthToken,
                        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。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32016.html

相关文章

  • 数据库学习线路图

    摘要:数据库学习线路图语法教程教程简介语法选择查询子句与,或,非按关键字排序在表中插入空值更新删除运算符通配符运算符运算符通用数据类型语句快速参考连接内部连接左连接右连接完整外部连接自连接运算符语句语句撤销索引表以及数据库语句语句语句字 数据库学习线路图 SQL 语法教程 SQL 教程 SQL 简介 SQL 语法 SQL Select选择 SQL SELECT DISTINCT S...

    tinna 评论0 收藏0
  • 数据库学习线路图

    摘要:数据库学习线路图语法教程教程简介语法选择查询子句与,或,非按关键字排序在表中插入空值更新删除运算符通配符运算符运算符通用数据类型语句快速参考连接内部连接左连接右连接完整外部连接自连接运算符语句语句撤销索引表以及数据库语句语句语句字 数据库学习线路图 SQL 语法教程 SQL 教程 SQL 简介 SQL 语法 SQL Select选择 SQL SELECT DISTINCT S...

    Hydrogen 评论0 收藏0
  • 使用SugarORM来操作SQLite

    摘要:版权声明本账号发布文章均来自公众号,承香墨影,版权归承香墨影所有。一前言之前在线上产品中,一直使用的下文简称,使用起来还是非常有好感的。使用标签标记类。为了考虑这方面的因素,同时也增加了一些查询的构造器,来避免使用语句进行操作。 版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有。 允许有条件转载,转载请附带底部二维码。 一、前言 之前在线上产品...

    Render 评论0 收藏0
  • DataBase in Android

    摘要:这篇文章是我在学习上的课程时写的知识总结可能会有一些内容来自也有一些例子来自的开发文档总结好了想给大家分享如果我学到了新的东西我也会后续更新我们知道如果我们的数据仅仅是存储在变量中的那么其生命周期可能只是和一样长在我们推出之后我们的数据就会 DataBase in Android 这篇文章是我在学习 Udacity 上的 Android 课程时, 写的知识总结.可能会有一些内容来自 U...

    sewerganger 评论0 收藏0
  • Android存储方式之SQLite

    摘要:前言数据库操作在开发中非常常用今天我将带大家全面了解关于数据库的操作增删查改目录数据库介绍是内置的一个小型关系型属于文本型的数据库。提供了对数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据库,但是应用程序之外的就不能访问。 前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增、删、查、改) 目录 sho...

    rainyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<