Python SQL:从现有列插入并更新新列

Python SQL:从现有列插入并更新新列,python,mysql,sql,postgresql,Python,Mysql,Sql,Postgresql,SQL:从现有列插入并更新新列 我想在PostGRESQL数据中插入一个新列,从现有列进行解析 我有一根绳子http://google.com/sadfasdfsd&AA=mytag&SS=sdfsdf 正在列URL中更新的。那么,我如何在这个数据库中插入一个名为AAtag的新列呢。我将使用Python解析字符串。请帮助我编写以下任务的查询: 问题1。在此表中插入新列AAtag ALTER TABLE table_name ADD AAtag varchar 对吗?AAtag是否需要引用 问题

SQL:从现有列插入并更新新列

我想在PostGRESQL数据中插入一个新列,从现有列进行解析

我有一根绳子http://google.com/sadfasdfsd&AA=mytag&SS=sdfsdf 正在列URL中更新的。那么,我如何在这个数据库中插入一个名为AAtag的新列呢。我将使用Python解析字符串。请帮助我编写以下任务的查询:

问题1。在此表中插入新列AAtag

ALTER TABLE table_name
ADD AAtag varchar
对吗?AAtag是否需要引用

问题2。在我从列URL运行解析脚本之后,假设我有Pyton列表中的标记列表,我想填写列AAtag


问题1:否,不需要引用AATag。然而,如果它没有被引用,它将被迫降为小写。此外,引号对名称使用双引号,而不是对文字使用单引号。因此,如果你不引用这句话,你会看到:

create table table_name (URL text);
alter table table_name add AATag varchar;

nsp=# \d table_name
       Table "public.table_name"
 Column |       Type        | Modifiers
--------+-------------------+-----------
 url    | text              |
 aatag  | character varying |
问题2:

nsp=# update table_name set AATag = '{0!f}' where URL = '{0!s}';
UPDATE 0 (mine doesnt have any data in it)
您的示例也将基于相同的原因工作,列是不带引号的,因此将使用小写。如果你真的想要所有东西都混合在一起,你会:

create table table_name ("URL" text);
alter table table_name add "AATag" varchar;

nsp=# \d table_name
       Table "public.table_name"
 Column |       Type        | Modifiers
--------+-------------------+-----------
 URL    | text              |
 AATag  | character varying |

nsp=# update table_name set "AATag" = '{0!f}' where "URL" = '{0!s}';
UPDATE 0
import psycopg2
import psycopg2.extras
pg_conn = psycopg2.connect("dbname=dbname host=localhost user=postgres")
pg_cur = pg_conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
pg_cur.execute('whatever')
pg_conn.commit()
我想我误解了这个问题。您是在问如何用sql编写查询以更改数据库的结构,还是要用python编写查询?后者是一个不同的主题。基本上,你会:

create table table_name ("URL" text);
alter table table_name add "AATag" varchar;

nsp=# \d table_name
       Table "public.table_name"
 Column |       Type        | Modifiers
--------+-------------------+-----------
 URL    | text              |
 AATag  | character varying |

nsp=# update table_name set "AATag" = '{0!f}' where "URL" = '{0!s}';
UPDATE 0
import psycopg2
import psycopg2.extras
pg_conn = psycopg2.connect("dbname=dbname host=localhost user=postgres")
pg_cur = pg_conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
pg_cur.execute('whatever')
pg_conn.commit()
无论您想要执行的语句是什么。您可以准备语句、提供参数等。。您需要查看psycopg2了解详细信息。因此,要添加python中的列:

pg_cur.execute('alter table table_name add "AATag" varchar')
当然,您需要安装软件包。在unix上,这将是:

pip install psycopg2
但是,其他操作系统各不相同