可以用单引号将 SQL 语句中的所有值括起来吗?例如:
这是一个简单的表格,称为书籍:
id | title
1 | Some book name
2 | Second book name
可以这样写语句:
SELECT * FROM books WHERE id = '1'
我已经在 SQL Server 2008 和 MySQL 5 中测试了该查询,它运行良好,但我很好奇是否存在任何性能问题,因为 ID 字段是整数。
第二个问题可以这样写:
SELECT * FROM books WHERE id = N'1'
N 前缀在 SQL Server 中用于 UTF-8 字段,但我已经在 SQL Server 和 MySQL 中对其进行了测试,并且都可以正常工作。我不知道 SQLite 是否支持 N 前缀,因为我没有测试过。
我问这个的原因是因为我正在构建可以与流行的 SQL 数据库(SQL Server、MySQL、SQLite 和 MS Access)一起使用的数据库类,所以在执行选择、插入或更新数据时我不必担心关于字段数据类型。我总是可以用 N'Some value' 括起来值,但我很好奇这是否正确,是否存在任何性能问题?