SQL 用于插入多个列值的数据查询

SQL datable query to insert multiple column values

如何在SQL的table的单列中添加多个值?我的 table 看起来像这样:

Create table emp
(
     id number(5),
     name varchar(25),
     phone varchar(25)
); 

现在我想在 phone 列中添加值和多个 phone。怎么做?我尝试使用

insert into emp values (id, name, phone) 
values (1, lee, (23455, 67543)); 

但这不起作用

改为使用两个 insert 语句

insert into emp values (id, name,phone) values (1,'lee','23455'); 
insert into emp values (id, name,phone) values (1,'lee','67543'); 

或者如果你想将这两个值存储在一行中

insert into emp values (id, name,phone) values (1,'lee','23455,67543'); 

这里table不是normalised。您要么需要将 Phone 号码信息存储在单独的 table 中,要么在同一 table.

中使用两个不同的列

尝试改变你的 table 设计。

电磁脉冲table

CREATE TABLE emp
  (
     emp_id INT IDENTITY(1, 1) PRIMARY KEY,
     name   VARCHAR(25)
  );

Phone人数Table

CREATE TABLE PhoneNumber
  (
     phoneno_id INT IDENTITY(1, 1),
     emp_id     INT,
     Phone_Number int,
     Cell_Number Int,
     FOREIGN KEY (emp_id) REFERENCES emp(emp_id)
  ) 

注意: Auto increment 语法可能因您使用的数据库而异。

正确并且在关系设置中唯一真正精心设计的方法是使用 separate table 对于您的手机(这是 SQL 服务器特定的语法 - 它可能会略有不同,具体取决于您使用的具体数据库系统):

Create table emp
(
     id INT PRIMARY KEY,
     name varchar(25)
)

create table phone
(
     phoneId INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
     empid INT NOT NULL,
     phone varchar(25) NOT NULL,

     CONSTRAINT FK_Phone_Emp
       FOREIGN KEY(empid) REFERENCES dbo.emp(id)
); 

然后将员工数据插入 emp :

insert into emp(id, name) 
values (1, lee);

手机进入phone:

insert into phone(empid, phone) values(1, 23455);
insert into phone(empid, phone) values(1, 67543);

通过此设置,您可以对数据库进行适当的规范化,并且可以为每位员工存储 任意数量的 电话。