美文网首页
MYSQL-sql语句编写

MYSQL-sql语句编写

作者: AGEGG | 来源:发表于2019-04-25 15:08 被阅读0次

有A(id,sex, par, cl, c2)、B(id,age,c1,c2)两张表,其中A.id与B.id关联,现在要求写出一条SQL语句,将B中age>50的记录的c1,c2更新到A表中统一记录中的c1,c2字段中。

1.MySQL的关联update操作

关联更新:

update A,B set A.c1 = B.c1, A.c2=AB.c2 where A.id=B.id

# 连接
update A inner join B on A.id=B.id 
set A.c1 = B.c1, A.c2=AB.c2 where  ... 

2.MySQL的关联查询语句

六种关联查询:

  • 交叉连接(cross join)
  • 内连接(inner join)
  • 外连接(left join/right join)
  • 联合查询(union/union all)
  • 全连接(full join):MySQL中不支持
交叉连接(cross join)

没有任何关联条件,结果是笛卡尔积,结果集会很大,没有意义,很少使用。

select * from A,B(,C) 或者
select * from A cross join B(cross join C)
内连接(inner join)

多表中同时符合某种条件的数据记录的集合
inner join可以缩写成join。

select * from A,B where A.id = B.id 或者
select * from A inner join B on A.id = B.id

分类:

  • 等值连接:on A.id = B.id
  • 不等值连接:on A.id > B.id
  • 自连接:select * from A T1 inner join A T2 on T1.id = T2.pid
外连接(left join/right join)

左外连接:left outer join,已左表为主,先查询出左表,按照on后的关联条件匹配右表,没有匹配到的用NULL填充,可以简写成left join
右外连接:right outer join,已左表为主,先查询出右表,按照on后的关联条件匹配左表,没有匹配到的用NULL填充,可以简写成right join

联合查询(union/union all)
select * from A union select * from B union ...  

把多个结果集集中在一起,union前的结果为基准,需要注意的是联合查询的列数要相等,相同的记录行会合并。
如果使用union all,不会合并重复的记录行。

全连接(full join):MySQL中不支持

MySQL实现全连接,可以使用left join和 union和right join联合使用。

select * from A left join B on A.id =B.id 
union 
select * from A right join B on A.id = B.id
嵌套查询

建议使用,结果不好把控
用一条SQL语句的结果作为另外一条SQL语句的条件

select * from A where id in (select id from B)

ex.

select t1.teamName,m.matchResult,t2.teamName,m.matchTime
from match as m
left join team as t1 on m.hostTeamID = t1.teamID,
leftjoin team as t2 on m.gueatTeamID = t2.gueatTeamID
where m.matchTime between "2006-6-1" and "2006-7-1"

相关文章

  • MYSQL-sql语句编写

    有A(id,sex, par, cl, c2)、B(id,age,c1,c2)两张表,其中A.id与B.id关联,...

  • MySQL-SQL语句

    [TOC] 第一章:MySQL介绍 1.1-什么是SQL Structured Query Language 结构...

  • mysql基本语法

    mysql-sql 语句 字符集选utf-8 我需要学增删改查, 事物, 联合 启动数据库 mysql -u ro...

  • MySQL 数据库规范--开发篇

    目录 1.sql语句编写2.explain 工具的使用--重点 1.sql语句编写 SQL编写 2.explain...

  • 数据库-mysql-sql语句

    #创建表# drop table if exists tb_user;CREATE TABLE tb_user (...

  • HQL入门

    HQLHibernate 的查询语言。主要用面向对象的思维来编写SQL 语句,找POJO编写SQL语句。 查询所有...

  • 2018-07-01

    if语句的语法和编写规则:详情见IfTest1~4程序 switch语句的语法和编写规则:见SwitchTest1...

  • SQL优化

    一、SQL语句编写注意问题 下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。在这些where子...

  • 从0到1学习网络安全 【PHP基础-If...Else】

    PHP If...Else 语句 条件语句用于根据不同条件执行不同动作。 PHP 条件语句 在您编写代码时,经常会...

  • MyBatis生成器自动生成Entity+Dao+Mapping

    MyBatis属于一种半自动的ORM框架,它需要程序员自己编写sql语句和映射文件,但是编写映射文件和sql语句很...

网友评论

      本文标题:MYSQL-sql语句编写

      本文链接:https://www.haomeiwen.com/subject/muczgqtx.html