SQL查询及匹配条件

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

                   

SQL查询及匹配条件


1建立测试表


1)在test库中创建stu_info表

以root用户登入MySQL服务器:

1.[root@dbsvr1 ~]# mysql -u root -p

2.Enter password:

打开test库:

1.mysql> USE test;

创建stu_info表,包括name、gender、age三个字段:

1.mysql> CREATE TABLE stu_info(

2.-> name varchar(12) NOT NULL,

3.-> gender enum('boy','girl') DEFAULT 'boy',

4.-> age int(3) NOT NULL

5.-> );

6.Query OK, 0 rows affected (0.03 sec)

确认表结构:

1.mysql> DESC stu_info;

2.+--------+--------------------+------+-----+---------+-------+

3.| Field | Type | Null | Key | Default | Extra |

4.+--------+--------------------+------+-----+---------+-------+

5.| name | varchar(12) | NO | | NULL | |

6.| gender | enum('boy','girl') | YES | | boy | |

7.| age | int(3) | NO | | NULL | |

8.+--------+--------------------+------+-----+---------+-------+

9.3 rows in set (0.01 sec)


2)插入记录

1.mysql> INSERT INTO stu_info VALUES

2.-> ('Jim','girl',24),

3.-> ('Tom','boy',21),

4.-> ('Lily','girl',20),

5.-> ('Jerry','boy',27),

6.-> ('Mike','boy',21)

7.-> ;

8.Query OK, 5 rows affected (0.00 sec)

9.Records: 5 Duplicates: 0 Warnings: 0

确认stu_info表的所有记录内容:

1.mysql> SELECT * FROM stu_info;

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jim | girl | 24 |

6.| Tom | boy | 21 |

7.| Lily | girl | 20 |

8.| Jerry | boy | 27 |

9.| Mike | boy | 21 |

10.+-------+--------+-----+

11.5 rows in set (0.00 sec)


2)常用的表记录统计函数

查询stu_info表一共有多少条记录(本例中为5条):

1.mysql> SELECT count(*) FROM stu_info;     、、查询表中一共有多少条记录

2.+----------+

3.| count(*) |

4.+----------+

5.| 5 |

6.+----------+

7.1 row in set (0.00 sec)


计算stu_info表中各学员的平均年龄、最大年龄、最小年龄:

1.mysql> SELECT avg(age),max(age),min(age) FROM stu_info;   、、计算平均、最大、最小

2.+----------+----------+----------+

3.| avg(age) | max(age) | min(age) |

4.+----------+----------+----------+

5.| 22.6000 | 27 | 20 |

6.+----------+----------+----------+

7.1 row in set (0.03 sec)


计算stu_info表中男学员的个数:

1.mysql> SELECT count(gender) FROM stu_info WHERE gender='boy';

2.+---------------+

3.| count(gender) |

4.+---------------+

5.| 3 |

6.+---------------+


3)字段值的数值比较

列出stu_info表中年龄为21岁的学员记录:

1.mysql> SELECT * FROM stu_info WHERE age=21;

2.+------+--------+-----+

3.| name | gender | age |

4.+------+--------+-----+

5.| Tom | boy | 21 |

6.| Mike | boy | 21 |

7.+------+--------+-----+

8.2 rows in set (0.00 sec)

列出stu_info表中年龄超过21岁的学员记录:

1.mysql> SELECT * FROM stu_info WHERE age>21;

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jim | girl | 24 |

6.| Jerry | boy | 27 |

7.+-------+--------+-----+

8.2 rows in set (0.00 sec)

列出stu_info表中年龄大于或等于21岁的学员记录:

1.mysql> SELECT * FROM stu_info WHERE age>=21;

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jim | girl | 24 |

6.| Tom | boy | 21 |

7.| Jerry | boy | 27 |

8.| Mike | boy | 21 |

9.+-------+--------+-----+

10.4 rows in set (0.00 sec)

