sql-select-database
SQL:使用 USE 语句选择数据库
Section titled “SQL:使用 USE 语句选择数据库”选择数据库的目的
Section titled “选择数据库的目的”单个数据库服务器(关系型数据库管理系统,RDBMS)可以管理多个独立的数据库。每个数据库都是一个自包含的表、视图和其他对象的集合。在执行创建表或查询数据等操作之前,你必须首先告诉服务器你打算使用哪个数据库。这被称为为你的会话设置“当前数据库”。
USE 语句
Section titled “USE 语句”USE 语句是一个简单的命令,用于选择一个数据库作为你的交互式会话的当前数据库。一旦你执行 USE,你运行的所有后续 SQL 命令(如 SELECT、INSERT、CREATE TABLE)都将针对所选数据库执行,直到你选择另一个数据库或结束会话。
USE database_name;这里,database_name 必须是服务器上现有数据库的名称。
注意:USE 语句是 SQL 标准的一部分,但主要用于命令行客户端和 GUI 工具(如 DBeaver、MySQL Workbench 或 SQL Server Management Studio)。其实现可能有所不同。例如,某些系统可能没有直接的 USE 等效项,需要使用其他方法来切换上下文。
应用程序中数据库选择的工作原理
Section titled “应用程序中数据库选择的工作原理”在应用程序代码中(例如,使用 Python、Java、Node.js 或 Go),你通常不执行 USE 语句。相反,目标数据库是直接在连接字符串中指定的,当你的应用程序建立与数据库服务器的连接时。这确保了该连接的每个查询从一开始就正确地路由到预期的数据库。
一个典型的连接字符串可能看起来像这样:
postgresql://username:password@hostname:port/database_name示例:交互式会话
Section titled “示例:交互式会话”让我们通过一个 SQL 命令行客户端中的典型工作流程。
- 首先,让我们创建一个新的数据库来工作。
create database company_db;- 现在,选择这个新数据库,使其成为活动的上下文。
use company_db;Database changed- 选择了
company_db后,我们现在可以在其中创建表。
create table employees ( id INT primary key, name VARCHAR(100) not null);- 我们可以插入数据并查询它,所有操作都将正确地针对
company_db中的employees表。
insert into employees (id, name) values (1, 'Alice');select * from employees;| id | name |
|---|---|
| 1 | Alice |
尝试使用不存在的数据库
Section titled “尝试使用不存在的数据库”如果你尝试 USE 服务器上不存在的数据库,SQL 将返回一个错误。
use non_existent_db;输出(来自 MySQL 的示例)
Section titled “输出(来自 MySQL 的示例)”ERROR 1049 (42000): Unknown database 'non_existent_db'