我希望我的表的第一列作为卷号,第二列作为名称。每当我运行 python 程序时,我想在表中添加一列日期。在这个新列中,我想填充从 user.list 获得的列表将包含值“P”、“A”、“P”、“P”等。如何处理?
我尝试首先通过 alter 命令添加一列,然后插入数据,但没有任何效果。
choice1=raw_input("\nEnter 'y' or 'n' to add new column:\n")
if choice1 is 'y':
cursor.execute(" ALTER TABLE table1 ADD datecolumn varchar(20)")
db.commit()
for i in xrange(0,10):
if students[i] is 'A':
cursor.execute("insert into table1(datetime) values ('A')")
db.commit()
elif students[i] is 'P':
cursor.execute("insert into table1(datetime) values ('P')")
db.commit()
不要在运行时更改数据库设计,而是以更改数据而不是结构的方式进行设计。
你可以有两张桌子。一个叫Student
有柱子rollno
and name
,也许PKrollno
如果它是独一无二的。
然后有另一个表称为Thing
(任何合适的名称,但我不知道你的数据是关于什么的)三列when
(约会时间),value
(任何合适的名称)(CHAR(1))和student
(与相同类型rollno
).
定义两者的 PKwhen
and value
确保每个学生每个日期只有一个值。定义 FK 从Thing.student
to Student.rollno
。现在,您的数据库负责保持数据(大部分)一致。
根据您对不同列的选择、插入和更新的需要定义索引。
然后为了查询连接两个表以获得所需的结果,例如
select s.name, t.value
from Student s
left join Thing t on t.student = s.rollno
where t.when == 'whenever'
(我不确定 mysql 方言,所以可能需要更多引号。请随意编辑。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)