MySQL(21)如何查询表中的所有数据?

249 阅读3分钟

查询表中的所有数据是数据库操作中最基本的任务之一。我们通常使用 SELECT 语句来实现这一操作。以下是详细的说明和代码示例。

基本语法

SELECT * FROM table_name;

这里的 * 表示查询所有列,table_name 是要查询的表名。

示例表结构

假设我们有一个公司数据库,其中有两个表:employeesdepartments

-- 创建数据库
CREATE DATABASE company;

-- 选择数据库
USE company;

-- 创建表 departments
CREATE TABLE departments (
    dept_id INT AUTO_INCREMENT PRIMARY KEY,
    dept_name VARCHAR(100) NOT NULL
);

-- 创建表 employees
CREATE TABLE employees (
    emp_id INT AUTO_INCREMENT PRIMARY KEY,
    emp_name VARCHAR(100) NOT NULL,
    emp_position VARCHAR(100),
    emp_salary DECIMAL(10, 2),
    hire_date DATE,
    dept_id INT,
    FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);

-- 插入示例数据到 departments 表
INSERT INTO departments (dept_name)
VALUES 
('HR'),
('Engineering');

-- 插入示例数据到 employees 表
INSERT INTO employees (emp_name, emp_position, emp_salary, hire_date, dept_id)
VALUES 
('John Doe', 'Manager', 75000.00, '2023-10-01', 1),
('Jane Smith', 'Developer', 60000.00, '2023-09-01', 2),
('Alice Johnson', 'Analyst', 50000.00, '2023-08-01', 1);

查询所有数据

查询 employees 表中的所有数据

SELECT * FROM employees;

结果:

emp_id | emp_name      | emp_position | emp_salary | hire_date  | dept_id
-------|---------------|--------------|------------|------------|--------
1      | John Doe      | Manager      | 75000.00   | 2023-10-01 | 1
2      | Jane Smith    | Developer    | 60000.00   | 2023-09-01 | 2
3      | Alice Johnson | Analyst      | 50000.00   | 2023-08-01 | 1

查询 departments 表中的所有数据

SELECT * FROM departments;

结果:

dept_id | dept_name
--------|-----------
1       | HR
2       | Engineering

查询特定列的数据

有时,我们只需要特定的列而不是所有列。我们可以在 SELECT 语句中指定所需的列名。

查询 employees 表中的特定列

例如,只查询 emp_nameemp_position 列:

SELECT emp_name, emp_position FROM employees;

结果:

emp_name      | emp_position
--------------|--------------
John Doe      | Manager
Jane Smith    | Developer
Alice Johnson | Analyst

使用条件查询

我们还可以使用 WHERE 子句来查询符合特定条件的数据。

查询 employees 表中来自 HR 部门的所有员工

SELECT * FROM employees WHERE dept_id = 1;

结果:

emp_id | emp_name      | emp_position | emp_salary | hire_date  | dept_id
-------|---------------|--------------|------------|------------|--------
1      | John Doe      | Manager      | 75000.00   | 2023-10-01 | 1
3      | Alice Johnson | Analyst      | 50000.00   | 2023-08-01 | 1

排序数据

使用 ORDER BY 子句可以对查询结果进行排序。

emp_salary 降序排序查询结果

SELECT * FROM employees ORDER BY emp_salary DESC;

结果:

emp_id | emp_name      | emp_position | emp_salary | hire_date  | dept_id
-------|---------------|--------------|------------|------------|--------
1      | John Doe      | Manager      | 75000.00   | 2023-10-01 | 1
2      | Jane Smith    | Developer    | 60000.00   | 2023-09-01 | 2
3      | Alice Johnson | Analyst      | 50000.00   | 2023-08-01 | 1

使用聚合函数

我们还可以使用聚合函数(如 COUNT, AVG, SUM 等)来对数据进行统计。

查询 employees 表中的员工总数

SELECT COUNT(*) FROM employees;

结果:

COUNT(*)
---------
3

小结

通过上述代码和示例,展示了如何在 SQL 中使用 SELECT 语句查询表中的所有数据。我们还可以通过条件查询、选择特定列、排序和使用聚合函数来进行更复杂的数据查询操作。这些基本的 SQL 操作是数据管理和分析中最常用的工具。