<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://www.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  回復  更多評論
      
    主站蜘蛛池模板: 日韩黄色免费观看| 毛片免费视频观看| 中国亚洲女人69内射少妇| 亚洲youwu永久无码精品| 成人免费午间影院在线观看| 亚洲1区1区3区4区产品乱码芒果| 免费观看久久精彩视频| 亚洲av无码无在线观看红杏| 久久久久国色av免费看| 久久久亚洲欧洲日产国码aⅴ| 91精品国产免费久久国语麻豆| 亚洲精品动漫在线| 无码av免费网站| 91亚洲精品视频| 亚洲无吗在线视频| 亚洲中文字幕精品久久| 国产无限免费观看黄网站| 中文字幕亚洲专区| 三级毛片在线免费观看| 久久综合九九亚洲一区| 日本免费网站视频www区| 亚洲三级在线免费观看| 四虎永久在线免费观看| 久久一区二区免费播放| 久久亚洲精品国产精品| 最新仑乱免费视频| 中美日韩在线网免费毛片视频| 亚洲综合无码精品一区二区三区| 一区二区三区四区免费视频| 亚洲sss综合天堂久久久| 国产在线观看www鲁啊鲁免费| 一级有奶水毛片免费看| 亚洲校园春色小说| 国产一区二区视频免费| 久久黄色免费网站| 亚洲乱妇老熟女爽到高潮的片| 亚洲精品成人片在线观看| 久视频精品免费观看99| 国产亚洲精品美女久久久久 | 亚洲中文字幕无码不卡电影| 日本免费一区二区三区四区五六区 |