Python PostgreSQL 创建表


你可以使用 CREATE TABLE 语句在 PostgreSQL 的数据库中创建新表。执行此操作时,你需要指定表名、列名及其数据类型。

语法

以下是 PostgreSQL 中 CREATE TABLE 语句的语法。

CREATE TABLE table_name(
    column1 datatype,
    column2 datatype,
    column3 datatype,
    .....
    columnN datatype,
);

例子

以下示例在 PostgreSQL 中创建一个名为 CRICKETERS 的表。

postgres=# CREATE TABLE CRICKETERS (
    First_Name VARCHAR(255),
    Last_Name VARCHAR(255),
    Age INT,
    Place_Of_Birth VARCHAR(255),
    Country VARCHAR(255));
CREATE TABLE
postgres=#

你可以使用 \dt 命令获取 PostgreSQL 中数据库中的表列表。创建表后,如果可以验证表的列表,可以观察到其中新创建的表如下:

postgres=# \dt
            List of relations
Schema  | Name       | Type  | Owner
--------+------------+-------+----------
public  | cricketers | table | postgres
(1 row)
postgres=#

同理,使用\d可以得到创建表的描述,如下图:

postgres=# \d cricketers
                                Table "public.cricketers"
Column          | Type                   | Collation | Nullable | Default
----------------+------------------------+-----------+----------+---------
first_name      | character varying(255) |           |          |
last_name       | character varying(255) |           |          |
age             | integer                |           |          |
place_of_birth  | character varying(255) |           |          |
country         | character varying(255) |           |          |

postgres=#

使用 Python 创建表


要使用 python 创建表,你需要使用 Cursor 的 execute() 方法执行 CREATE TABLE 语句 pyscopg2 .

例子

以下 Python 示例创建一个名为employee 的表。

import psycopg2

#Establishing the connection

conn = psycopg2.connect(
    database="mydb", user='postgres', password='password', host='127.0.0.1', port= '5432'
)

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

#Creating table as per requirement
sql ='''CREATE TABLE EMPLOYEE(
    FIRST_NAME CHAR(20) NOT NULL,
    LAST_NAME CHAR(20),
    AGE INT,
    SEX CHAR(1),
    INCOME FLOAT)'''
cursor.execute(sql)
print("Table created successfully........")

#Closing the connection
conn.close()
Table created successfully........