当前位置:   article > 正文

MySQL表记录的检索(IN, AND ,LIKE,...)_mysql select in查询后面跟and

mysql select in查询后面跟and

基本查询语句

  • 使用 SELECT 语句查询一个数据表

‘*’ 号代表所有的列
example

SELECT * FROM ta_name;
  • 1
  • 查询表中的一项或则多列

example

SELECT id,name FROM tb_student;
  • 1
  • 从多个表中获取数据

example

SELECT  tb_1.id,tb_2.name,tb_3.sex,...;
  • 1

单表查询

  • 查询所有字段
SELECT * FROM tb_name;
  • 1
  • 查询指定字段
 SELECT 字段名 FROM 表名;
  • 1
  • 查询指定数据

这就需要一个查询条件,可以使用 WHERE 的子句来作为查询条件
下面给出比较运算符参考表

运算符名称示例运算符名称示例
=等于id=5IS NOT NULL是否为空id IS NOT NULL
>大于id>5BETWEEN是否在某区间中id BETWEEN 1 AND 15
IN在某些固定值中id IN(1,2,3)NOT IN不在某些固定值中name NOT IN(shi,li)
LIKE模式匹配name LIKE(‘shi%’)REGEXP正则表达式匹配Name REGEXP 正则表达式
SELECT * FROM tb_name WHERE name='shi';
  • 1
  • 带 LIKE 关键字的查询

有两种通配符’%‘代表匹配多个字符,’_'代表匹配单个字符

SELECT * FROM tb_name WHERE bookname LIKE "%MYSQL%";
  • 1
  • AND | OR 的多条件查询

AND 且关系 OR 或关系
example

SELECT * FROM tb_name WHERE name='mr' AND id=1;
  • 1
SELECT * FROM tb_name WHERE name='mr' ORid=1;
  • 1
  • 使用DISTINCT 关键字去除结果中的重复行
SELECT DISTINCT 字段名 FROM 表名;
  • 1
  • 使用 ORDER BY 关键字对查询结果排序
ORDER BY 字段名 [ASC | DESC ];
  • 1

ASC 升序,DESC 降序

  • 使用 GROUP BY 关键字分组查询
SELECT bookid,COUNT(*) FROM tb_borrow GROUP BY bookid;
  • 1

可以结合 GROUP_CONCAT 一起使用显示分组的所有字段的值

 SELECT bookid,GROUP_CONCAT(readerid) FROM tb_borroe GROUP BY bookid;
  • 1
  • 使用 LIMIT 限制查询结果的数量

读取三条记录

SELECT * FROM tb_borrow1 ORDER BY borrowTime DESC LIMIT 3;
  • 1

从第二个开始读,读取三条记录

SELECT * FROM tb_borrow1 ORDER BY borrowTime DESC LIMIT 2,3;
  • 1

聚合函数查询

  • COUNT() 函数
  • 对于’ * ’ 作为参数返回包括 NULL 的所有的行的数目
  • 对于其他参数,返回非 NULL 行的总数
SELECT COUNT(*) FROM tb_readr;
  • 1
  • SUM() 函数

可以求出某个数值类型所有字段取值总和

SELECT SUM(amount) FROM tb_student;
  • 1
  • 和SUM()类似的函数还有 AVG() MAX() MIN()

这里就不一 一介绍了

链接查询

  • 内链接查询

是最普通的链接类型

SELECT id,name,sex,age FROM student;
  • 1
  • 外链接查询
  • 左外连接

是指将左表中的数据分别和右表中的数据连接组合,返回的结果除内连接外,包括左表中不符合条件的数据,并在右表的相应列中添加NULL
语法

SELECT 字段名称 FROM 表名1 LEFT JOIN 表名2 ON 表名1.字段1= 表名2.属性名2;
  • 1

example

 SELECT id,name,sex FROM student LEFT JOIN class ON student.id=class.id;
  • 1
  • 右外连接

是指将右表中的数据分别和左表中的数据连接组合,返回的结果除内连接外,包括右表中不符合条件的数据,并在左表的相应列中添加NULL
语法

SELECT 字段名称 FROM 表名1 RIGHTJOIN 表名2 ON 表名1.字段1= 表名2.属性名2;
  • 1

example

 SELECT id,name,sex FROM student RIGHT JOIN class ON student.id=class.id;
  • 1
  • 复合条件链接查询

在查询的时候可以增加其他限制条件,使查询结果更加准确.
example

SELECT id,name,sex FROM student,class WHERE student.id = class.id AND sex='man';
  • 1

子查询

  • 带 IN 关键字的子查询
SELECT id,name,sex FROM student WHERE id IN(SELECT id FROM class);
  • 1
  • 带比较运算符的子查询
SELECT score FROM student WHERE name='优秀';
  • 1
  • 带 EXISTE | NOT EXISTS 关键字的子查询

EXISTS 当存在时就返回 true 执行外层查询语句,否则不执行,就没有查询结果
NOT EXISTS 与EXISTS 相反当返回true外层不执行查询语句,返回false 外层执行查询语句

SELECT id,name,sex FROM student WHERE 
 EXISTS(SELECT * FROM class WHERE student.id=class.id);
  • 1
  • 2
  • 带ANY 关键字的子查询

表示满足其中任意一个,通常和运算符一起使用,只要满足内层查询中的任意一个就可以通过该条件来执行外层查询

SELECT * FROM student WHERE 
socre > ANY(SELECT score FROM student2 WHERE classid=3);
  • 1
  • 2
  • 带 ALL 关键字的子查询

表示满足所有的条件才执行外层查询

SELECT * FROM student WHERE 
score > ALL(SELECT score FROM student2 WHERE classid=3);
  • 1
  • 2

合并查询结果

合并查询是将多个 SELECT 查询语句的结果合并到一起展示
通常使用UNION 和 UNION ALL

  • 使用UNION关键字
SELECT name FROM class1
UNION
SELECT name FROM class2;
  • 1
  • 2
  • 3
  • UNION ALL
    使用方法和UNION 相同,区别在于UNIOON ALL 会去掉相同的结果

定义表和字段的别名

  • 为表取别名

当表的名字特别长的时候查询起来很不方便,这时候就需要给这个表去一个别名了

 SELECT bookname,auther,price,page,typename,days
 FROM td_bookinfo AS book
 LEFT JOIN td_booktype AS type ON book.typeid=type.id;
  • 1
  • 2
  • 3

其中book 是tb_bookinfo的别名,type 是td_booktype的别名

  • 为字段取别名
字段名 AS 别名;
  • 1

使用正则表达式查询

字段名 REGEXP '匹配方式'
  • 1
模式字符解释example
^匹配特定字符或字符串开头的记录‘^php’
$匹配特定字符或字符串结尾的记录‘再见$’
.匹配字符串中任意一个字符,包括回车换行‘na.e’
[字符集合]匹配字符集合中的任意一个字符‘[PCA]’
[^字符集合]匹配除字符集合以外的任意字符‘[^PCA]’
S1|S2|S3匹配其中的任意一个字符串‘dgfg’|‘as’|‘asda’
*匹配多个该符号之前的字符,包括0个或1个‘J*A’
+匹配多个该符号之前的字符,包括1个‘J+A’
字符串{N}匹配字符串出现N次a{3}
字符串{M,N}匹配字符串出现至少M次,最多N次‘a{M,N}’

参考书籍: MySQL数据库管理与开发(慕课版)
如有错误,欢迎指正

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/730181
推荐阅读
相关标签
  

闽ICP备14008679号