列出stu_info表中年龄在20岁和24岁之间的学员记录:

1.mysql> SELECT * FROM stu_info WHERE age BETWEEN 20 and 24;

2.+------+--------+-----+

3.| name | gender | age |

4.+------+--------+-----+

5.| Jim | girl | 24 |

6.| Tom | boy | 21 |

7.| Lily | girl | 20 |

8.| Mike | boy | 21 |

9.+------+--------+-----+

10.4 rows in set (0.00 sec)

4)多个条件的组合

列出stu_info表中年龄小于23岁的女学员记录:

1.mysql> SELECT * FROM stu_info WHERE age < 23 AND gender='girl';

2.+------+--------+-----+

3.| name | gender | age |

4.+------+--------+-----+

5.| Lily | girl | 20 |

6.+------+--------+-----+

7.1 row in set (0.00 sec)

列出stu_info表中年龄小于23岁的学员,或者女学员的记录:

1.mysql> SELECT * FROM stu_info WHERE age < 23 OR gender='girl';

2.+------+--------+-----+

3.| name | gender | age |

4.+------+--------+-----+

5.| Jim | girl | 24 |

6.| Tom | boy | 21 |

7.| Lily | girl | 20 |

8.| Mike | boy | 21 |

9.+------+--------+-----+

10.4 rows in set (0.00 sec)

如果某个记录的姓名属于指定范围内的一个,则将其列出:

1.mysql> SELECT * FROM stu_info WHERE name IN

2.-> ('Jim','Tom','Mickey','Minnie');

3.+------+--------+-----+

4.| name | gender | age |

5.+------+--------+-----+

6.| Jim | girl | 24 |

7.| Tom | boy | 21 |

8.+------+--------+-----+

9.2 rows in set (0.00 sec)

5)使用SELECT做数学计算

计算1234与5678的和:

1.mysql> SELECT 1234+5678;

2.+-----------+

3.| 1234+5678 |

4.+-----------+

5.| 6912 |

6.+-----------+

7.1 row in set (0.00 sec)

计算1234与5678的乘积:

1.mysql> SELECT 1234*5678;

2.+-----------+

3.| 1234*5678 |

4.+-----------+

5.| 7006652 |

6.+-----------+

7.1 row in set (0.00 sec)

计算1.23456789除以3的结果:

1.mysql> SELECT 1.23456789/3;

2.+----------------+

3.| 1.23456789/3 |

4.+----------------+

5.| 0.411522630000 |

6.+----------------+

7.1 row in set (0.00 sec)


输出stu_info表各学员的姓名、15年后的年龄:

1.mysql> SELECT name,age+15 FROM stu_info;

2.+-------+--------+

3.| name | age+15 |

4.+-------+--------+

5.| Jim | 39 |

6.| Tom | 36 |

7.| Lily | 35 |

8.| Jerry | 42 |

9.| Mike | 36 |

10.+-------+--------+

11.5 rows in set (0.00 sec)


6)使用模糊查询,LIKE引领

以下划线 _ 匹配单个字符,% 可匹配任意多个字符。

列出stu_info表中姓名以“J”开头的学员记录:

1.mysql> SELECT * FROM stu_info WHERE name LIKE 'J%';     //like 引领模糊查询

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jim | girl | 24 |

6.| Jerry | boy | 27 |

7.+-------+--------+-----+

8.2 rows in set (0.00 sec)

列出stu_info表中姓名以“J”开头且只有3个字母的学员记录:

1.mysql> SELECT * FROM stu_info WHERE name LIKE 'J__';

2.+------+--------+-----+

3.| name | gender | age |

4.+------+--------+-----+

5.| Jim | girl | 24 |

6.+------+--------+-----+


7)使用正则表达式,REGEXP引领

列出stu_info表中姓名以“J”开头且以“y”结尾的学员记录:

1.mysql> SELECT * FROM stu_info WHERE name REGEXP '^J.*y$';

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jerry | boy | 27 |

