mysql多表查询的理论基础,Mysql单表和多表查询基础

使用关键字:select

select:按需要,按标准,按条件在对应关系上挑选对就字段或对就行的工具或指令。

查询语句的3种类型:1.简单查询;2.多表查询;3.子查询(嵌套查询)

select语句和用法:

SELECT * FROM tb_name;  ‘*’表示所有字段。

SELECT field1,field2,... FROM tb_name;查询指定的字段(投影方式)

SELECT [DISDINCT]* FROM tb_name WHERE qualification;通过WHERE过滤搜索码,找出符合条件的行(选择方式)

DISTINCT:表示相同的值只显示一次

子句:

FROM:后面可以是单个表,多个表或其他SELECT语句。

WHERE:后面是‘布尔关系表达式’,如

关系操作:>,=,<=  ,=,!=,<=>(NULLsafe equal to)

逻辑操作:AND ,OR,NOT

BETWEEN num1 AND num2:等同于(>=num1 AND <=num2);

注意:在做数值比较时不需加‘’,而字符比较时则需“”或‘’。

LIKE '':'%'表示任意多个字符,‘_’表示任意单个字符。

RLIKE RegExp:以正则表达式作模式匹配。

IN (value1,value2,...):select取值与在(value1,value2,...)范围内的值作比较

IS NULL,IS NOT NULL:在判断是否为空值时不能用‘=’号,而应用‘IS’.

ORDER BY field_name{DESC|ASC}:降序和升序排序

LIMIT [offset,] count:只显示count以前的行,或从‘offset+1’至count行之间的内容。

AS:select field_name1 AS field_name2 from ...用作字段别名 。

聚合运算:AVG(field),SUM(field),MAX(field),MIN(field),COUNT(field)

GROUP BY field:根据字段内容进行分组,分组一般用来做聚合运算

HAVING where_condition:对GROUP BY的结果再次进行过滤,判断条件同WHERE。

SELECT AVG(field) FROM tb_name GROUP BY qualification HAVING 'exp'

多表查询:

多表连接的几种方式:

1.交叉连接或笛卡尔乘积

2.自然连接(内连接的一种):只保留两张表中对应字段中必须要有等值关系的行

3.外连接:根据过滤条件,以左表或右表为基准,查寻与另一表的指定字段的对应行

左外连接:tb_name1 LEFT JOIN tb_name2 ON condition

右外连接:tb_name1 RIGHT JOIN tb_name2 ON condition

4.自连接:在同一个表内根椐设定条件,查询不同字段间与条件匹配的行。

子查询:一个查询中嵌套另一个查询。

在比较操作的查询中,子查询只能返回一个单值。

IN()中的子查询

FROM()中的子查询

联合查询:把符合条件的字段查询出来并将内容合并在一起。使用UNION

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值