SQL语句中USE

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句中USE相关的知识,希望对你有一定的参考价值。

USE pubs
SELECT title_id FROM sales WHERE title_id IN
(
SELECT title_id
FROM titles
WHERE type = 'business '
)
DELETE sales
WHERE title_id IN
(
SELECT title_id
FROM titles
WHERE type = 'business '
)
请大家帮帮忙注释一下每句语句意思,这是什么结构的查询呢

USE pubs----------选择 (名字:pubs) 的数据库
SELECT title_id FROM sales WHERE title_id IN-----查询字段title_id符合号内限定条件的表sales的 title_id 列
(
SELECT title_id
FROM titles
WHERE type = 'business '------------查询表titles中 type字段值为business的title_id字段。

)------也就是要查询的内容跟类型是商务的编号一样
DELETE sales
WHERE title_id IN
(
SELECT title_id
FROM titles
WHERE type = 'business '-----------括号内为:查询类型是商务的id号
)-------------删除sales表中 类型是商务的
参考技术A 总共3个语句:
USE pubs -- 选择数据库pubs
---语句2开始
--- 从 sales 表查询title_id,且title_id的值包含在括号中的子查询
SELECT title_id FROM sales WHERE title_id IN
(
SELECT title_id
FROM titles
WHERE type = 'business '
--- 括号子查询注解:从titles表中查询title_id,满足条件type字段='business'
)
---语句2结束

--- 以下是语句3
--- 删除sales表中满足条件的记录,即title_id包含于子查询中表titles中type为'business‘的记录
DELETE sales
WHERE title_id IN
(
SELECT title_id
FROM titles
WHERE type = 'business '
)

在 SQL 语句中使用 'If Exists' 两次

【中文标题】在 SQL 语句中使用 \'If Exists\' 两次【英文标题】:Use 'If Exists' twice inside SQL Statement在 SQL 语句中使用 'If Exists' 两次 【发布时间】:2018-06-21 17:09:53 【问题描述】:

我正在尝试创建一个不存在的用户。我听起来很容易,但我需要控制是否存在其他东西。所以我使用了两次'IF EXISTS'。这是我的代码:

IF NOT EXISTS (SELECT userID 
               FROM UserTable 
               WHERE usernameID = (IF NOT EXISTS(SELECT usernameID 
                                                 FROM UsernameTable 
                                                 WHERE name = 'Martijn')
                                   BEGIN
                                       INSERT INTO  UsernameTable(name) 
                                       VALUES ('Martijn');
                                   END

                                   SELECT usernameID 
                                   FROM UsernameTable 
                                   WHERE name = 'Martijn';)
                   AND country = 'Netherlands')
BEGIN
    INSERT INTO  UserTable(usernameID, country) 
    VALUES (1, 'Netherlands');
END

我该如何解决这个问题?因为 MySQL 不喜欢 IF EXISTS 我正在检查我的 usernameID。我需要为此办理手续吗?

【问题讨论】:

您需要两个命令 - 一个用于用户,一个用于用户/国家组合。 有没有办法把所有东西都放在一个 SQL 语句中? 创建一个你所拥有的简单架构。您正在使用哪个版本的 MySQL?您也许可以使用 upsert-ish 语法来完成您所需要的。 我正在使用 Microsoft SQL Server Management Studio 2017。最新和最新版本。 您在帖子中标记了 MySQL,但您说您使用的是 Microsoft SQL Server 客户端。您使用的是 MySQL 还是 Microsoft SQL Server? 【参考方案1】:

我搜索了一些解决方案,但最好的是使用PROCEDURE。 您可以在PROCEDURE 中创建多个IF EXISTS。 创建新用户后,我还能够保存我的 ID。

【讨论】:

【参考方案2】:

在 SQL Server 中,您应该可以这样做:

IF NOT EXISTS (SELECT userID FROM UserTable WHERE name = 'Martijn')
BEGIN
    INSERT INTO  UsernameTable(name, country)
        VALUES ('Martijn', 'Netherlands');
END;

这是尝试理解您的 SQL 代码。如果不存在“Martijn”,则将“Martijn”插入表中。

【讨论】:

以上是关于SQL语句中USE的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中“与‘

如何查找MySQL中查询慢的SQL语句

如何查找MySQL中查询慢的SQL语句

如何查找MySQL中查询慢的SQL语句

如何在SQL语句中使用FUNCTION

java中sql语句为啥不能出现 * ?