6.+-------+--------+-----+

7.1 row in set (0.00 sec)

效果等同于:

1.mysql> SELECT * FROM stu_info WHERE name Like 'J%y';

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jerry | boy | 27 |

6.+-------+--------+-----+

7.1 row in set (0.00 sec)

出stu_info表中姓名以“J”开头或者以“y”结尾的学员记录:

1.mysql> SELECT * FROM stu_info WHERE name REGEXP '^J|y$';

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jim | girl | 24 |

6.| Lily | girl | 20 |

7.| Jerry | boy | 27 |

8.+-------+--------+-----+

9.3 rows in set (0.00 sec)

效果等同于:

1.mysql> SELECT * FROM stu_info WHERE name Like 'J%' OR name Like '%y';

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jim | girl | 24 |

6.| Lily | girl | 20 |

7.| Jerry | boy | 27 |

8.+-------+--------+-----+

8)按指定的字段排序,ORDER BY

列出stu_info表的所有记录,按年龄排序:

1.mysql> SELECT * FROM stu_info order BY age;

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Lily | girl | 20 |

6.| Tom | boy | 21 |

7.| Jim | girl | 24 |

8.| Jerry | boy | 27 |

9.+-------+--------+-----+

10.4 rows in set (0.00 sec)

因默认为升序(Ascend)排列,所以上述操作等效于:

1.mysql> SELECT * FROM stu_info order BY age ASC;

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Lily | girl | 20 |

6.| Tom | boy | 21 |

7.| Jim | girl | 24 |

8.| Jerry | boy | 27 |

9.+-------+--------+-----+

10.4 rows in set (0.00 sec)

若要按降序(Descend)排列,则将ASC改为DESC即可:

1.mysql> SELECT * FROM stu_info order BY age DESC;

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jerry | boy | 27 |

6.| Jim | girl | 24 |

7.| Tom | boy | 21 |

8.| Lily | girl | 20 |

9.+-------+--------+-----+

10.4 rows in set (0.00 sec)

9)限制查询结果的输出条数,LIMIT

查询stu_info表的所有记录,只列出前3条:

1.mysql> SELECT * FROM stu_info LIMIT 3;

2.+------+--------+-----+

3.| name | gender | age |

4.+------+--------+-----+

5.| Jim | girl | 24 |

6.| Tom | boy | 21 |

7.| Lily | girl | 20 |

8.+------+--------+-----+

9.3 rows in set (0.00 sec)

列出stu_info表中年龄最大的3条学员记录:

1.mysql> SELECT * FROM stu_info order BY age DESC LIMIT 3;

2.+-------+--------+-----+

3.| name | gender | age |

4.+-------+--------+-----+

5.| Jerry | boy | 27 |

6.| Jim | girl | 24 |

7.| Tom | boy | 21 |

8.+-------+--------+-----+

9.3 rows in set (0.00 sec)

10)分组查询结果,GROUP BY

针对stu_info表,按性别分组,分别统计出男、女学员的人数:

1.mysql> SELECT gender,count(gender) FROM stu_info GROUP BY gender;

2.+--------+---------------+

3.| gender | count(gender) |

4.+--------+---------------+

5.| boy | 3 |

6.| girl | 2 |

7.+--------+---------------+

8.2 rows in set (0.00 sec)

列出查询字段时,可以通过AS关键字来指定显示别名,比如上述操作可改为:

1.mysql> SELECT gender AS '性别',count(gender) AS '人数'

2.-> FROM stu_info GROUP BY gender;

3.+--------+--------+

4.| 性别 | 人数 |

5.+--------+--------+

6.| boy | 3 |

7.| girl | 2 |

8.+--------+--------+

9.2 rows in set (0.00 sec)

2.基于前面的yg_info表,完成相关查询操作

1)确认yg_info表的所有记录,以方便对比查询效果

