MySQL数据表内容查询(一)

MySQL数据表内容查询(一)

MySQL数据表内容查询(一)

1 内容

数据表内容的查询主要就是DQL(数据库查询语言的使用),主要使用SELECT关键字去进行查询操作

2 使用

2.1 不带筛选条件的(没有where)

2.1.1 基本语法

SELECT 字段名1,字段名2,字段名3...字段名n FROM student;

/*

多个字段名之间用英文逗号隔开

想要查全部字段,直接SELECT *即可

想要查单个字段,直接SELECT 单个字段的名称

想要查多个字段,直接SELECT 字段1,字段2,字段3

*/

2.1.2 不同情况

a 查全部字段

a.1 示例sql语句

SELECT * FROM student;

/*

查询student数据表里面全部的字段信息

*/

a.2 示例sql语句运行截图

b 查一个字段

b.1 示例sql语句

SELECT name FROM student;

b.2 示例sql语句运行截图

c 查多个字段

c.1 示例sql语句

SELECT name,age FROM student;

c.2 示例sql语句运行截图

2.2 带筛选条件的

2.2.1 基本语法

SELECT 字段名1,字段名2,字段名3...字段名n FROM student

WHERE 字段名称 符号 值;

/*

多个字段名之间用英文逗号隔开

想要查全部字段,直接SELECT *即可

想要查单个字段,直接SELECT 单个字段的名称

想要查多个字段,直接SELECT 字段1,字段2,字段3

条件筛选的关键字为WHERE,其得到的结果必然是布尔类型

且执行顺序的是从左往右执行

*/

2.2.2 不同情况

a 查全部字段

a.1 示例sql语句

SELECT * FROM student;

WHERE name='张三';

/*

查询student数据表里面名字为张三的所有字段信息

*/

a.2 示例sql语句运行截图

b 查一个字段

b.1 示例sql语句

SELECT name FROM student

WHERE age=12;

/*

注意sql语句是以分号结尾,没有分号结尾的话回车是没有任何效果的

*/

b.2 示例sql语句运行截图

c 查多个字段

c.1 示例sql语句

SELECT name,age FROM student

WHERE age=12;

c.2 示例sql语句运行截图

2.3 运算符

2.3.1 算术运算符

a 内容

对返回的结果进行了运算,不要对null值进行计算,因为null值计算没有任何意义,所以我们在设置表的时候最好加上一个非空约束

含义运算符加法运算+减法运算-乘法运算*除法运算/注意:算术表达式一般是对数值进行运算

b 示例sql语句

SELECT name,age+10 FROM student;

c 示例sql语句运行截图

2.3.2 比较运算符

a 内容

通常与where搭配使用,用于筛选数据

运算符含义=等于<>不等于>=大于等于>大于<=小于等于<小于b 示例sql语句

SELECT * FROM student

WHERE age<>12;

/*

<>是不等于的意思,会把年龄不是12岁的所有学生的信息显示出来

*/

c 示例sql语句运行截图

2.3.3 逻辑运算符

a 内容

多个条件同时满足,通常与比较运算符、where语句搭配使用

运算符含义示例示例解析AND并且条件a AND 条件B会把同时满足条件a和条件b的信息查询出来OR或者条件a OR 条件B查询出满足条件a或者条件b的信息注意: AND的优先级别高于OR,因此AND和OR一起连用时,建议在OR的部分加上()括号

b 示例sql语句

SELECT * FROM student

WHERE student_id<=2203 AND (age=12 OR age=19);

/*

AND和OR连用时,要在OR的部分加上(),避免优先级的影响

*/

c 示例sql语句运行截图

2.4 谓词

2.4.1 前提

谓词就是返回值为真值的函数,真值分为true,false,unknown这三种

2.4.2 Like(模糊查询)

a 前提

Like通常是用于字符串类型的数据的模糊查找,因此like里面要用单引号包起来

需要与相应的字段一起使用

与Like搭配使用的特殊符号含义_任意一个字符(类型任意)%任意个字符(数量任意,类型任意)b 示例sql语句

SELECT * FROM student

WHERE name LIKE '_三%';

/*

会显示出第二个字符为三的所有学生的信息(该学生的名字的字符串长度>=2)

*/

c 示例sql语句运行截图

2.4.3 BETWEEN(范围查询,两端包含)

a 前提

范围查询,直接放置于字段的后面,其范围是闭区间的(两端包含的)

b 示例sql语句

SELECT * FROM student

WHERE age BETWEEN 12 AND 17;

/*

会显示出年龄在[12,17]这个区间内的所有的学生信息

*/

c 示例sql语句运行截图

2.4.4 is null(判断是否为null)

a 前提

这个是用于查找表中指定字段为null值的数据信息,我们要对这些null值数据进行处理,因为在数据库中null值的危害是很大的

b 示例sql语句

SELECT * FROM student

WHERE name IS NULL;

/*

会显示出name的值为null的所有学生的信息

*/

c 示例sql语句运行截图

2.4.5 is not null(判断是否不为null)

a 前提

把不为null的部分筛选出来,用于做下一步的逻辑出来,建议IS NOT NULL全大写,因为SQL语句的规范就是这样要求的。

b 示例sql语句

SELECT * FROM student

WHERE name IS NOT NULL;

/*

会显示出name的值不为null的所有学生的信息

*/

c 示例sql语句运行截图

2.4.5 in(OR运算符的简便写法)

a 前提

想要查询一个字段为某几个值的信息的话,用OR写起来特别麻烦(超过三个的话),看起来也挺长的

因此就有了in这个谓词用于简化超过三个条件(都是或者关系)的OR的写法

b 示例sql语句

SELECT * FROM student

WHERE name in('张三','刘备','李四');

/*

会显示name为张三或者刘备或者李四的学生的所有信息

这个in里面的书写顺序和查询得到的顺序无关(查询的顺序默认按照主键修饰的字段进行升序展示)

*/

c 示例sql语句运行截图

2.5 补充

2.5.1 列设置别名

a 前提

为列设置名字,可以让最终的展示效果符合阅读习惯,也可以用于后面的分组操作(让后面的操作变得更加简便)

如果是中文别名,需要给中文加上英文状态下的单引号

b 示例sql语句

SELECT student_id AS '学生编号',name AS '学生姓名',age AS '年龄'

FROM student

WHERE name IS NOT NULL;

/*

展示的首行依次为学生编号、学生姓名、年龄

*/

c 示例sql语句运行截图

2.5.2 从结果中删除重复行

a 前提

主要是用于统计有多少种不同的种类(去除重复数据),只能操作单行数据

它也会和聚合函数一起搭配使用(放入括号里面去)

b 示例sql语句

SELECT DISTINCT age

FROM student;

/*

会每种年龄只显示一次

*/

c 示例sql语句运行截图

相关作品