在SQL中创建一个表

时间:2014-07-22 16:42:03

标签: php sql

我在PHP中有类似的代码:

$con=mysqli_connect("localhost","","","");
// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// Create table
$sql="CREATE TABLE Workers
(
PID INT NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(PID),
Name VARCHAR(30),
)";

// Execute query
if (mysqli_query($con,$sql)) {
    echo "Table persons created successfully";
} else {
    echo "Error creating table: " . mysqli_error($con);
}

我需要添加以下列:名称,生日,ID代码,有效/无效,联系信息(电子邮件,电话,地址),自我介绍(三种语言),工作经验(三种语言),教育(三种语言),何时以及谁创建,何时以及谁修改。

如何在一列中添加三个不同的东西?

3 个答案:

答案 0 :(得分:0)

我假设当你说你不知道如何在一列中添加三个不同的东西时,你正在提到的列是自我介绍的,而其他列则是三种语言。您不应该有一个列以三种语言包含相同的信息。如果需要所有三种语言,我将创建三个列,SelfIntroductionEnglish,SelfIntroductionRussian等...如果任何记录只需要其中一种语言,我建议单独的SelfIntroduction talbe。它将具有主表的外键,存储列的语言的标志列,以及以指定语言保存自引导的第三列。然后你可以很容易地检查一个工人是否有英文介绍,如果有的话就抓住它。

答案 1 :(得分:0)

首先,CREATE TABLE查询中的最后一列不应该有逗号后面的逗号。只有在分隔列名时才这样做。

另外,关于向一列添加内容,这是不现实的。想到sql的好方法就像电子表格的高级版本。在任何给定的单元格中,您不应该拥有多条信息。您需要三列,或者某种方式将信息从一列翻译成另一种语言。

答案 2 :(得分:0)

是这样吗?

    // Create table
$sql = "CREATE TABLE workers
(
    PID INT NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY(PID),
    name VARCHAR(30) NOT NULL,
        birth_date DATE NOT NULL,
    id_code INT NOT NULL,
    activity INT NULL
)";

$sql2 = "CREATE TABLE contacts (
    FOREIGN KEY(PID),
    PRIMARY KEY(PID),
        email VARCHAR(30) NULL,
    phone INT NULL,
    address VARCHAR(30) NOT NULL
)";

$sql3 = "CREATE TABLE personality (
    FOREIGN KEY(lang),
    PRIMARY KEY(PID,lang),
    lang VARCHAR(3) NOT NULL,
        selfintroduction VARCHAR(255) NOT NULL,
    workexperience VARCHAR(255) NOT NULL,
    education VARCHAR(255) NOT NULL
)"; 

我不知道如何添加和修改这些内容。