您的位置:首页 > 数据库 > MySQL

SQL 语言整理 ——mysql

2015-09-01 22:39 701 查看
测试sql语句的性能

select **BENCHMARK**(**100000**,**"**select *,**DATE**(pre_start_date) as times from jcb_tnonstandardproduct as tp INNER JOIN jcb_t_product on pTrustId = tp.product_id**")**
BENCHMARK();测试SQL语句的性能


判断语句

case when …… then …… else …… end   when 后面可以是判断语句,或者是isnull(select ……)


inner join 一个新生成的表

inner join 一个表为null 则不显示
left join 左边的表可以不为null


union 字段

select product_name **as pname** ,product_id AS detailId ,product_period AS pqixian, product_rate AS pshouyi ,1 as type from jcb_tnonstandardproduct
**union**
select pFundName **as pname** ,pFundId AS detailId ,dataDate AS pqoxian ,tenThousandBenifitRate AS pshouyi,2 as type from jcb_t_standerproduct_fund
union 查询了两个相似的表,把相同的字段不同的名字组合成一张表。。
联合表,是两个表联合起来组成一个字段


group by

排序,按照什么什么排序


提高sql语句的效率—— 增加判断语句 、inner join的表要小(连接的表要小)

查询一个List 并且其item也是list 的时候。要全部查出来然后处理 。

SQL 触发器 当某一个表改变的时候,另一个表也必须要改变的情况下,考虑使用触发器 —— 当触发器一旦创建的时候,就会一直跟随者数据库

**create trigger t1**   创建触发器
**after update on** jcb_user_bank_card 在更新某一个表之后
**for each row**  对于每一行
**begin** 开始执行的操作
**if** new.bankCardState=1 **then** update attr_bank **set** bankState=1 **where** bankId=new.bankCardBankId; 如果……then …… 当……
**end if; 结束
end**

SELECT
jcb_t_agent_task.*, **MONTH** (   **//取出来该时间的月份**
jcb_t_agent_task.taskCreateTime
) AS taskMonth,
**YEAR (  //取出改时间的年份**
jcb_t_agent_task.taskCreateTime
) AS taskYear,
**SUM(taskAmount)** AS allAmount,
SUM(taskFullfillAmount) AS allFinishAmount
FROM
jcb_agent_user
INNER JOIN jcb_t_agent_task ON agentBelogTeam = relatedTeam
WHERE
agentUserId = 1
AND **YEAR ( jcb_t_agent_task.taskCreateTime ) = 2015**
**GROUP BY
(taskMonth);** 按照月份进行排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: