Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这些SQL语法之间有什么区别?_Sql_Foreign Keys_Create Table - Fatal编程技术网

这些SQL语法之间有什么区别?

这些SQL语法之间有什么区别?,sql,foreign-keys,create-table,Sql,Foreign Keys,Create Table,我在找外键的信息。。。。再一次在webschools.com上,他们碰巧注意到了相同事情的不同例子。对于外键示例,他们有 CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, PRIMARY KEY (O_Id), FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) ) 现在 有什么区别 我如何知道我的数据库应该使用哪一个?我觉得这将有助于解决我对SQL的许多困惑 效

我在找外键的信息。。。。再一次在webschools.com上,他们碰巧注意到了相同事情的不同例子。对于外键示例,他们有

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
现在

有什么区别


我如何知道我的数据库应该使用哪一个?我觉得这将有助于解决我对SQL的许多困惑

效果没有差别:它们实现了完全相同的目标

我更喜欢内联版本,因为它使fk定义尽可能接近列定义

还有第三种方式——一种单独的alter table语句,我认为这是官方的方式:

alter table orders
add contraint fk_PerOrders 
foreign key p_id references persons(p_id);

您可能会发现一些数据库不支持一个或另一个版本。

实际上没有区别:它们实现了完全相同的功能

我更喜欢内联版本,因为它使fk定义尽可能接近列定义

还有第三种方式——一种单独的alter table语句,我认为这是官方的方式:

alter table orders
add contraint fk_PerOrders 
foreign key p_id references persons(p_id);

您可能会发现一些数据库不支持一个或另一个版本。

它们都在做相同的事情。使用你觉得容易理解的方法。

他们都在做同样的事情。使用你认为容易理解的方法。

所有方法都有三种:

首先,将P_Id定义为int,然后定义外键约束。 在第二行中,p_Id int外键引用persons p_Id。p_Id是在同一行中排便和外键约束排便

第三,外键约束名称也被命名为fk_PerOrders。当以后要删除约束时,这可能会很有用。e、 g

更改表格顺序 删除外键fk_顺序


为约束命名总是一个好的做法

三种方法都是一样的:

首先,将P_Id定义为int,然后定义外键约束。 在第二行中,p_Id int外键引用persons p_Id。p_Id是在同一行中排便和外键约束排便

第三,外键约束名称也被命名为fk_PerOrders。当以后要删除约束时,这可能会很有用。e、 g

更改表格顺序 删除外键fk_顺序


为约束命名总是一个好的做法

首先你需要知道你要做什么?我的意思是你需要什么属性。可能有很多例子,但所有这些都只是为了测试,它们有不同的目的。首先,你需要知道你要做什么?我的意思是你需要什么属性。可能会有很多例子,但所有这些都只是为了测试,它们有不同的目的可能是你在谈论这个他们写得很清楚。可能是你在谈论这个他们写得很清楚。谢谢!但是,我仍然认为它们做同样的事情,但是这些不同的方法叫什么?它们为什么存在?我只是想知道,因为我还不太懂SQL,在看不同的教程时,我只看到SQL语法。。。直到现在我才意识到有三种不同的。。哈哈。我需要弄清楚我用的是哪一个。谢谢!但是,我仍然认为它们做同样的事情,但是这些不同的方法叫什么?它们为什么存在?我只是想知道,因为我还不太懂SQL,在看不同的教程时,我只看到SQL语法。。。直到现在我才意识到有三种不同的。。哈哈,我需要弄清楚哪一个能和我用的东西配合使用。
alter table orders
add contraint fk_PerOrders 
foreign key p_id references persons(p_id);