MySQL数据库管理之删除SQL语句

第四题怎么做??mysql 怎么用多表查询where来做??

啊? 你的问题有点跳跃……你是想聊SQL多表查询,还是想吐槽MySQL? 🤔
我们先来说SQL部分。
你举的例子很清楚。
使用a.id = b.id进行关联,没有问题。
但你后面说的“实际开发中不应该这样使用,最好使用主外键约束”——这就是对的!
我上次在项目中遇到过。
当时有一位老人直接用ID进行关联。
结果他在更新数据的时候忘记同步另外一张表,导致数据混乱。
后来我们把表1 的id设置为主键,表2 的id设置为外键,这样数据库本身就会强制建立约束关系。
多么无忧无虑啊! 虽然写查询的时候用a.id = b.id就够了,但是底层数据关系稳定,我也安心。

对于别名的使用,标准的写法是AS b,b. 方便引用表示 b 的字段。
不过,有时候我看代码,别人用了tel之类的短别名,我就得先弄清楚它是哪个表……所以我个人觉得应该不会太复杂,或者加个注释来解释一下。

MySQL部分...你觉得它太流行了吗? 😂 我觉得就是够轻、够开放。
2 02 3 年我在上海启动了一个小项目,预算有限,所以我使用了MySQL社区版。
结果是它运行非常稳定并且易于维护。
即使在一些复杂的查询或者高并发的场景下,也可能会有点困难。
这时候就得考虑MariaDB或者Percona了。
而且,开源真的很棒。
您可以随意修改。
社区里有很多专家,所以很容易找到问题的答案。

所以,使用主外键进行SQL多表查询是一个好习惯。
使用别名取决于个人喜好。
好吧,MySQL...你喜欢用它就行,别让它成为你的负担。
无论如何,这取决于你!

sql中where后面if语句的用法

嘿,SQL 真是令人困惑。
WHERE 子句是用来过滤数据的,对吗?只需在此处决定要保留哪些行以及要删除哪些行。

但是WHERE中没有使用IF语句。
IF语句就像写条件表达式,用在SELECT或GROUP BY中,返回一个值,根据条件返回不同的值。

您想在 WHERE 中使用 IF,对吗?不支持标准 SQL。
如果你坚持使用它,那取决于你使用哪个数据库。
例如,MySQL支持IF函数,但它不是用来过滤行的,它是用来返回值的。

在 MySQL 中,IF 函数如下所示:IF(条件,值 1 ,值 2 )。
如果条件为 true,则返回值 1 ,如果条件为 false,则返回值 2 它不会直接为您过滤行。

如果想在WHERE中过滤该怎么办?使用最简单的布尔表达式。
只需使用等于、不等于、大于、小于、为零、不零即可创建逻辑表达式。

例如,如果您想过滤掉所有年龄大于或等于1 8 岁的人,只需输入age>=1 8 即可。
或者如果你想过滤column_name is not NULL,你只需写column_name IS NOT NULL。

CASE WHEN 是 SELECT 中经常出现的东西。
它返回你一个值,并根据条件返回不同的值。
WHERE中使用CASE WHEN也不是不可以,但是不常见,而且你自己写了也可能看不懂,或者它可能不遵循您想要的逻辑。
因此,一般不建议在WHERE中使用CASE WHEN。

COALESCE函数也很常用。
它返回第一个非零值。
例如,你的column_name可能为空,你希望它等于某个默认值'default_value',然后你根据这个处理后的值进行过滤。
写法为COALESCE(column_name, 'default_value') = 'desired_value'。

你看,2 02 2 年,很多数据库系统都建议在WHERE中直接使用布尔表达式进行过滤。
简单、清晰、不易出错。

所以简而言之,在标准 SQL 中,不要在 WHERE 子句中使用 IF 语句。
要使用条件逻辑,请直接使用布尔表达式。
以防万一,尽量不要在WHERE中使用。
COALESCE是个好东西,处理空值非常方便。

如果您知道如何使用 MySQL IF 函数,则可以使用它在 SELECT 中返回值,但不要指望它可以帮助您过滤 WHERE 中的行。
这是他的错,不是你的。

总之,直接在WHERE中使用布尔表达式和过滤器是最可靠的。
不要乱用不寻常的用途。
好吧,我们就到此为止吧。

mysql如何使用where条件筛选

WHERE子句是MySQL查询的灵魂,与具体记录直接相关。
例如,选择2 5 岁的用户: SELECT FROM users WHERE Age = 2 5 ; 过滤北京或上海用户:SELECT FROM users WHERE city ("北京","上海"); 电话号码以 1 3 8 开头的用户:从电话喜欢“1 3 8 _%”的用户中选择; 手机号码为空的用户:SELECT FROM 手机号码为NULL的用户; 将李四城市更新为成都: UPDATE users SET city = 'Chengdu' WHERE name = 'Li Si'; 删除所有年龄小于1 8 岁的用户:DELETE FROM users WHERE Age < 1>优化查询性能,对常用字段创建索引。