select device_id,
       gender,
       age,
       university
from user_profile
where university != '复旦大学';

不要用双引号

字符串必须使用单引号包裹。几乎所有主流数据库(MySQL、PostgreSQL、Oracle、SQL Server 等)都严格遵循这个标准,用单引号不会出现兼容性问题。

双引号在 SQL 中的默认作用是包裹标识符(比如表名、列名),而非字符串。只有少数数据库(如 MySQL)在特定配置下(sql_mode 未开启 ANSI_QUOTES)会兼容双引号包裹字符串,但这属于非标准用法,跨数据库执行时容易报错。

总结:

  • 优先使用单引号 ' 包裹字符串常量,这是 SQL 标准,兼容所有数据库,避免踩坑。
  • 双引号 " 尽量只用于标识符(比如列名 / 表名包含特殊字符时),不要用于字符串。
  • 字符串(String)就是由一串字符组成的文本。

    数值(比如 age = 20 里的 20):不需要加引号,数据库会按数字规则处理(比如加减乘除);数值类型(如年龄、分数)不需要加引号,和字符串的处理规则完全不同。

    一列就是一个字段,一个字段对应表中的一列。