mysql的学习笔记(五)
1.子查询,出现在其他SQL语句的SELECT子句
SELECT * FROM t1 WHERE col1=(SELECT col2 FROM t2);
第一个SELECT称为外层查询,第二个称为子查询,嵌套在内部的查询。称为子查询。可以包含多个关键字或条件
DISTINCT,GROUP BY.ORDER BY,LIMIT,函数等。子查询可以返回值可以是标量,一行,一列或子查询。
外层查询可以是SELECT,INSERT,UPDATE,SET或DO
(1).比较运算符的子查询。
=,>,<,>=,<=,<>,!=,<=>
SELECT * FROM t1 WHERE price>=(SELECT AVG(price) t1 )
(2).ANY SOME ALL子查询在返回多个结果时可用修饰
(3).IN的子查询
SELECT * FROM t1 WHERE price IN (SELECT * FROM t1 WHERE price>5000)
2.INSET.....SELECT插入
INSET t1(cate_names) SELECT goods_cate FROM tdb_goods_cate GROUP BY goods_cate
3.多表的更新
UPDATE table_references SET col_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}]..[WHERE where_condition]
UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate= cate_name SET goods_cate=cate_id;
4.多表更新一步到位
CREATE TABLE tdb_goods_brands( brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, brand_name VARCHAR(40) NOT NULL ) SELECT brand_name FROM tdb_goods GROUP BY brand_name;
5.连接,mysql在SELECT语句,多表更新,多表删除语句中支持JOIN操作。有相同字段的名字,起别名
(1).内连接 INNER JOIN。仅显示符合连接的记录。
使用ON关键字来设定连接条件,也可用WHERE来代替
SELECT goods_id,goods_name FROM tdb_goods t INNER JOIN tdb_goods_cate g ON t.cate_id= g.cate_id
(2).左外连接,显示左边的全部记录及右表符合连接条件的记录
SELECT goods_id,goods_name FROM tdb_goods t LEFT JOIN tdb_goods_cate g ON t.cate_id= g.cate_id
(3).右外连接,显示右表的全部记录及左表符合连接条件的记录
SELECT goods_id,goods_name FROM tdb_goods t RIGHT JOIN tdb_goods_cate g ON t.cate_id= g.cate_id
6.多表连接
SELECT goods_id,goods_name,cate_name,brand_name FROM tdb_goods g INNER JOIN tdb_goods_cates c ON g.cate_id=c. cate_id INNER JOIN tdb_goods_brands b ON g.brand_id=b.brand_id
7.自连接,顾名思义自己连接自己
数据准备
INSERT tdb_goods_types(type_name,parent_id) VALUES('家用电器',DEFAULT); INSERT tdb_goods_types(type_name,parent_id) VALUES('电脑、办公',DEFAULT); INSERT tdb_goods_types(type_name,parent_id) VALUES('大家电',1); INSERT tdb_goods_types(type_name,parent_id) VALUES('生活电器',1); INSERT tdb_goods_types(type_name,parent_id) VALUES('平板电视',3); INSERT tdb_goods_types(type_name,parent_id) VALUES('空调',3); INSERT tdb_goods_types(type_name,parent_id) VALUES('电风扇',4); INSERT tdb_goods_types(type_name,parent_id) VALUES('饮水机',4); INSERT tdb_goods_types(type_name,parent_id) VALUES('电脑整机',2); INSERT tdb_goods_types(type_name,parent_id) VALUES('电脑配件',2); INSERT tdb_goods_types(type_name,parent_id) VALUES('笔记本',9); INSERT tdb_goods_types(type_name,parent_id) VALUES('超级本',9); INSERT tdb_goods_types(type_name,parent_id) VALUES('游戏本',9); INSERT tdb_goods_types(type_name,parent_id) VALUES('CPU',10); INSERT tdb_goods_types(type_name,parent_id) VALUES('主机',10);
SELECT s.type_id,s.type_name,t.type_name FROM tdb_goods_types s LEFT JOIN tdb_goods_types t ON s.parent_id=t.type_id;
8.多表删除
DELETE t1 FROM tdb_goods t1 LEFT JOIN (SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING count(goods_name)>=2) t2 ON t1.goods_name=t2.goods_name WHERE t1.goods_id>t2.goods_id
mysql的学习笔记(五)的更多相关文章
- MYSQL进阶学习笔记五:MySQL函数的创建!(视频序号:进阶_13)
知识点六:MySQL函数的创建(13) 内置函数: 自定义函数: 首先查看是否已经开启了创建函数的功能: SHOW VARIABLES LIKE ‘%fun%’; 如果变量的值是OFF,那么需要开启 ...
- MYSQL初级学习笔记五:连接查询!(视频序号:初级_37-41)
知识点七:连接查询(37-41) 什么是连接查询: 连接查询是将两个或两个以上的表按某个条件连接起来,从中选取需要的数据.连接查询是同时查询两个或两个以上的表时使用的.当不同的表中存在相同意义的字段时 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
随机推荐
- Android 自定义ViewGroup手把手教你实现ArcMenu
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37567907 逛eoe发现这样的UI效果,感觉很不错,后来知道github上有这 ...
- 通过MSSQL分析器跟踪研究EM内部行为并解决identify列问题
今天有人问到MSSQL表里的IDENTITY字段,如何让它在复制原来数据到该表时,原来数据的IDENTITY字段不变,而新插入数据时,新插入的数据的IDENTITY依然增长,查了些资料,做了个实验,最 ...
- selenium chromedriver与谷歌浏览器版本映射表
chromedriver版本 支持的Chrome版本 v2.35 v62-64 v2.34 v61-63 v2.33 v60-62 v2.32 v59-61 v2.31 v58-60 v2.30 v5 ...
- IntelliJ IDEA 配置maven
以下内容引自http://blog.csdn.net/qq_32588349/article/details/51461182. 使用IntelliJ IDEA 配置Maven(入门) ...
- java的Integer与int的比较
- STM32学习笔记(二):GPIO口工作原理
STM32每个IO口具有7个寄存器来控制,每个IO口都可以自由进行编程控制,我们编程实际上控制的是通过控制那7个寄存器来控制我们的IO口,我们可以通过编程控制IO口,把IO口配置成如下八种模式: 1. ...
- 【公告】MIP组件审核平台故障-影响说明
故障通报 2017年8月8日 下午14:11,由于机器故障原因,MIP组件审核平台无法提供服务. 2017年8月8日 下午16:46,服务恢复. 故障影响 2017年8月8日下午13:00-14:00 ...
- 重磅!!!微软发布.NET Core 2.2
我们很高兴地宣布发布.NET Core 2.2.它包括对运行时的诊断改进,对ARM32 for Windows和Azure Active Directory for SQL Client的支持.此版本 ...
- MIUI目前为止最简单安装谷歌服务框架教程
安装谷歌服务框架方法有很多,比如用第三方 rec卡刷gapps包.用第三方工具安装......然而这些对于新手来说还是比较难的! 我今天说的方法可以说是最简单的:1.不需要修改文件:2.不需要借助第三 ...
- 再遇angular(angular4项目实战指南)
这两天看了看angular4的文档,发现他和angular1.X的差别真的是太大了,官方给出的那个管理英雄的Demo是一个非常好的入门项目,这里给出一个管理个人计划的小项目,从头至尾一步一步讲解如何去 ...