1.mysql> SELECT * FROM yg_info;

2.+--------+-----------+--------+--------------+-----------+--------------+----------+-----------+

3.| 编号 | 姓名 | 性别 | 入职时间 | 部门 | 电子邮箱 | QQ号码 | 月工资 |

4.+--------+-----------+--------+--------------+-----------+--------------+----------+-----------+

5.| 1 | 张翠山 | 男 | 2010-12-01 | 武当派 | zcs@wdp.com | 50000 | 15000.00 |

6.| 2 | 殷素素 | 女 | 2010-12-25 | 武当派 | yss@wdp.com | 50000 | 12000.00 |

7.| 3 | 张无忌 | 男 | 2013-12-03 | 明教 | zwj@mj.com | 50000 | 18000.00 |

8.| 4 | 郭靖 | 男 | 2008-08-15 | 桃花岛 | gj@thd.com | 50000 | 20000.00 |

9.| 5 | 黄蓉 | 女 | 2008-08-15 | 桃花岛 | hr@thd.com | 50000 | 24000.00 |

10.+--------+-----------+--------+--------------+-----------+--------------+----------+-----------+

11.5 rows in set (0.00 sec)

2)列出yg_info表中月工资低于20000且姓张的员工

1.mysql> SELECT 编号,姓名,性别,部门,月工资 FROM yg_info

2.-> WHERE 月工资<20000 AND 姓名 LIKE '张%';

3.+--------+-----------+--------+-----------+-----------+

4.| 编号 | 姓名 | 性别 | 部门 | 月工资 |

5.+--------+-----------+--------+-----------+-----------+

6.| 1 | 张翠山 | 男 | 武当派 | 15000.00 |

7.| 3 | 张无忌 | 男 | 明教 | 18000.00 |

8.+--------+-----------+--------+-----------+-----------+

9.2 rows in set (0.00 sec)

3)分别统计yg_info表中男、女员工的人数

1.mysql> SELECT 性别,count(性别) AS '人数' FROM yg_info GROUP BY 性别;

2.+--------+--------+

3.| 性别 | 人数 |

4.+--------+--------+

5.| 男 | 3 |

6.| 女 | 2 |

7.+--------+--------+

8.2 rows in set (0.00 sec)

4)其他查询条件操作练习

列出yg_info表中所有员工记录,只看姓名、性别、部门、入职时间、QQ号码:

1.mysql> SELECT 姓名,性别,部门,入职时间,QQ号码 FROM yg_info;

2.+-----------+--------+-----------+--------------+----------+

3.| 姓名 | 性别 | 部门 | 入职时间 | QQ号码 |

4.+-----------+--------+-----------+--------------+----------+

5.| 张翠山 | 男 | 武当派 | 2010-12-01 | 50000 |

6.| 殷素素 | 女 | 武当派 | 2010-12-25 | 50000 |

7.| 张无忌 | 男 | 明教 | 2013-12-03 | 50000 |

8.| 郭靖 | 男 | 桃花岛 | 2008-08-15 | 50000 |

9.| 黄蓉 | 女 | 桃花岛 | 2008-08-15 | 50000 |

10.+-----------+--------+-----------+--------------+----------+

11.5 rows in set (0.00 sec)

列出其中2010年12月20日之后入职的员工记录:

1.mysql> SELECT 姓名,性别,部门,入职时间,QQ号码 FROM yg_info

2.-> WHERE 入职时间>='2010-12-20';

3.+-----------+--------+-----------+--------------+----------+

4.| 姓名 | 性别 | 部门 | 入职时间 | QQ号码 |

5.+-----------+--------+-----------+--------------+----------+

6.| 殷素素 | 女 | 武当派 | 2010-12-25 | 50000 |

7.| 张无忌 | 男 | 明教 | 2013-12-03 | 50000 |

8.+-----------+--------+-----------+--------------+----------+

9.2 rows in set (0.00 sec)

