数据库基础(lab2:单表查询 一)

lab2:单表查询(一)

一、基本查询 (SELECT ... FROM ...)

  1. 查询指定字段

    • 作用: 从数据表中检索一个或多个特定列的数据。
    • 语法: SELECT 字段名1, 字段名2, ... FROM 表名;
    • 示例: 查询 tb_emp 表中的 NameSalary 字段。
      SELECT Name, Salary FROM tb_emp;
      
  2. 查询所有字段

    • 作用: 使用通配符 * 检索表中的所有列。
    • 语法: SELECT * FROM 表名;
    • 示例: 查询 tb_emp 表的所有内容。
      SELECT * FROM tb_emp;
      
    • 注意: 虽然 * 很方便,但在生产环境中,明确指定所需列的性能更好,可读性也更强。

二、条件查询 (WHERE 子句)

WHERE 子句用于过滤记录,只提取符合指定条件的记录。

  1. 范围查询 (IN, NOT IN)

    • 作用: IN 用于指定多个离散的值,筛选出字段值与列表中任何一个值匹配的记录。NOT IN 则相反。
    • 语法:
      SELECT 字段名 FROM 表名 WHERE 字段名 IN (值1, 值2, ...);
      SELECT 字段名 FROM 表名 WHERE 字段名 NOT IN (值1, 值2, ...);
      
    • 示例: 查询 Id 不是 1 的员工的姓名和薪水。
      SELECT Name, Salary FROM tb_emp WHERE Id NOT IN (1);
      
  2. 区间查询 (BETWEEN ... AND ...)

    • 作用: BETWEEN ... AND ... 用于筛选出字段值在指定范围内(包含端点值)的记录。NOT BETWEEN ... AND ... 则相反。
    • 语法:
      SELECT 字段名 FROM 表名 WHERE 字段名 BETWEEN 值1 AND 值2;
      SELECT 字段名 FROM 表名 WHERE 字段名 NOT BETWEEN 值1 AND 值2;
      
    • 示例: 查询薪水在 30005000 之间的员工姓名和薪水。
      SELECT Name, Salary FROM tb_emp WHERE Salary BETWEEN 3000 AND 5000;
      

三、我遇到的问题与解决方案

1. 语法错误:FROM 误写为 FORM

  • 错误代码:
    SELECT Name,Salary
    FORM tb_emp;
    
  • 原因: 这是一个常见的拼写错误。在 SELECT 语句中,指定数据来源表的关键字是 FROM
  • 正确写法:
    SELECT Name, Salary
    FROM tb_emp;
    
  • 提示: 另外,虽然在某些情况下可以省略,但标准的SQL规范要求每个语句以分号 ; 结尾。
posted @ 2025-11-17 17:08  yesno233233  阅读(14)  评论(0)    收藏  举报