交集和差集

MySQL中没有这两个运算,但是有并集运算,所以可以利用这个来间接实现。

差集:

SELECT ID FROM (
SELECT DISTINCT A.AID AS ID FROM TABLE_A A
UNION ALL
SELECT DISTINCT B.BID AS ID FROM TABLE_B B
) as TEMP GROUP BY ID HAVING COUNT(ID) = 1;

并集:

SELECT ID FROM (
SELECT DISTINCT A.AID AS ID FROM TABLE_A A
UNION ALL
SELECT DISTINCT B.BID AS ID FROM TABLE_B B
) as TEMP GROUP BY ID HAVING COUNT(ID) = 2;

外键

MySQL中外键的声明和标准MySQL语言有所不同。

注意:创建外键要保证数据库引擎为INNODB

显示表的索引:

 show indexes from province\G; --\G表示列按行打印

创建表时创建外键:

CREATE TABLE articles (
article_id INT(11) unsigned NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
category_id tinyint(3) unsigned NOT NULL,
member_id int(11) unsigned NOT NULL,
INDEX (category_id), --索引
FOREIGN KEY (category_id) REFERENCES categories (category_id) on delete cascade on update cascade , --采用默认的外键名字,on delete ...这部分不是必需的,如果没有就不能删除或者修改外键对应的数据
CONSTRAINT fk_member FOREIGN KEY (member_id) REFERENCES members (member_id), --这里显示声明了外键名字
PRIMARY KEY(article_id)
) ENGINE=INNODB; --这里声明为INNODB

其他时候创建外键:

ALTER TABLE `article` ADD CONSTRAINT `fk_1` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

删除外键

ALTER TABLE article DROP FOREIGN KEY fk_1

关于count

  • count(*)对行的数目进行计算,包含NULL
  • count(column)对特定的列的值具有的行数进行计算,不包含NULL值
  • 如果表没有主键,那么count(1)比count(*)快
  • 如果有主键,那么count(主键,联合主键)比count(*)快

实用函数

  • curdate() 获取当前日期2017-01-01
  • now() 获取当前时间 2017-01-01 12:12:21
  • datediff(D1,D2) 获取两个日期相减的天数
  • ...
  • 其实这篇博客落枫潇潇

MySQL的小Tips的更多相关文章

  1. Mysql注入小tips --持续更新中

    学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...

  2. Mysql使用小tips

    一..常用函数 1.IFNULL(expr1,expr2)          如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值, ...

  3. MySQL优化小建议

    背景 "那啥,你过来一下!" "怎么了?我代码都单元测试了的,没出问题啊!"我一脸懵逼跑到运维大佬旁边. "你看看!你看看!多少条报警,赶快优化一下! ...

  4. HTML meta锚点跳转 小tips

    小tips meta锚点跳转 http://www.zhangxinxu.com/wordpress/2015/03/meta-http-equiv-refresh-content/

  5. Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表

    Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files. ...

  6. mysql优化小技巧

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  7. Windows7驱动调试小Tips

    v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...

  8. 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips

    1.优先使用数组而不是Object类型来表示有顺序的集合 ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 但是在使用for..in循环对Object中的 ...

  9. 小tips:JS之浅拷贝与深拷贝

    浅拷贝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷贝: functio ...

随机推荐

  1. 在ASP.NET 中检测手机浏览器(转)

    引言 之前做的项目中需要在浏览器查看PDF文件.在电脑端没有问题,但是手机端网页打开失败. 后来使用了pdf.js,个人认为pdf.js的页面不够清爽,就希望网站能自动检测登录设备,电脑端保持原样,手 ...

  2. 安装Apache Maven

    Apache Maven的安装是一个简单的过程:解压提取文件,将解压后的bin目录,配置到系统环境变量PATH中,以便于系统各目录下使用shell,都可以操作mvn command. 详细步骤: 1. ...

  3. jQuery拓展简易快速实现触摸效果

    1.js代码 //触摸开始事件,改变元素的样式 function touchstart(e) { $(this).removeClass("touchend").addClass( ...

  4. IOLI-crackme0x06-0x09 writeup

    前几天写了使用Radare2并用3中方法来解决crackme0x00, 然后紧接着第二天 就写了另外5个writeup, 如果认真看会发现那几个crackme的分析也是一开始 走了很多弯路, 但玩多了 ...

  5. 【2016北京集训测试赛】river

    HINT 注意是全程不能经过两个相同的景点,并且一天的开始和结束不能用同样的交通方式. [吐槽] 嗯..看到这题的想法的话..先想到了每个点的度为2,然后就有点不知所措了 隐隐约约想到了网络流,但并没 ...

  6. 13.MySQL(一)

    数据库简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 RDBMS 即关系数据库管理系统(Relational Database Management System) 1.特 ...

  7. C#多线程编程序--聊聊线程

    这篇文章主要给您讲解几个基本问题,什么是线程?为什么要用线程?线程万能?这几个问题.我这篇博客是在该系列另外几篇博客之后写的,之所以不往下继续写,而是回到最初的问题,是因为我感觉到我没有很好的讲解开头 ...

  8. OV摄像头SCCB通信协议

    /*! * COPYRIGHT NOTICE * Copyright (c) 2013,山外科技 * All rights reserved. * 技术讨论:山外论坛 http://www.vcan1 ...

  9. Spark2.1.0官方文档

    Spark 概述 Apache Spark是一个快速和通用的集群计算系统.它提供Java,scala,Python.R语言的APIs,以及支持一般执行图形的优化引擎. 它还支持一组丰富的高级工具,包括 ...

  10. 软件质量与测试——WordCount编码实现及测试

    1.GitHub地址       https://github.com/noblegongzi/WordCount 2.PSP表格 PSP2.1 PSP 阶段 预估耗时 (分钟) 实际耗时 (分钟) ...