mysql(单一/多条件/limit/基础)查询语句(含实战练习)

本博文源于mysql,旨在对简单的查询语句做相应学习与练习。内容涉及查询的基础语法,limit关键字、DISTINCT关键词、给字段设置别名、orderby关键子、where关键字查询、单一条件查询、多条件查询、使用like模糊查询。非常精彩!
在学习之前,首先需要创建表

 create table tb_students_info
    (id INT(11) PRIMARY KEY,
    name VARCHAR(10),dept_id INT(11),
   age INT(11),sex VARCHAR(4),height FLOAT,login_date DATE);

然后插入记录

 insert into tb_students_info values(1,'Dany',1,25,'F',160,'2015-09-10'); 
insert into tb_students_info values(2,'Green',3,23,'F',158,'2016-10-22');
insert into tb_students_info values(3,'Henry',2,23,'M',159,'2016-10-23');
 insert into tb_students_info values(4,'Jane',1,22,'F',156,'2016-10-12');
 insert into tb_students_info values(5,'Jim',1,24,'M',158,'2016-10-22');
 insert into tb_students_info values(6,'John',2,21,'M',152,'2016-10-24');
 insert into tb_students_info values(7,'Lily',6,22,'F',160,'2016-10-25');
 insert into tb_students_info values(8,'Susan',4,23,'F',166,'2016-10-26');
 insert into tb_students_info values(9,'Green',3,22,'M',170,'2016-10-27');
 insert into tb_students_info values(10,'Green',4,23,'M',193,'2016-10-23');

然后开始练习

查询语句基础

基础语法

SELECT
{* | <字段列名>}
[
FROM <1>,<2>....
[WHERE <表达式>
[GROUP BY <group by definition>
[HAVING <expression> [{<operator><expression>}...]]

使用“*”查询表中的全部内容

在SELECT语句中使用星号“*”通配符查询所有字段。SELECT查询记录最简单的形式是从一个表中检索所有记录,实现的方法是使用星号通配符指定查找所有列的名称,语法格式如下:

SELECT * FROM 表名;

例子:检索表tb_students_info所有字段的数据

在这里插入图片描述

查询表中指定的字段

同样的可以将*换为所有字段的名称,然后进行查询,这就是查询表中指定的字段。如果多列用逗号隔开

例子:查询表中name列所有学生的姓名

select name from tb_students_info;

在这里插入图片描述

使用DISTINCT关键字去除结果中的重复行

英文中distinct意思就是不重复。因此如果想要不重复就需要用到这个关键字

例子:为年龄消除重复行

 select age  from tb_students_info;
  select distinct age  from tb_students_info;

在这里插入图片描述

在查询时给表和字段设置别名

格式<表名> [AS] <别名>

例子:为tb_students_info表取别名stu

 select stu.name,stu.height FROM tb_students_info as stu;

在这里插入图片描述
这个取别名,体现在列名!在前面的学习中我们可以为列取别名,比如

例子:取出表中最高的身高

 select max(height) as max_height from tb_students_info;

在这里插入图片描述

使用LIMIT关键字指定查询结果的行数

查询指定行数<LIMIT> [<位置偏移量>,] <行数>第一个参数“位置偏移量”指示mysql从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是1,依次类推);第二个参数“行数”指示返回的记录条数。
来例子加深影响

例子:选取表中前四条记录

select * from tb_students_info limit 4;

在这里插入图片描述

例子:选取表中从第四条开始的5行记录

偏移量从0开始。

select * from tb_students_info limit 3,5;

在这里插入图片描述

使用ORDER BY对查询结果进行排序

格式ORDER BY {<列名> | <表达式> | <位置>} [ASC | DESC],下面对语法格式说明

  • <列名>:指定用于排序的列。可以指定多个列,列名之间用逗号分隔
  • <表达式>:指定用于排序的表达式
  • <位置>:指定用于排序的列在SELECT语句结果集中的位置,通常是一个正整数。
  • ASC|DESC:第一个为升序,第二个为降序,默认升序

应该注意的方面:

  • 当排序的值中存在空值时,ORDER BY子句会将该空值作为最小值来对待
  • 多个列排序时,从左到右执行

例子:查询表中height值,并作默认排序

select height as sort_height from tb_students_info order by height;

在这里插入图片描述

例子:对表进行排序,先按heightASC排序,再按nameDESC排序

 select height as sort_height,
 name as sort_name from tb_students_info order by height ASC,name DESC;

在这里插入图片描述

带WHERE关键字的条件查询

语法格式如下:

WHERE <查询条件> {<判定运算1>,<判定运算2>...}

对于判定运算有以下分类:

  • <表达式1> {=|<|<=|>|>=|<=>|<>|!=} <表达式2>
  • <表达式1> [NOT] LIKE <表达式2>
  • <表达式1> [NOT] [REGEXP| RLIKE] <表达式2>
  • <表达式1> [NOT] BETWEEN <表达式2> AND <表达式3>
  • <表达式1> IS [NOT] NULL

常用的运算符

比较运算符

常用的运算符就是对分类做详细的介绍,如果大家学过高级语言,一些通用的核可以不表示。最想强调的是<=>这个叫做安全等与运算符

  • 用于比较两个表达式的值
  • 若两个表达式的值中有一个为空值或者都为空值时,将返回UNKNOWN
  • 若两个表达式彼此相等或都等于空值时,比较结果为true
  • 若其中一个时空值或者都是非空值但不相等时,则为FALSE。

算术运算符

算术运算符+ - * / %相信大家都在高级语言里见过,就不细表

逻辑运算符

其中有以下几种

  • NOT或者! 逻辑非
  • AND或者&& 逻辑与
  • OR或者|| 逻辑或
  • XOR 逻辑异或

位运算符

  • | 按位或
  • & 按位与
  • ^ 按位异或
  • << 按位左移 符号相反,就是右移
  • ~ 按位取反,反转所有比特

单一条件的查询语句

这一部分就是将上面的讲过的进行单条件联系

例子:查找表中身高166的学生姓名

 select name,height from tb_students_info where height=166;

在这里插入图片描述

多条件的查询语句

例子:查找表中身高大于160的,并且年龄大于20岁的学生信息

 select * from tb_students_info where height>160 and age>20;

在这里插入图片描述

使用LIKE的模糊查询

这个like模糊查询涉及到% 和 _ 其中%就是匹配任何字符串,给定位置可以是0,1或多个字符;同理_就是匹配单个字符,体会例子。如果对匹配机制感兴趣,可以查看这篇博文,讲的是自动机理论匹配模式
js|正则表达式原理底层–有限状态机

例子:查找表中name以G开头的学生

 select * from tb_students_info where name like 'G%';

在这里插入图片描述

例子:查找表中name含有e的学生

 select * from tb_students_info where name like '%e%';

在这里插入图片描述

例子:查找表中name以y结尾,且前面只有三个字母的学生姓名

 select * from tb_students_info where name like '___y';

在这里插入图片描述

日期字段作为条件的查询语句

这个小节也是用之前的常用运算符进行练习,不过是对日期字段进行练习罢了。

例子:查找表中login_date在2016.10.25以前注册的学生信息

 select * from tb_students_info where login_date<'2016-10.25';

在这里插入图片描述

例子:查找表中login_date在2016.10.1到2016.10.15日之间注册学生信息

 select * from tb_students_info where login_date between '2016-10-1' and '2016-10-15';

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37149062/article/details/106784235