SQLite中的FROM子句】的更多相关文章

SQLite中的WHERE子句 WHERE子句用于从FROM子句生成的工作表中过滤行.它提供了对每一行进行判断的表达式.当表达式返回的值为false或NULL时,此行就会被丢弃.这种丢弃只是删除记录,并不会被当作错误处理.所以,在经过WHERE子句过滤生成的表将具有与原始表相同数量的列,但可能具有较少的行.图3.10显示了WHERE子句的工作原理.   图3.10  WHERE子句的工作原理 [示例3-3]下面将使用WHERE子句,将Students表中成绩大于60的记录过滤输出.对应的SQL语…
SQLite中的FROM子句 FROM子句从数据库中可以获取到一个或多个源表.源表通常是数据库命名的表,但也可以是视图或子查询.子查询相关的更多详细信息,我们会在后面进行介绍.当获取到多个源表时,JOIN运算符会对多个源表进行组合并生成一个较大的表. 注意:JOIN运算符是从左到右进行判断,每个JOIN运算符会将两个表组合成一个较大的表,利用这种原理可以将一系列JOIN运算符串在一起,从而实现三个或更多表的组合. [示例3-2]下面将使用JOIN运算符,将FROM子句获取的Students和Pe…
SQLite中的SELECT子句使用表达式 在SELECT语句中可以只有SELECT子句不写FROM子句.这些表达式列表将被单次计算,生成一行,然后组成工作表.这对于测试和判断独立表达式很有用.例如,下面的SQL语句在SELECT语句中只使用到了SELECT子句: SELECT 1+1,6.68,'Hello' 运行程序,执行效果如图3.7所示.   图3.7  运行效果…
SQLite中的SELECT子句使用通配符 在SELECT子句中支持两个通配符,分别为*和table_name.*.其中,*通配符会将FROM子句中每个源表的所有用户定义的列进行输出.例如,下面的SQL语句将输出Students的所有用户定义的列. SELECT * FROM Students 运行程序,执行效果如图3.5所示.   图3.5  *通配符 table_name.*可以用来指定输出列所在表的名称,这里输出的列都是用户定义的列.虽然*和table_name.*通配符都可以输出多列,但…
SQLite中的SELECT子句使用别名 开发者可以使用AS关键字为指定的列名提供一个新的别名,其语法形式如下 SELECT column_name AS Alias [,…] 例如,下面的SQL语句为Name列设置了一个别名StudentName. SELECT id,Name AS StudentName FROM Students 运行程序,执行效果如图3.4所示.   图3.4  定义别名…
SQLite中的SELECT子句 目前为止,最常见的SELECT语句由三个子句组成,分别为SELECT.FROM与WHERE.本小节我们首先讲解SELECT子句.SELECT子句可以用来定义最终结果表的格式和内容.要显示在最终结果表中的列必须由SELECT子句中的select_heading定义,如果是多列,使用“,”分隔. [示例3-1]下面将使用查询语句获取Students表中的id列和Name列内容.SQL语句如下: SELECT id,Name FROM Students 运行程序,执行…
要使用索引对数据库的数据操作进行优化,那必须明确几个问题:1.什么是索引2.索引的原理3.索引的优缺点4.什么时候需要使用索引,如何使用围绕这几个问题,来探究索引在数据库操作中所起到的作用. 1.数据库索引简介 回忆一下小时候查字典的步骤,索引和字典目录的概念是一致的.字典目录可以让我们不用翻整本字典就找到我们需要的内容页数,然后翻到那一页就可以.索引也是一样,索引是对记录按照多个字段进行排序的一种展现.对表中的某个字段建立索引会创建另一种数据结构,其中保存着字段的值,每个值还包括指向与它相关记…
英文原文:Limits In SQLite       本文定义了 SQLite 的限制,如何针对这些限制定制特定的应用程序.默认的限制设置通常是适当的,几乎适合于每一个应用.有一些应用程序可能需要在这里或者那里增加一个设置,但是我们估计这非常罕见.更普遍的是,应用程序可能需要重新编译SQLite以及更低的限制来避免过多的资源利用率,以及在高级SQL语句生成器上帮助阻止攻击者注入恶意SQL语句时发生错误. 在使用 sqlite3_limit() 接口的 limit categories 上,为该…
出处: 网络 1)Sqlite不支持聚集索引,android默认需要一个_id字段,这保证了你插入的数据会按“_id”的整数顺序插入,这个integer类型的主键就会扮演和聚集索引一样的角色.所以不要再在对于声明为:INTEGER PRIMARY KEY的主键上创建索引. 2)很多对索引不熟悉的朋友在表中创建了索引,却发现没有生效,其实这大多数和我接下来讲的有关.对于where子句中出现的列要想索引生效,会有一些限制,这就和前导列有关.所谓前导列,就是在创建复合索引语句的第一列或者连续的多列.比…
SQLite中的表达式 在SELECT的基本完整形式中,我们会看到几乎是所有的子句都会使用到表达式.以下是SQLite支持的表达式类型. expr binary-op expr |                                                                                                                //二元运算符 expr [NOT] like-op expr [ESCAPE expr] | …
SQLite中SELECT基本形式 每个数据库通常都包含多个表,而每个表又包含多条数据.要获取数据库中的数据,就需要SQL语言提供的查询语句SELECT.本章将讲解和SELECT语句相关的内容,其中包括SELECT基本形式.表达式.连接.分组.排序和去重.获取子集.子查询以及联合查询等. 3.1  SELECT基本形式 本节将讲解SELECT语句的基本形式,其中包括基本完整形式.SELECT子句.FROM子句以及WHERE子句等 3.1.1  基本形式 以下是SELECT语法的基本完整形式: S…
== 菜鸟级选手试验在EF6中使用Sqlite,零EF基础,少量Sqlite基础.经过断断续续的很长时间 - _ -! >>连接 1. 安装 使用目前最新版本EF6.1,Sqlite1.0.93.0.直接NuGet安装: 2. 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <?xml version="1.0" encoding=&qu…
本文转自http://www.ithao123.cn/content-933827.html,在此感谢作者 android数据库操作,有两种方式,一种用android提供给我们的数据库操作函数insert.update.replace,我用到的就是这三种.另外一种方式就是利用数据库语言进行操作,也就是利用execSQL这个函数后面带sqlite数据库操作语言进行操作,sqlite中的sql语言和标准的sql语言大同小异,但是你如果是想有针对性的了解,建议你买一本书<SQLite权威指南>,这本…
原文:http://www.cnblogs.com/peida/archive/2008/11/29/1343832.html Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用     在用sqlite设计表时,突然想到一个问题,就是我设计的表中,每个表都有一个自己的整形id值作为主键,其实可以不指定这么一个id值,sqlite内部本来就会为每个表加上一个 rowid,这个rowid可以当成一个隐含的字段使用,但是由sqlite引擎来维护的,在3…
在使用SQLite时,要注意:在SQLite中的Integer类型,对应在C#中需要使用long类型或者Int64 在使用SQLite时,要注意:在SQLite中存放的日期类型必须是如此:yyyy-MM-dd HH:mm:ss 不能加毫秒,而且只能用“-”间隔. 在使用SQLite时,要注意:在SQLite中存放的Bool类型只能使用数字,不能使用'true'或'false'否则无法转换到C#中.读取会出错.…
1.bitmap保存到SQLite 中 数据格式:Blob db.execSQL("Create table " + TABLE_NAME + "( _id INTEGER PRIMARY KEY AUTOINCREMENT,USER_AGE INTEGER,USER_NAME TEXT,BITMAP_VALUES BLOB );"); 2.bitmap 变为 Blob ContentValues values = new ContentValues(); fina…
今天很自然的在写Sql语句的时候用了Top,一开始没发现问题,因为我从数据库读出的值正好是0,而我习惯变量定义的时候也都赋值0,可是到我不要0的时候我就发现问题了.后来才知道,可爱的小sqlite竟然有不支持的sql语法. 看到某个论坛有个新手也发现了这个问题并发帖了,下面一牛人的回复是“top是哪家的关键词?sqlite家没有这词的”,哈,原来top这词是mssql里才有的~ 最后还想说,数据库绝对是很重要的一块.我的基础语法很垃圾,过几天认真记录下. Google之下的结果: 1 TOP 这…
1.bitmap保存到SQLite 中 数据格式: db.execSQL("Create table express ( _id INTEGER PRIMARY KEY AUTOINCREMENT,express_no varchar(100),express_name TEXT,express_img BLOB );"); 2.bitmap 变为 Blob ContentValues values = new ContentValues(); final ByteArrayOutpu…
本篇讲解LINQ查询的三种形式: 查询对象 自定义查询对象某个属性 查询匿名类型结果 [1.查询结果返回集合元素] 在LINQ查询中,select子句和from子句都是必备子句.LINQ查询表达式必须以select或group子句结束.select子句指定在执行查询时产生结果的数据集中元素的类型,它的格式如下: select element 其中,select是关键字,element参数则指定查询结果中元素的类型及初始化方式. 在进一步介绍select子句之前,首先简单介绍一下本章例子中要用到的…
在最近的项目中使用ActiveReports报表设计器设计一个报表模板时,遇到一个多级分类的难题:需要将某个部门所有销售及下属部门的销售金额汇总,因为下属级别的层次不确定,所以靠拼接子查询的方式显然是不能满足要求,经过一番实验,利用了CTE(Common Table Expression)很轻松解决了这个问题! 举例:有如下的部门表 以及员工表 如果想查询所有西北区的员工(包含西北.西安.兰州),如下图所示: 如何用CTE的方式实现呢? Talk is cheap. Show me the co…
查询语句 字句名称 使用目的 select 确定结果集中应该包含那些列 from 指明所要提取数据的表,以及这些表是如何连接的 where 过滤不需要的数据 group by 用于对具有想用列值的行进行分组 having 过滤掉不需要的组 order by 按一个或多个列,对最后结果集中的行进行排序 select语句由几个组建或者说子句构成.不过在MySQL中,只有一种子句是必不可少的,那就是select子句. select子句 SELECT * FROM department; 在此查询中,f…
  你可能在批量处理一个事务的时候,想要批量插入一系列的数据,但是这些数据当添加完一次之后,重新添加的时候,你不想要重新添加,只是想将原有的数据进行更新,例如:我想要通过Excel将一系列的图书导入到数据库中,而这些图书在你下一次编辑之后,重新导入,只是对原有的数据进行修改.以上是一个业务的场景. 在MSSQL中,你可以使用诸如: ? IF NOT EXISTS(SELECT * FROM Book WHERE ….) THEN INSERT INTO ... ELSE UPDATE SET .…
