MySQL的小Tips
交集和差集
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的更多相关文章
- Mysql注入小tips --持续更新中
学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...
- Mysql使用小tips
一..常用函数 1.IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值, ...
- MySQL优化小建议
背景 "那啥,你过来一下!" "怎么了?我代码都单元测试了的,没出问题啊!"我一脸懵逼跑到运维大佬旁边. "你看看!你看看!多少条报警,赶快优化一下! ...
- HTML meta锚点跳转 小tips
小tips meta锚点跳转 http://www.zhangxinxu.com/wordpress/2015/03/meta-http-equiv-refresh-content/
- Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files. ...
- mysql优化小技巧
对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...
- Windows7驱动调试小Tips
v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...
- 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips
1.优先使用数组而不是Object类型来表示有顺序的集合 ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 但是在使用for..in循环对Object中的 ...
- 小tips:JS之浅拷贝与深拷贝
浅拷贝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷贝: functio ...
随机推荐
- Halcon的应用程序 打开后 弹出没有帮助文件错误提示
问题: Halcon的应用程序 打开后 弹出没有帮助文件错误提示 解决方法: 建立(C:\ProgramFiles\MVTec\halcon)目录,将halcon安装目录下的help文件夹复制过来即可 ...
- HttpServletResponse,HttpServletRequest详解
1.相关的接口 HttpServletRequest HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据.同时,HttpServletReq ...
- sql数据库设置自定义消息
第一步 EXEC sp_addmessage @msgnum = 50005 , @severity = 10 , @msgtext = '更新失败' , @l ...
- yyb要填的各种总结的坑
已经写好啦的 莫比乌斯反演 杜教筛 动态点分治 斜率优化 Splay 莫队 凸包 旋转卡壳 Manacher算法 Trie树 AC自动机 高斯消元 KMP算法 SA后缀数组 SAM后缀自动机 回文树 ...
- 【Luogu3444】ORK-Ploughing(贪心)
[Luogu3444]ORK-Ploughing(贪心) 题面 Luogu 题解 我们知道,如果我们选定了以横向为主,或者纵向为主, 那么就有尽可能减少另一个方向上耕地的次数 所以分开贪心,但是本质相 ...
- NOIP提高组 2013货车运输
觉得题目水的离开 不屑的大佬请离开 不会图论的请离开 ……. 感谢您贡献的访问量 ————————————华丽的分割线———————————— 题面: 题目描述 A 国有 n 座城市,编号从 1 到 ...
- [SCOI2010]连续攻击游戏 匈牙利算法
觉得题目水的离开 不会匈牙利的请离开 不知道二分图的请离开 不屑的大佬请离开 ……. 感谢您贡献的访问量 ————————————华丽的分割线———————————— 扯淡完了,先重温一下题目 [SC ...
- web安全之SQL注入
一.sql注入是一种将sql代码添加到输入参数中 传递到sql服务器解析并执行得一种攻击手法 例: $sql = "SELECT * FROM goods WHERE Id = 1" ...
- Django入门-通用视图
文档:https://docs.djangoproject.com/en/1.11/topics/class-based-views/ from django.shortcuts import get ...
- Spring9:Autowire(自动装配)机制
为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: public interface Animal { public void eat(); } ...