SQL 語言整理 ——mysql

測試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);** 按照月份進行排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章