Python MySQL - 建立表



CREATE TABLE 語句用於在 MySQL 資料庫中建立表。在這裡,您需要指定表名以及每個列的定義(名稱和資料型別)。

語法

以下是建立 MySQL 表的語法:

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

示例

以下查詢在 MySQL 中建立一個名為 EMPLOYEE 的表,其中包含五個列:FIRST_NAME、LAST_NAME、AGE、SEX 和 INCOME。

mysql> CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT,
   SEX CHAR(1),
   INCOME FLOAT
);
Query OK, 0 rows affected (0.42 sec)

DESC 語句提供指定表的描述。您可以使用它來驗證表是否已建立,如下所示:

mysql> Desc Employee;
+------------+----------+------+-----+---------+-------+
| Field      | Type     | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| FIRST_NAME | char(20) | NO   |     | NULL    |       |
| LAST_NAME  | char(20) | YES  |     | NULL    |       |
| AGE        | int(11)  | YES  |     | NULL    |       |
| SEX        | char(1)  | YES  |     | NULL    |       |
| INCOME     | float    | YES  |     | NULL    |       |
+------------+----------+------+-----+---------+-------+
5 rows in set (0.07 sec)

使用 python 在 MySQL 中建立表

名為 **execute()** 的方法(在遊標物件上呼叫)接受兩個變數:

  • 表示要執行的查詢的字串值。

  • 可選的 args 引數,可以是元組、列表或字典,表示查詢的引數(佔位符的值)。

它返回一個整數值,表示查詢影響的行數。

建立資料庫連線後,您可以透過將 CREATE TABLE 查詢傳遞給 **execute()** 方法來建立表。

簡而言之,要使用 python 建立表:

  • 匯入 **mysql.connector** 包。

  • 使用 **mysql.connector.connect()** 方法建立一個連線物件,將使用者名稱、密碼、主機(可選,預設為 localhost)和資料庫(可選)作為引數傳遞給它。

  • 透過在上面建立的連線物件上呼叫 **cursor()** 方法來建立一個遊標物件。

  • 然後,透過將其作為引數傳遞給 **execute()** 方法來執行 CREATE TABLE 語句。

示例

以下示例在 mydb 資料庫中建立一個名為 **Employee** 的表。

import mysql.connector

#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)

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

#Dropping 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)

#Closing the connection
conn.close()
廣告