MySQL的SQL语句写法,除了那些基本的之外,还有一些也算比较常用的,这里记录下来,以便以后查找。     好记性不如烂笔头,这话说的太有道理了,一段时间不写它,还真容易忘记。大家不要纠结这些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, 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';

本文为菠萝大象原创,如要转载请注明出处。http://www.blogjava.net/bolo

常用的MySQL语句写法的更多相关文章

  1. 一些常用的mysql语句实例-以后照写2

    specification: 规范, 规格, 产品规范, 产品规格, 技术规范, 产品说明书. 如: create_specification, 等等 创建数据库时, 显式地指明, 字符集: crea ...

  2. 一些常用的mysql语句实例-以后照写

    create database blog; create table blog_user ( user_Name char(15) not null check(user_Name !=''), us ...

  3. 常用的mysql语句

    为了方便学习mysql,把接触到的sql收集一下,忘记的时候可以查询一下. 连接mysql数据库: mysql -u 用户名 -p 输入密码. 创建数据库: create database 数据库名; ...

  4. MySQL语句和命令大全

    前言 这里记录的是这两年学习工作过程中遇到的常用的 MySQL 语句和命令,部分是网上收集来的,出处已经不记得了,这里先谢过这些大佬.本文包括常见 SQL 语句,还有部分运维语句和命令,没有做详细的说 ...

  5. MySQL 常用的sql语句小结(待续)

    mysql 常用的sql语句 1.查看数据库各个表中的记录数 USE information_schema; SELECT table_name,table_rows FROM tables WHER ...

  6. 【PHP基础】常用mySQL语句以及WampServer2.2设置数据库默认编码

    一.WampServer2.2设置数据库默认编码(此部分转自http://www.cnsecer.com/5984.html) wamp下MySQL的默认编码是Latin1,不支持中文,要支持中文的话 ...

  7. ios开发中常用的也是最基本的mysql语句

    MySQL常用基本SQL语句小结——(转) sql语言不经常用,每次再用都隔好久的时间,以致最基本的都想不起来了,只好转一篇记着= - 找的时候方便 SQL分类:  DDL—数据定义语言(CREATE ...

  8. php中mysql语句的基本写法

    php中mysql语句的基本写法 php作为一门后台语言必须要与mysql数据库打交道,做到将内容存储到数据库以及数据库数据读写的操作,那么下面就来说下最近学习的一些东西: 在具体将之前先说一下编码的 ...

  9. mysql语句在node.js中的写法

    总结一下mysql语句在node.js中的各种写法,参考了npm网站mysql模块给的实例. 查询 select //1 db.query('select * from tuanshang_users ...

随机推荐

  1. ApplicationMaster是如何启动container并通信

    ApplicationMaster是如何启动container并通信 hadoop的关键进程 http://blog.csdn.net/jediael_lu/article/details/46386 ...

  2. 出现windows启动服务失败(无法从命令行或调试器启动,需要安装InstallUtil.exe)的解决办法

    两种方法1 从命令行安装2 选择项目-视图-自定义操作   然后将 安装,提交,回滚,卸载分别加入自定义操作,注意InstallClass属性为true

  3. k8s部署dashborad

    环境: 两台虚拟机, 10.10.20.203 部署docker.etcd.flannel.kube-apiserver.kube-controller-manager.kube-scheduler ...

  4. mysql 优化下

    比较全面的MySQL优化参考(下篇) 8条回复 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分 ...

  5. java 十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制

    //10进制转16进制 Integer.toHexString(20); //10进制转2进制 Integer.toBinaryString(10); //16进制转10进制 Integer.pars ...

  6. windows下php配置redis

    方法/步骤 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本   2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.5-ts-vc11- ...

  7. 浅谈<持续集成、持续交付、持续部署>(二)

    集成是指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题:部署是代码尽快向可运行的开发/测试节交付,以便尽早测试:交付是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题.如果 ...

  8. python 快速排序详述

    快速排序是对“冒泡排序”的优化算法,都属于交换排序类. 描述:它通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速 ...

  9. Eclipse 查看第三方jar包文件源代码解决方法

    1.打开第三方依赖包,源文件的快捷键:ctrl + mouseClick 2.由于我们下载的第三方jar 包,如Spring等相关的依赖包时,并没有附加下载相应的源文件,所以经常出现如图的这种问题. ...

  10. 使用PLSQL客户端导入导出数据库

    本文主要介绍如何使用SQL Developer工具来实现备份数据库.数据导出等操作,然后实现Oracle对象导入数据等操作 1 导出数据库对象 在PL/SQL Developer的菜单Tools=&g ...