相同的属性,SQLite中一个数据库中的不同表

时间:2014-10-08 14:15:35

标签: sqlite attributes

我是SQLite的新手,我在使用上述程序创建数据库模式时有这个任务。

我只想询问是否允许在单个数据库中的不同表中提供相同的属性。让我在一个数据库中给出两个表的SQLite语句。

    BEGIN TRANSACTION;

/* Create a table called Employee */
CREATE TABLE Employee(Name text, Phone_number varchar);

    /* Create a table called Company */
CREATE TABLE Company(Name text, Country text);

我指的是在两个表中出现两次的属性Name。它会影响或扭曲数据库中的一些SQL查询执行吗?

1 个答案:

答案 0 :(得分:0)

如果您已经尝试过(在command-line shellSQLFiddle上),您会发现它是允许的。

但是,它可能会影响您的查询。 当您连接这两个表时,您必须明确指定所需的表列:

CREATE TABLE Employee(ID, CompanyID, Name, Phone_number);
CREATE TABLE Company(ID, Name, Country);

SELECT Company.Name,
       Employee.Name,
       Phone_number
FROM Company
JOIN Employee ON Company.ID = Employee.CompanyID;

另一方面,如果您有外键关系,则在两个表中使用相同的名称可以简化连接条件:

CREATE TABLE Employee(EmployeeID, CompanyID, Name, Phone_number);
CREATE TABLE Company(CompanyID, Name, Country);

SELECT Company.Name,
       Employee.Name,
       Phone_number
FROM Company
JOIN Employee USING (CompanyID);