加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

常用的MySQL语句写法

发布时间:2022-09-21 15:04:32 所属栏目:MySql教程 来源:
导读:  MySQL的SQL语句写法,除了那些基本的之外,还有一些也算比较常用的,这里记录下来mysql语句,以便以后查找。

  将数据从T1表导入到T2表

  INSERT INTO T2 (C1,C2) SELECT C1,C2 FROM T1 [WHERE C1 =
  MySQL的SQL语句写法,除了那些基本的之外,还有一些也算比较常用的,这里记录下来mysql语句,以便以后查找。
 
  将数据从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, 1, 6) 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, 1, 6) = B.ORG_CODE
 
  两表关联删除,将删除两表中有关联ID并且T2表NAME为空的两表记录
 
  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(8) DEFAULT 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';
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!