📜  循环创建表和行 (1)

📅  最后修改于: 2023-12-03 15:25:37.067000             🧑  作者: Mango

循环创建表和行

在编写程序时,我们需要创建表格和填充行。如果需要重复创建重复的结构,手动编写每行可能会显得非常麻烦,这时循环就派上用场了。在本篇文章中,我们将介绍如何使用循环创建表和行。

创建表

在 SQL 中,我们可以使用 CREATE TABLE 语句来创建新的表格。语法如下:

CREATE TABLE table_name (
    column_1 datatype,
    column_2 datatype,
    column_3 datatype,
    ...
);

其中,table_name 为表名,column_x 为列名,datatype 为该列的数据类型。例如,我们要创建一个名为 students 的表,其中包含学生的姓名、年龄和学号,那么对应的语句如下:

CREATE TABLE students (
    name varchar(50),
    age int,
    id varchar(20)
);

但是,如果我们需要创建相似结构但具有不同名称的多个表格,就不能手动一个个地键入 CREATE TABLE 语句了。这时可以使用循环来解决这个问题。

循环创建表

在 Python 中,我们可以使用 for 循环和字符串格式化来动态地生成表格名和列名。示例代码如下:

for i in range(1, 4):
    table_name = "students_" + str(i)
    column_name_1 = "name"
    column_name_2 = "age"
    column_name_3 = "id"
    create_table_sql = f"CREATE TABLE {table_name} ({column_name_1} varchar(50), {column_name_2} int, {column_name_3} varchar(20));"
    print(create_table_sql)

这段代码将生成三条 SQL 语句:

CREATE TABLE students_1 (name varchar(50), age int, id varchar(20));
CREATE TABLE students_2 (name varchar(50), age int, id varchar(20));
CREATE TABLE students_3 (name varchar(50), age int, id varchar(20));

这样,我们就可以利用循环快速生成多个相似的表格了。

插入行

接下来,我们要往表格中插入数据。在 SQL 中,我们可以使用 INSERT INTO 语句来插入行。语法如下:

INSERT INTO table_name (column_1, column_2, column_3, ...)
VALUES (value_1, value_2, value_3, ...);

其中,table_name 为表名,column_x 为列名,value_x 为该列需要插入的值。例如,我们要在 students 表格中插入一条新的记录,如下所示:

INSERT INTO students (name, age, id)
VALUES ('Tom', 18, '20210001');

同样,如果我们需要在相似结构的多个表格中插入相同结构的多行数据,就需要使用循环了。

循环插入行

在 Python 中,我们可以使用 for 循环和列表嵌套来动态地生成需要插入的数据。示例代码如下:

names = ["Tom", "Jerry", "Mike"]
ages = [18, 19, 20]
ids = ["20210001", "20210002", "20210003"]
for i in range(len(names)):
    for j in range(1, 4):
        table_name = "students_" + str(j)
        name = names[i]
        age = ages[i]
        id = ids[i]
        insert_sql = f"INSERT INTO {table_name} (name, age, id) VALUES ('{name}', {age}, '{id}');"
        print(insert_sql)

这段代码将生成九条 SQL 语句,分别插入三个表格中的三行数据:

INSERT INTO students_1 (name, age, id) VALUES ('Tom', 18, '20210001');
INSERT INTO students_2 (name, age, id) VALUES ('Tom', 18, '20210001');
INSERT INTO students_3 (name, age, id) VALUES ('Tom', 18, '20210001');
INSERT INTO students_1 (name, age, id) VALUES ('Jerry', 19, '20210002');
INSERT INTO students_2 (name, age, id) VALUES ('Jerry', 19, '20210002');
INSERT INTO students_3 (name, age, id) VALUES ('Jerry', 19, '20210002');
INSERT INTO students_1 (name, age, id) VALUES ('Mike', 20, '20210003');
INSERT INTO students_2 (name, age, id) VALUES ('Mike', 20, '20210003');
INSERT INTO students_3 (name, age, id) VALUES ('Mike', 20, '20210003');

这样,我们就可以利用循环快速插入多个相似结构的数据了。

综上所述,使用循环可以快速地创建多张相似结构的表格并插入多行相似的数据,从而减少了手动编写 SQL 语句的时间和工作量。