<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-67  評論-522  文章-0  trackbacks-0
        MySQLSQL語句寫法,除了那些基本的之外,還有一些也算比較常用的,這里記錄下來,以便以后查找。
        好記性不如爛筆頭,這話說的太有道理了,一段時間不寫它,還真容易忘記。大家不要糾結這些SQL語句包含的業務或是其它問題,本文只是一篇筆記而已。

        將數據從T1表導入到T2
    INSERT INTO T2 (C1,C2) SELECT C1,C2 FROM T1 [WHERE C1 = XX AND C2 = XX ORDER BY C1]

        使用T2表的NAME來更新T1表的NAME
    UPDATE T1 AS A, T2 AS B SET A.NAME = B.NAME WHERE A.TID = B.ID

        兩表的關聯更新
    UPDATE T_ROLE_USER AS A,
     (
        SELECT
            ID
        FROM
            T_USER
        WHERE
            DEPARTID IN (
                SELECT
                    ID
                FROM
                    T_DEPART
                WHERE
                    LENGTH(ORG_CODE) = 9
            )
    AS B
    SET A.ROLEID = '123456'
    WHERE
        A.USERID = B.ID

        自己和自己關聯更新
    UPDATE T_DEPART AS A,
     (
        SELECT
            ID,
            SUBSTRING(ORG_CODE, 16) ORG_CODE
        FROM
            T_DEPART
        WHERE
            LENGTH(ORG_CODE) = 8
        AND PARENT_DEPART_ID IS NOT NULL
    AS B
    SET A.PARENT_DEPART_ID = B.ID
    WHERE
        SUBSTRING(A.ORG_CODE, 16= B.ORG_CODE

        兩表關聯刪除,將刪除兩表中有關聯ID并且T2NAME為空的兩表記錄
    DELETE A,B FROM T1 AS A LEFT JOIN T2 AS B ON A.TID = B.ID WHERE B.NAME IS NULL

        將統計結果插入到表
    INSERT INTO SE_STAT_ORG (
        RECORD_DATE,
        ORG_ID,
        ORG_NAME,
        SIGN_CONT_COUNT,
        SIGN_ARRI_CONT_COUNT,
        SIGN_CONT_MONEY,
        SIGN_ARRI_CONT_MONEY,
        TOTAL_ARRI_CONT_COUNT,
        TOTAL_ARRI_MONEY,
        PUBLISH_TOTAL_COUNT,
        PROJECT_COUNT
    SELECT
        *
    FROM
        (
            SELECT
                '2012-06-09' RECORD_DATE,
                PARENT_ORG_ID,
                PARENT_ORG_NAME,
                SUM(SIGN_CONT_COUNT) SIGN_CONT_COUNT,
                SUM(SIGN_ARRI_CONT_COUNT) SIGN_ARRI_CONT_COUNT,
                SUM(SIGN_CONT_MONEY) SIGN_CONT_MONEY,
                SUM(SIGN_ARRI_CONT_MONEY) SIGN_ARRI_CONT_MONEY,
                SUM(TOTAL_ARRI_CONT_COUNT) TOTAL_ARRI_CONT_COUNT,
                SUM(TOTAL_ARRI_MONEY) TOTAL_ARRI_MONEY,
                SUM(PUBLISH_TOTAL_COUNT) PUBLISH_TOTAL_COUNT,
                SUM(PROJECT_COUNT) PROJECT_COUNT,
            FROM SE_STAT_USER
            WHERE DATE_FORMAT(RECORD_DATE, '%Y-%m-%d'= '2012-06-09'
            GROUP BY PARENT_ORG_ID
        ) M

        三表關聯更新
    UPDATE SE_STAT_USER A,
     (
        SELECT
            USER_ID,
            SUM(INVEST_ORG_COUNT + FINANCIAL_ORG_COUNT + INTERMEDIARY_ORG_COUNT + ENTERPRISE_COUNT) AS COMMON_COUNT
        FROM SE_STAT_USER
        WHERE DATE_FORMAT(RECORD_DATE, '%Y-%m-%d'= '2012-06-09'
        GROUP BY USER_ID
    ) B,
     (
        SELECT
            USER_ID,
            SUM(ESTABLISH_COUNT + STOCK_COUNT + MERGER_COUNT + ACHIEVE_COUNT) AS PROJECT_COUNT
        FROM SE_STAT_USER
        WHERE DATE_FORMAT(RECORD_DATE, '%Y-%m-%d'= '2012-06-09'
        GROUP BY USER_ID
    ) C
    SET A.COMMON_COUNT = B.COMMON_COUNT, A.PROJECT_COUNT = C.PROJECT_COUNT
    WHERE A.USER_ID = B.USER_ID
    AND A.USER_ID = C.USER_ID
    AND DATE_FORMAT(A.RECORD_DATE, '%Y-%m-%d'= '2012-06-09'

        帶條件的關聯更新
    UPDATE SE_STAT_USER A,
     (
        SELECT
            P.CHANNEL,
            COUNT(P.CONT_ID) AS CONT_COUNT,
            C.CUST_MGR_ID
        FROM
            (
                SELECT
                    CHANNEL,
                    CONT_ID
                FROM SK_PROJECT
                WHERE PROJECT_STATUS = 6
                AND DATE_FORMAT(AUDIT_TIME, '%Y-%m-%d'= '2012-06-11'
            ) p
        INNER JOIN SE_CONTRACT C ON P.CONT_ID = C.CONT_ID
        GROUP BY P.CHANNEL, C.CUST_MGR_ID
    ) B
    SET
        A.STOCK_COUNT = CASE WHEN B.CHANNEL = 2 THEN B.CONT_COUNT ELSE 0 END,
        A.ESTABLISH_COUNT = CASE WHEN B.CHANNEL = 3 THEN B.CONT_COUNT ELSE 0 END,
        A.ACHIEVE_COUNT = CASE WHEN B.CHANNEL = 4 THEN B.CONT_COUNT ELSE 0 END
        A.BRAND_COUNT = CASE WHEN B.CHANNEL = 5 THEN B.CONT_COUNT ELSE 0 END,
        A.MERGER_COUNT = CASE WHEN B.CHANNEL = 6 THEN B.CONT_COUNT ELSE 0 END
    WHERE
        A.USER_ID = B.CUST_MGR_ID
    AND DATE_FORMAT(A.RECORD_DATE, '%Y-%m-%d'= '2012-06-11'

        加索引
    ALTER TABLE PROJECT ADD INDEX INDEX_USER_ID (USER_ID),
            ADD INDEX INDEX_PROJECT_STATUS (PROJECT_STATUS);

        刪除列
    ALTER TABLE PROJECT DROP COLUMN PROJECT_STATUS,
            DROP COLUMN EXPECT_RETURN,DROP COLUMN CURRENCY;

        增加列
    ALTER TABLE PROJECT 
            ADD COLUMN DICT_ID INT DEFAULT NULL COMMENT 'xxx' AFTER PROJECT_SITE,
            ADD COLUMN INTRODUCE TEXT DEFAULT NULL COMMENT 'xx' AFTER DICT_ID,
            ADD COLUMN STAGE INT DEFAULT NULL COMMENT 'xx' AFTER ID,
            ADD COLUMN ATTACH_URI VARCHAR(8DEFAULT NULL COMMENT 'xxx' AFTER INTRODUCE;

        修改列,一般用MODIFY修改數據類型,CHANGE修改列名
    ALTER TABLE PROJECT CHANGE DICT_ID DICT_ID1 INT NOT NULL,
            MODIFY PROJECT_STATUS TINYINT NOT NULL COMMENT 'xxx';

        本文為菠蘿大象原創,如要轉載請注明出處。http://m.tkk7.com/bolo

    posted on 2015-01-23 15:11 菠蘿大象 閱讀(3119) 評論(3)  編輯  收藏 所屬分類: Database

    評論:
    # re: 常用的MySQL語句寫法 2015-01-23 18:59 | 京山游俠
    我也記錄一下,忘了到你這里來看。  回復  更多評論
      
    # re: 常用的MySQL語句寫法 2015-01-26 20:17 | chow
    這的確復雜,記錄一下,忘了到你這里來看  回復  更多評論
      
    # re: 常用的MySQL語句寫法 2015-01-30 16:06 | isLynn
    還不錯,收錄了 Tks  回復  更多評論
      
    主站蜘蛛池模板: 免费中文字幕不卡视频| 全免费a级毛片免费看无码| 在线A亚洲老鸭窝天堂| 牛牛在线精品观看免费正| 亚洲伊人久久大香线蕉AV| 无码精品A∨在线观看免费| 免费v片在线观看无遮挡| 在线观看亚洲专区| 亚洲AⅤ优女AV综合久久久| 亚洲国产成人久久综合碰碰动漫3d| 亚洲AV无码一区二区三区人| 99久久久国产精品免费无卡顿| 亚洲国产成人精品久久| 最近2019中文字幕免费看最新 | 免费v片在线观看无遮挡| 色爽黄1000部免费软件下载| 波多野结衣中文字幕免费视频 | 亚洲精品无码mⅴ在线观看| 色www永久免费网站| 国产伦精品一区二区三区免费迷 | 亚洲熟妇无码一区二区三区 | 亚洲午夜无码久久久久| 精品国产日韩亚洲一区在线| 国产真人无码作爱视频免费| 亚洲人成在线影院| 无码国产精品久久一区免费| 国产成人+综合亚洲+天堂| 国产亚洲精品成人AA片新蒲金| 1000部拍拍拍18勿入免费视频下载| 久久影院亚洲一区| 特级毛片免费播放| 久久综合日韩亚洲精品色| 青苹果乐园免费高清在线| 亚洲精品不卡视频| 97视频免费观看2区| 亚洲国产精品VA在线看黑人| 国产成人精品免费视频网页大全 | 亚洲精品偷拍无码不卡av| 色吊丝最新永久免费观看网站| 国产特黄一级一片免费| 亚洲香蕉久久一区二区三区四区|