1.分页查询employees表,每5行一页,返回第2页的数据。
由于每一页有5行,注意到SQL中行号是从0开始的,因此从第5行开始就是第二页了
因此使用LIMIT 5,5,即方法一:
SELECT * FROM employees LIMIT 5,5;
也可以使用LIMIT m OFFSET n :表示从第n行开始(包括)读取m行,如果不足m行,则读取到表最后停止
该语句等价于 LIMIT n,m;
在SQL Server和Access中可以使用TOP语句,但SQLite不支持。
方法二:
SELECT * FROM employees
LIMIT 5 OFFSET 5;
2.获取select * from employees对应的执行计划。
explain select * from employees.
可以用 "EXPLAIN" 关键字或 "EXPLAIN QUERY PLAN" 短语,用于描述表的细节,具体说明与用法
3.将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分
SELECT last_name||
" "
||first_name AS Name FROM employees
insert or ignore into actor
values(
3
,
'ED'
,
'CHASE'
,
'2006-02-15 12:34:33'
);
对于mysql:
insert IGNORE into actor
values(
3
,
'ED'
,
'CHASE'
,
'2006-02-15 12:34:33'
);
insert into:插入数据,如果主键重复,则报错
insert repalce:插入替换数据,如果存在主键或unique数据则替换数据
insert ignore:如果存在数据,则忽略
select
sum(casewhen sat_name ='好评'then count(sat_name) end ) / count(sat_name) as "好评率"
from a,b
where a.good_id = b.good_id
and a.user_name ='小明'
and a.sub_time between to_date('2018-1-1','yyyy-mm-dd') and to_date('2018-1-31','yyyy-mm-dd')
and b.bu_name = '母婴'
and b.brand_name ='花王'
select b.brand_name,a.logday,sum(sale_amt) as sale
from a,b
where a.SKU_ID=b.SKU_ID and user_name='小明' and logday between '2017-01-01' and '2017-12-31' group by brand_name,logday having( select count(logday) from ( select b1.brand_name,a1.logday,sum(sale_amt) as sale1
from a a1,b b1
where a1.SKU_ID=b1.SKU_ID and b1.user_name='小明' and a1.logday between '2017-01-01' and '2017-12-31'
group by b1.brand_name,a1.logday ) t where b.brand_name=b1.brand_name and sale1>sale
from a,b
where a.SKU_ID=b.SKU_ID and user_name='小明' and logday in ('2017-01-01','2017-12-31')
group by brand_name,logday;
from t_view t1,t_view t2
where t1.logday-t2.logday=1;
where
f1.brand_name=f2.brand_name
and f2.brand_name=f3.brand_name
((f1.logday-f2.logday=-1
and
f1.logday-f3.logday=-2)
or
(f1.logday-f2.logday=1
and
f1.logday-f3.logday=-1)
or
(f1.logday-f2.logday=1
and
f1.logday-f3.logday=2))
and f1.growth>0.5 and f2.growth>0.5
and f3.growth>0.5;