SQL中[]和()的区别是什么?

SQL中[]和()的区别是什么?,sql,field,brackets,Sql,Field,Brackets,我见过这两个词都用过,但我似乎不明白什么时候用它们 在我看来,似乎您在()中输入了引用的表名,在[]中输入了字段名 有人能解释一下吗?()用于将参数传递给函数和存储过程等。[]用于封装字段名(等),其中包括标点符号(空格和特殊字符,见上述注释)。[]有时用于命名要显示的字段 SELECT FFgg AS [Some field discription] FROM table1; 希望这能有所帮助。在Microsoft产品中,方括号用于指定其中包含的是标识符(标准带引号的标识符是双引号的”,Mi

我见过这两个词都用过,但我似乎不明白什么时候用它们

在我看来,似乎您在()中输入了引用的表名,在[]中输入了字段名

有人能解释一下吗?

()用于将参数传递给函数和存储过程等。[]用于封装字段名(等),其中包括标点符号(空格和特殊字符,见上述注释)。[]有时用于命名要显示的字段

SELECT FFgg AS [Some field discription] FROM table1;

希望这能有所帮助。

在Microsoft产品中,方括号用于指定其中包含的是标识符(标准带引号的标识符是双引号的
,Microsoft SQL Server也支持该标识符)。当数据库名、用户名、表名、字段名、视图名、过程名(et.c.)恰好与关键字相同,或者包含可能破坏语法的字符时,可以使用此选项。这通常用于生成的代码中,以防止代码中无法使用的标识符。生成的查询可能如下所示:

select [Id], [Name], [Password hint]
from [dbo].[MyDataBase].[User]
如果不使用括号,字段名
密码提示
将破坏语法,表名
用户
可能与关键字
用户
冲突

括号用于对项目进行分组,例如作为某些子句语法的一部分,例如insert:

insert into someTable (field1, field2) values ('value1', 'value2')
它们也可以在表达式中使用:

select Price * (Quantity + FreeItems) from Articles
它们还可以用于查询周围,以进行子查询:

select o.Name
from (select Name, Age from Persons where City = 'Oslo') as o
where o.Age > 18

您应该在某个地方阅读有关SQL的教程…
[]
是Microsoft引用包含特殊字符的名称的非标准方式。你应该避免使用它们(因为这意味着你在名字中使用了特殊字符,这不是一件好事)@a_horse_with_no_name:也许你应该避免在生产代码中使用它们。它们在测试中非常有用,例如,返回对读者有意义的列名,但不会批准企业的数据字典:)@onedaywhen:别名可以,但真实列名不行。我仍然更喜欢使用
的标准ANSI引用样式。