SQLite中的运算符表达式 在SQLite中,运算符包括了一元运算符,二元运算符(二进制运算符)和三元元素符.图3.12中给出了这些运算符需要的参数以及优先级.其中,一元运算符的优先级最高,三元运算符的最低.   图3.12  运算符以及执行顺序 一元运算符其实就是对一个目标进行操作.在SQLite中,支持的一元运算符有4个,分别为“-”.“+”.“~”和NOT,对于这些运算符的介绍如下: -:翻转值的符号,将其乘以-1.0. +:运算符基本上是一个无操作的,留下一个与之前具有相同符号的值,它…
题目描述 给出每个员工每年薪水涨幅超过5000的员工编号emp_no.薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列. 提示:在sqlite中获取datetime时间对应的年份函数为strftime('%Y', to_date) CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NU…
关于SQLite事务可以解决一些问题,比如你要插入两个数据,可以将两个数据作为同一个事务进行插入,这样如果第二个数据错误了,便自动执行回滚操作,第一个数据也不会插入成功,保证了数据的同步! 一.实际的例子 应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作.我的应用初始5000条记录也就是要5000次读写磁盘操作.而且不能保证所有数据都能同时插入.(有…
最近要更新Cocon90.Db库,令其ORM创建表时实现索引的添加.因此总结下列常用Sql,供大家学习与参考. 一.SqlServer中创建索引可以这样: ) Create Table Test ( RowId ) NOT NULL, Name ) NOT NULL , Type int NULL, PRIMARY KEY (RowId,Name), INDEX idxType(Type), INDEX idxName(Name) ); 二.MySql中需要这样: CREATE TABLE IF…
在sqlite中可以使用ALTER TABLE语法对表结构进行修改,从官方的文档说明中,语法如下图: 从图中可以看出,ALTER TABLE仅仅支持表名重命名,添加字段,却没有删除字段的方法.那么该如何实现,当然了首先search 一下,群众们给出的一个解决方案就是将数据备份到一张临时表,删除原始表,然后新建一张剔除了需要删除字段的表,将临时表 数据导入到新表中,然后将新表rename为原始表名.ok,就是这个思路,虽然导入导出很浪费时间,尤其实在包含大量数据及索 引的时候,尤其要注意.但是也没…
SQLite中7(8)形参的query语句的用法 我们先来看看这种7形参的query语句的形参列表: public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {} 形参依次为: ①String table:要查询哪张表,以字符串的形式给出,比如说我要查Book表,那么这个形…
1.SQLite不支持关键字AUTO_INCREMENT 1)AUTO_INCREMENT不生效的问题 SQL语句: CREATE TABLE todo (     id INTEGER AUTO_INCREMENT,     title TEXT,     PRIMARY KEY (id) ); 问题描述:按照上述SQL语句创建表todo,用INSERT INTO todo (title) VALUES ('xxx')插入记录,但查询该记录后得到的id为NULL(即Python中的None)…
SQLite中的内连接简化技巧   在SQLite中,通过内连接可以将两个表通过条件表达式关联起来,构成一个新记录集或视图.形式如下:   SELECT ... FROM t1 JOIN t2 ON t1.c1=t2.c2   如果表t1的列c1和表t2的列c2名称相同,则可以使用USING表达式进行简化.形式如下:   SELECT ... FORM t1 JOIN t2 USING(c1)   其中,列c1在表t1和t2均存在.   如果c1是两个表中唯一相同的列,或者使用两个表所有同名列作…