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语句实例-以后照写2
specification: 规范, 规格, 产品规范, 产品规格, 技术规范, 产品说明书. 如: create_specification, 等等 创建数据库时, 显式地指明, 字符集: crea ...
- 一些常用的mysql语句实例-以后照写
create database blog; create table blog_user ( user_Name char(15) not null check(user_Name !=''), us ...
- 常用的mysql语句
为了方便学习mysql,把接触到的sql收集一下,忘记的时候可以查询一下. 连接mysql数据库: mysql -u 用户名 -p 输入密码. 创建数据库: create database 数据库名; ...
- MySQL语句和命令大全
前言 这里记录的是这两年学习工作过程中遇到的常用的 MySQL 语句和命令,部分是网上收集来的,出处已经不记得了,这里先谢过这些大佬.本文包括常见 SQL 语句,还有部分运维语句和命令,没有做详细的说 ...
- MySQL 常用的sql语句小结(待续)
mysql 常用的sql语句 1.查看数据库各个表中的记录数 USE information_schema; SELECT table_name,table_rows FROM tables WHER ...
- 【PHP基础】常用mySQL语句以及WampServer2.2设置数据库默认编码
一.WampServer2.2设置数据库默认编码(此部分转自http://www.cnsecer.com/5984.html) wamp下MySQL的默认编码是Latin1,不支持中文,要支持中文的话 ...
- ios开发中常用的也是最基本的mysql语句
MySQL常用基本SQL语句小结——(转) sql语言不经常用,每次再用都隔好久的时间,以致最基本的都想不起来了,只好转一篇记着= - 找的时候方便 SQL分类: DDL—数据定义语言(CREATE ...
- php中mysql语句的基本写法
php中mysql语句的基本写法 php作为一门后台语言必须要与mysql数据库打交道,做到将内容存储到数据库以及数据库数据读写的操作,那么下面就来说下最近学习的一些东西: 在具体将之前先说一下编码的 ...
- mysql语句在node.js中的写法
总结一下mysql语句在node.js中的各种写法,参考了npm网站mysql模块给的实例. 查询 select //1 db.query('select * from tuanshang_users ...
随机推荐
- JavaWeb学习总结第五篇--认识Cookie机制
Cookie机制 前言 会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie和Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服 ...
- getMeasuredHeight(),getScrollY(),getHeight()的区别和联系
前言:关于控件的高度有两种获取方式,一个是获得控件的实际大小(getMeasuredHeight),就是包含显示部分和已显示的部分: 而getHeight是获得控件的显示的大小,如果控件大小超出的屏幕 ...
- ios 手势返回<1>
极其简单取巧的方法 iOS7之后是有侧滑返回手势功能的.注意,也就是说系统已经定义了一种手势,并且给这个手势已经添加了一个触发方法(重点).但是,系统的这个手势的触发条件是必须从屏幕左边缘开始滑动.我 ...
- 在linux下解压缩 tar.gz文件
解压:tar -xzvf 文件名 压缩 tar czf xx.tar.gz xxxx文件名
- MySQL的max()函数使用时遇到的小问题
通常我们获取某个表的某个字段最大值时可以使用max()函数. 使用场景举例: 获取某个表id的最大值:SQL: SELECT max(id) FROM table_name; SELECT max(` ...
- jvm本身的多线程机制
1 多线程环境下的构造函数调用 构造函数本身并没有隐式的同步,因为各个线程构建的是自己的对象,它们之间是不存在竞争关系的. 2 class loader在load class时被了sychronize ...
- ASP-AJAX-分页格式
HTML: <html> <head> <title>Mazey</title> <meta name="description&quo ...
- Ext.Ajax的用法
Ext.Ajax.request({ //ajax请求 url: 'Accou ...
- JVM性能优化, Part 3 垃圾回收
ImportNew注:本文是JVM性能优化 系列-第3篇-<JVM性能优化, Part 3 —— 垃圾回收> 第一篇 <JVM性能优化, Part 1 ―― JVM简介 > 第 ...
- 提供的STC89C52RC单片机GPS在LCD1602液晶只显示welcome to use问题?
1.使用USB-TTL接GPS单独测试GPS定位在所处环境看是否能定位到. 2.检查自己使用的单片机是不是STC89C52RC型号,提供例程使用的这个型号单片机.如果使用其他51单片机,请先使用STC ...