列出其中2010年12月20日之后入职的女员工记录:

1.mysql> SELECT 姓名,性别,部门,入职时间,QQ号码 FROM yg_info

2.-> WHERE 入职时间>='2010-12-20' AND 性别='女';

3.+-----------+--------+-----------+--------------+----------+

4.| 姓名 | 性别 | 部门 | 入职时间 | QQ号码 |

5.+-----------+--------+-----------+--------------+----------+

6.| 殷素素 | 女 | 武当派 | 2010-12-25 | 50000 |

7.+-----------+--------+-----------+--------------+----------+

8.1 row in set (0.00 sec)

5)综合练习1——为武当派的所有员工提薪20%

查看修改前的记录:

1.mysql> SELECT 编号,姓名,性别,部门,月工资 FROM yg_info

2.-> WHERE 部门='武当派';

3.+--------+-----------+--------+-----------+-----------+

4.| 编号 | 姓名 | 性别 | 部门 | 月工资 |

5.+--------+-----------+--------+-----------+-----------+

6.| 1 | 张翠山 | 男 | 武当派 | 15000.00 |

7.| 2 | 殷素素 | 女 | 武当派 | 12000.00 |

8.+--------+-----------+--------+-----------+-----------+

9.2 rows in set (0.00 sec)

月工资增加20%,更新操作:

1.mysql> UPDATE yg_info SET 月工资=月工资*1.20

2.-> WHERE 部门='武当派';

3.Query OK, 2 rows affected (0.01 sec)

4.Rows matched: 2 Changed: 2 Warnings: 0

确认更新后的结果:

1.mysql> SELECT 编号,姓名,性别,部门,月工资 FROM yg_info

2.-> WHERE 部门='武当派';

3.+--------+-----------+--------+-----------+-----------+

4.| 编号 | 姓名 | 性别 | 部门 | 月工资 |

5.+--------+-----------+--------+-----------+-----------+

6.| 1 | 张翠山 | 男 | 武当派 | 18000.00 |

7.| 2 | 殷素素 | 女 | 武当派 | 14400.00 |

8.+--------+-----------+--------+-----------+-----------+

9.2 rows in set (0.00 sec)

6)综合练习2——将武当派的所有员工并入明教

查看修改前的记录:

1.mysql> SELECT 姓名,性别,入职时间,部门 FROM yg_info

2.-> WHERE 部门 REGEXP '武当派|明教';

3.+-----------+--------+--------------+-----------+

4.| 姓名 | 性别 | 入职时间 | 部门 |

5.+-----------+--------+--------------+-----------+

6.| 张翠山 | 男 | 2010-12-01 | 武当派 |

7.| 殷素素 | 女 | 2010-12-25 | 武当派 |

8.| 张无忌 | 男 | 2013-12-03 | 明教 |

9.+-----------+--------+--------------+-----------+

10.3 rows in set (0.00 sec)

修改武当派所有员工的所属“部门”,更新操作:

1.mysql> UPDATE yg_info SET 部门='明教'

2.-> WHERE 部门='武当派';

3.Query OK, 2 rows affected (0.00 sec)

4.Rows matched: 2 Changed: 2 Warnings: 0

确认更新后的结果:

1.mysql> SELECT 姓名,性别,入职时间,部门 FROM yg_info

2.-> WHERE 部门 REGEXP '武当派|明教';

3.+-----------+--------+--------------+--------+

4.| 姓名 | 性别 | 入职时间 | 部门 |

5.+-----------+--------+--------------+--------+

6.| 张翠山 | 男 | 2010-12-01 | 明教 |

7.| 殷素素 | 女 | 2010-12-25 | 明教 |

8.| 张无忌 | 男 | 2013-12-03 | 明教 |

9.+-----------+--------+--------------+--------+

10.3 rows in set (0.00 sec)

7)综合练习3——替换桃花岛所有员工的电子邮箱后缀,改为jianghu.com

