MySQL选择数据库
概述
在MySQL中选择(切换到)数据库是在对该数据库执行操作之前的必要步骤。本章介绍如何选择数据库和处理数据库上下文。
数据库上下文
数据库上下文决定了SQL语句的默认数据库。当您选择一个数据库时,所有没有显式数据库限定的后续操作都将使用该数据库。
选择数据库方法
USE语句
sql
-- Select (use) a database
-- Example
-- Verify current database命令行
bash
# Connect directly to specific database
# Switch database after connection
# Connect and execute query编程语言
Python / Python
python
PHP / PHP
php
当前数据库信息
获取当前数据库
sql
-- Get current database name
-- Equivalent获取数据库详情
sql
-- Get current database character set
-- Get database size
-- List tables in current database
-- List tables with additional info多数据库操作
限定名称
sql
-- Use fully qualified table names
-- Join tables from different databases
-- Use specific database tables in queries跨数据库查询
sql
-- Query across databases
-- Aggregate across databases临时表范围
sql
-- Create temporary table in current database
-- Temporary table is visible only in current session
-- It uses the current database context
-- Switch database (temporary table still accessible)过程中的数据库上下文
存储过程
sql
-- Create procedure in specific database
-- Call procedure (uses database where it was created)预处理语句
sql
-- Prepare statement with dynamic database数据库连接模式
单数据库
python
# Connect to specific database多数据库
python
# Connect to multiple databases
# Query both databases动态数据库选择
python
# Usage会话管理
会话变量
sql
-- Set database for session
-- Session persists until disconnected or changed
-- All queries use 'myapp' database
-- Switch database in same session
-- Current database changes for rest of session连接池
python
# Each connection from pool has default database数据库上下文和安全
用户权限
sql
-- User can access specific databases
-- User cannot access other databases预处理语句
python
# Safe database selection with prepared statements最佳实践
显式数据库限定
sql
-- Good: Use explicit database names
-- Avoid: Rely on current database context连接管理
python
# Good: Use context manager or try-finally
# Use connection错误处理
python
# Handle error故障排除
常见错误
sql
-- No database selected
-- Error: No database selected
-- Solution: USE database_name;
-- Unknown database
-- Error: Unknown database 'database_name'
-- Solution: Check database name with SHOW DATABASES
-- Access denied
-- Error: Access denied for user to database
-- Solution: Check user privileges调试命令
sql
-- Check current database
-- List available databases
-- Check user privileges
-- Check table existence小结
MySQL中的数据库选择涉及:
USE语句:选择数据库的主要方法 连接参数:连接时指定数据库 上下文感知:当前数据库影响查询 跨数据库:对多个数据库使用限定名称 安全:适当的用户访问权限
上一个:删除数据库
下一个:数据类型