android连接mysql查询表内记录_Android程序猿必掌握的sqlite数据库连表查询

SQL查询的基本原理:两种情况介绍。

第一、   单表查询:依据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的);然后依据SELECT的选择列选择对应的列进行返回终于结果。

第二、   两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接连接类型进行过滤形成中间表;然后依据WHERE条件过滤中间表的记录,并依据SELECT指定的列返回查询结果。

第三、   多表连接查询:先对第一个和第二个表依照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到全部的表都连接上为止,终于形成一个中间的结果表,然后依据WHERE条件过滤中间表的记录,并依据SELECT指定的列返回查询结果。

理解SQL查询的过程是进行SQL优化的理论根据。一 交叉连接

语句1:隐式的交叉连接,没有CROSS JOIN。

SELECT TT.ID, TT.ORDER_NUMBER, TP.ID, TP.NAME

FROM TABLE TT , PORTABLE TP

WHERE TT.ID=1;

得到的是四行数据

语句2:显式的交叉连接,使用CROSS JOIN。

SELECT TT.ID,TT.ORDER_NUMBER,TP.ID,

TP.NAME

FROM TABLE TT , PORTABLE TP

WHERE TT.ID=1;

语句1和语句2的结果是同样的,2*2的数据。二、内连接(INNER JOIN)

原来用sqlite自建表,如今习惯用NaviCat了。

内连接(INNER JOIN):有两种,显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行。(所谓的链接表就是数据库在做查询形成的中间表)。

比如:以下的语句3和语句4的结果是同样的。

语句3:隐式的内连接,没有INNER JOIN,形成的中间表为两个表的笛卡尔积。

SELECT O.ID,O.ORDER_NUMBER,C.ID,C.NAME

FROM CUSTOMERS C,ORDERS O

WHERE C.ID=O.CUSTOMER_ID;

语句4:显示的内连接,一般称为内连接,有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积。

SELECT O.ID,O.ORDER_NUMBER,C.ID,C.NAME

FROM CUSTOMERS C INNER JOIN ORDERS O ON C.ID=O.CUSTOMER_ID;

语句5 :直接看样例

select a.name,b.qty from student a, (select id,count(*) qty from student group id) b where a.id =b.id;语句6:工作中,千万要把方法2,写成方法1方法一 节省非常多时间。

INNER JOIN ……ON 的语法格式为:

FROM (((表1 INNER JOIN 表2 ON 表1.字段号 = 表2.字段号) INNER JOIN 表3 ON 表1.字段号 = 表3.字段号)

INNER JOIN 表4 ON Member.字段号 = 表4.字段号) INNER JOIN 表X ON Member.字段号 = 表X.字段号  www.2cto.com

语法二:数据量大,会非常耗时。

FROM 表1

INNER JOIN 表2 ON 表1.字段号 = 表2.字段号

INNER JOIN 表3 ON 表1.字段号 = 表3.字段号

INNER JOIN 表4 ON Member.字段号 = 表4.字段号

INNER JOIN 表X ON Member.字段号 = 表X.字段号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值