替换操作可使用REPLACE(字段,OLD,NEW)函数。

查看修改前的记录:

1.mysql> SELECT 姓名,性别,部门,电子邮箱 FROM yg_info WHERE 部门='桃花岛';

2.+--------+--------+-----------+--------------+

3.| 姓名 | 性别 | 部门 | 电子邮箱 |

4.+--------+--------+-----------+--------------+

5.| 郭靖 | 男 | 桃花岛 | gj@thd.com |

6.| 黄蓉 | 女 | 桃花岛 | hr@thd.com |

7.+--------+--------+-----------+--------------+

8.2 rows in set (0.00 sec)

替换邮箱后缀,更新操作:

1.mysql> UPDATE yg_info SET 电子邮箱=REPLACE(电子邮箱,'thd.com','jianghu.com')

2.-> WHERE 部门='桃花岛';

3.Query OK, 2 rows affected (0.00 sec)

4.Rows matched: 2 Changed: 2 Warnings: 0

确认更新后的结果:

1.mysql> SELECT 姓名,性别,部门,电子邮箱 FROM yg_info

2.-> WHERE 部门='武当派';

3.+--------+--------+-----------+----------------+

4.| 姓名 | 性别 | 部门 | 电子邮箱 |

5.+--------+--------+-----------+----------------+

6.| 郭靖 | 男 | 桃花岛 | gj@jianghu.com |

7.| 黄蓉 | 女 | 桃花岛 | hr@jianghu.com |

8.+--------+--------+-----------+----------------+

9.2 rows in set (0.00 sec)







      本文转自Jx战壕  51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1384780,如需转载请自行联系原作者



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
SQL 监控 关系型数据库
一键开启百倍加速!RDS DuckDB 黑科技让SQL查询速度最高提升200倍
RDS MySQL DuckDB分析实例结合事务处理与实时分析能力,显著提升SQL查询性能,最高可达200倍,兼容MySQL语法,无需额外学习成本。
|
9月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
SQL 数据挖掘 数据库
第三篇:高级 SQL 查询与多表操作
本文深入讲解高级SQL查询技巧,涵盖多表JOIN操作、聚合函数、分组查询、子查询及视图索引等内容。适合已掌握基础SQL的学习者,通过实例解析INNER/LEFT/RIGHT/FULL JOIN用法,以及COUNT/SUM/AVG等聚合函数的应用。同时探讨复杂WHERE条件、子查询嵌套,并介绍视图简化查询与索引优化性能的方法。最后提供实践建议与学习资源,助你提升SQL技能以应对实际数据处理需求。
917 1
|
SQL 运维 监控
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
|
9月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
10月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
563 18
|
SQL 索引
【YashanDB知识库】字段加上索引后,SQL查询不到结果
【YashanDB知识库】字段加上索引后,SQL查询不到结果
|
8月前
|
SQL 关系型数据库 MySQL
(SQL)SQL语言中的查询语句整理
查询语句在sql中占了挺大一部分篇幅,因为在数据库中使用查询语句的次数远多于更新与删除命令。而查询语句比起其他语句要更加的复杂,可因为sql是数据库不可或缺的一部分,所以即使不懂,也必须得弄懂,以上。
431 0
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
|
10月前
|
SQL 人工智能 数据库
【三桥君】如何正确使用SQL查询语句:避免常见错误?
三桥君解析了SQL查询中的常见错误和正确用法。AI产品专家三桥君通过三个典型案例:1)属性重复比较错误,应使用IN而非AND;2)WHERE子句中非法使用聚合函数的错误,应改用HAVING;3)正确的分组查询示例。三桥君还介绍了学生、课程和选课三个关系模式,并分析了SQL查询中的属性比较、聚合函数使用和分组查询等关键概念。最后通过实战练习帮助读者巩固知识,强调掌握这些技巧对提升数据库查询效率的重要性。
341 0