您的位置:首页 > 科技 > 能源 > 网页程序开发基础知识_深圳学校网站定制设计_自助建站网站_长春模板建站代理

网页程序开发基础知识_深圳学校网站定制设计_自助建站网站_长春模板建站代理

2024/12/23 10:08:17 来源:https://blog.csdn.net/m0_74217128/article/details/143405528  浏览:    关键词:网页程序开发基础知识_深圳学校网站定制设计_自助建站网站_长春模板建站代理
网页程序开发基础知识_深圳学校网站定制设计_自助建站网站_长春模板建站代理

     查询语句是数据库操作中最为重要的一系列语法。查询关键字有  select、where、group、having、order by、imit。其中imit是MySQL的方言,只在MySQL适用

    数据库查询又分单表查询和多表查询,这里讲一下单表查询。

基础查询

# 查询指定列
SELECT * FROM 表名
# 查询所有列
SELECT 列名1,列名2,... FROM 表名

     " * "  表示所有

条件查询

关键字WHERE

WHERE 筛选条件

NULL的特殊性 

     null数据在mysql中比较特殊,在值运算中,任何值与null进行运算结果都为null;在逻辑运算中,任何条件与null进行逻辑运算结果都为false。在逻辑运算中,如果想表示不为空或者为空,格式应当为: 值 IS NOT NULL 或 IS NULL

运算符和关键字

=等于
!=不等于
<>不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN a AND b在a和b之间,包含a和b
IN(值1,值2,...)属于所举的值
IS NULL为空
AND、&&
OR、||
NOT、!

    NOT一般和IS NULL 和 IN 搭配使用,组成IS NOT NULL 和 NOT IN,分别表示不为空和不属于

模糊查询

    模糊查询可以在所有的字符串类型的数据的查询中使用。

    模糊查询需要在WHERE语句中使用

通配符

  关键字LIKE中,符号"_"用于表示任意的字符,10个连续的"_"就表示长度为10的任意字符串

  关键字LIKE中,符号"%"用于表示0~n个任意的字符

下面举例说明

# 查询长度为6且第3和第4个字符为"5h"的字符串
WHERE str LIKE '__5h__';# 查询以'@163.com'结尾的字符串
WHERE str LIKE '%@163.com';# 查询包含子字符串"lai"的字符串
WHERE str LIKE '%lai%';

字段控制查询

去除重复记录

    在一张表中某个字段有着重复的记录,要查询结果去除重复记录,需要使用关键字DISTINCT,字段名处可以为多个字段或"*"

# 查询student表的'name'字段并去除重复记录
SELECT DISTINCT name FROM student;

 添加别名

    添加别名需要使用关键字AS

    查询数据时,不只能够查询已有的字段名,还可以以原有的字段为基础,添加新的列。

    例:查询所有的员工信息,添加一行,其值为基础工资+奖金

SELECT *,sal+comm FROM emp;

    像上例代码进行查询时,最终结果里最后一列上方的字段名为显示为sal+comm,这时候为了美观,就需要使用到关键字 AS 来添加别名。

# 设置别名时可以不添加'',使用''包围字符也不会有影响
SELECT *,sal+comm AS 总工资 FROM emp;# 不只是自定义的字段才能用添加别名,添加别名时, AS 可以省略不写
SELECT name 姓名,id 学号 FROM student;

转换NULL

    在运算中,如果碰到了NULL值会影响最终查询结果,这时需要使用运算式IFNULL(字段名,替换值),在查询时如果某条记录的"字段名"处的值为null,则将其替换为替换值进行匹配。

    替换值只在进行匹配时使用,不会替换掉记录中的null值,也不会影响最终显示结果

# 查询所有字段并添加一行,其数据为sal + comm的值,若comm值为null,则替换为0进行运算
SELECT *,sal+IFNULL(comm,0) AS 总工资 FROM emp;# 查询所有字段,条件是name的值不为空。若name值为空,则将null替换成'蒂蒂'进行逻辑运算
SELECT * FROM stu WHERE IFNULL(name,'蒂蒂') IS NOT NULL; 

     为了方便解释上方红色字体一行,这里放一下第二个例子的查询结果

排序

    排序需要使用到关键字ORDER BY

    其中ASC表示升序排序,也是默认值;DESC表示降序排序。

# 字段名1可以是字段2,升序排序,ASC是默认值,可以不写
SELECT 字段名1 FROM 表名 ORDER BY 字段名2 [ASC];# 降序排序的DESC就不可以省略了# 先按年龄降序排序,再按学号升序排序
SELECT * FROM student ORDER BY age DESC,id [ASC];

聚合函数

    聚合函数是纵向计算的函数,一般在SELECT语句中使用

函数描述
COUNT()统计指定列不为NULL的记录行数
MAX()计算指定列的最大值,字符串类型列使用字符串排序运算
MIN()计算指定列的最小值,字符串类型列使用字符串排序运算
SUM()计算指定列的数值和,如果列类型不是数值类型,计算结果为0
AVG()计算指定列的平均值,如果列类型不是数值类型,计算结果为0

     NULL值不参与所有的聚合函数计算,写语:

SELECT 聚合函数(字段列表) FROM 表名 ;

分组查询

    分组查询需要使用GROUP BY关键字

    聚合函数经常和分组查询GROUP BY 一起使用,而且聚合函数往往会在分组查询后才执行,这里关系到MySQL查询语句的执行顺序,具体可查看我的另一篇文章:查询语句的执行顺序

SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组 后过滤条件 ];

分页查询

分页操作在业务系统开发时,也是非常常见的一个功能,我们在网站中看到的各种各样的分页条,后台

都需要借助于数据库的分页操作。MySQL使用LIMIT用来限定查询结果的起始行,以及总行数。

语法:

SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;

注意事项:

    起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。这里另外提一下,有关字符串的函数,它们对字符串的起始索引为1,也就是想要表示该字符串中的第一个字符,应当使用1表示,而不是0。

    分页查询目前没有统一的关键字,都是数据库的方言来实现,MySQL中是LIMIT。

    如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com