子查询

SELECT cust_id FROM orders WHERE order_num IN (SELECT order_num FROM orderitems WHERE prod_id='TN2');

联结

在一条select语句中关联表。

  1. 等值联结(内部联结)

    基于两个表之间的相等测试。
# 首先列出表,然后定义表之间的关系
# 需求: 查询供应商供应的商品名与商品价格
# 方式一
SELECT vend_name, prod_name, prod_price
FROM vendors, products
WHERE vendors.vend_id = products.vend_id
ORDER BY vend_name, prod_name; # 方式二 (推荐)
SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.id
ORDER BY vend_name, prod_name;
  1. 自联结

    在一条SELECT语句中多次引用同一个表,通过起别名方式实现
# 需求:查询表products中'wahaha'的供应商,供应的其商品
SELECT p1.prod_id, p1.prod_name
FROM products AS p1, products AS p2
WHERE p1.vend_id = p2.vend_id AND p2.prod_id = 'wahaha';
  1. 外部联结

    联结包含了在相关表中没有关联行的行,称为外联结。

    比如,列出检索客户下了多少订单,也把没下订单的客户检索出来
SELECT customers.cust_id, orders.order_num
FROM customers LEFT OUTER JOIN orders
ON customers.cust_id = orders.cust_id

必须使用LEFT或RIGHT指定 包括所有行的表,LEFT指定的是OUT JOIN左边的表,RIGHT指定的是OUT JOIN右边的表,在上面的例子中,指定的是customers表

带有聚集函数的联结

# 检索所有客户及其所下的订单数
SELECT customers.cust_name, customers.cust_id, COUNT(orders.order_num) AS num_ord
FROM customers INNER JOIN orders
ON customers.cust_id = orders.cust_id
GROUP BY customers.cust_id

mysql 主键从1开始递增,且外键存在

1.取消外键约束 SET foreign_key_checks = 0

2.使用truncate清空全部数据主键自增长是从1开始 truncate table "表名字"

3.启动外键约束 SET foreign_key_checks = 1

组合查询

多数SQL查询只包含从一个或多个表中返回数据的单条SELECT语句,MYSQL也允许执行多个select语句查询,并将结果作为单个结果集返回,称为并(UNION)或复合查询

最新文章

  1. memcache的最佳实践方案
  2. 远程访问MySQL遇到的一些问题
  3. jsp分页功能
  4. 黑马程序员_Java基础:多功能小窗口,swing,io,net综合应用
  5. IOS适配
  6. Winform登录、控制软件只运行一次、回车登录
  7. jq宽高 详解
  8. map函数(转)
  9. Spark学习笔记-三种属性配置详细说明【转】
  10. 磁珠(FB)的选用
  11. 2015第14周日WebSocket
  12. 【解决方法】ADT在线安装
  13. About大数据插码
  14. 学习【Web前端开发修炼之道】总结
  15. .net core 系列
  16. Linux CentOs集群LVS+Keepalived负载均衡的实现
  17. coolSQL安装与使用
  18. Linux内核 kmalloc, kzalloc & devm_kzalloc 区别【转】
  19. WordConut
  20. python 删除非空文件夹

热门文章

  1. C语言【10部分】
  2. 【C++】实现D3D9 的 Inline hook
  3. Jenkins+SpringCloud(多模块)+Vue项目详细配置
  4. 解决:Error downloading packages: containerd.io-1.6.4-3.1.el7.x86_64: [Errno 256] No more mirrors to try.
  5. VLDB'22 HiEngine极致RTO论文解读
  6. Logstash:运用 fingerprint 过滤器处理重复的文档
  7. Nginx反代服务器进阶学习最佳配置实践指南
  8. 第一个Django应用 - 第四部分:表单和类视图
  9. Beats在Kibana中的集中管理
  10. PostgreSQL 模式(SCHEMA)