一、在数据库中创建表
MySQL中table实在已有数据库的基础上创建的,因此在创建表之前要链接相应要操作的数据库,若数据库不存在,则需要先创建数据库。下面是利用SQL执行创建table的操作
代码如下:
import pymysql
conn = pymysql.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
cursor = conn.cursor()
create_table_sql = """
CREATE TABLE IF NOT EXISTS employees (
employee_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
hire_date DATE
)
"""
cursor.execute(create_table_sql)
conn.commit()
cursor.close()
conn.close()
二、Table的变量类型
##1. 数据类型
1.INT:整数类型,用于存储整数值。可以指定宽度,例如 INT(11),表示整数的显示宽度。
2.VARCHAR:可变长度字符串,用于存储字符串。需要指定最大长度,例如 VARCHAR(255)。
3.CHAR:固定长度字符串,用于存储字符串。与 VARCHAR 不同,CHAR 会用空格填充字符串以达到指定的长度。
4.TEXT:用于存储大文本数据的字符串类型,通常用于存储较长的文本。
5.DATE:用于存储日期,格式为 'YYYY-MM-DD'。
6.TIME:用于存储时间,格式为 'HH:MM:SS'。
7.DATETIME:用于存储日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'。
8.BOOL 或 BOOLEAN:用于存储布尔值,通常表示真(1)或假(0)。
9.FLOAT 或 DOUBLE:用于存储浮点数,例如 FLOAT(5, 2) 表示总共 5 位,其中 2 位是小数部分。
10.DECIMAL:用于存储固定精度的浮点数,例如 DECIMAL(8, 2) 表示总共 8 位,其中 2 位是小数部分。
2.占位符类型
在 MySQL 中,使用占位符时通常只需要 %s,因为它是通用占位符,可以用于不同的数据类型。
虽然使用 %s 可以适用于大多数数据类型,但在某些情况下,你可能需要使用更复杂的占位符,如 %d(整数)、%f(浮点数)等。不过,为了防止 SQL 注入攻击和确保数据的一致性,最好使用通用的 %s 占位符,并将数据正确地传递给执行语句的方法
这里列举常用的占位符类型
%s:字符串占位符,通常用于插入文本数据。
%d 或 %i:整数占位符,用于插入整数数据。
%f 或 %lf:浮点数占位符,用于插入浮点数数据。
%b:布尔值占位符,通常用于插入布尔类型的数据。
%x:十六进制占位符,用于插入十六进制格式的数据。
%c:字符占位符,用于插入单个字符。
?:通用占位符,具体类型由数据库驱动程序自动识别。
:name:命名占位符,通过名称引用参数。
三、导出数据库中的表
import pymysql
import csv
# 连接到数据库
conn = pymysql.connect(host='your_host', user='your_user', password='your_password', db='your_database')
cursor = conn.cursor()
# 执行查询
query = "SELECT * FROM your_table"
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# 将结果写入 CSV 文件
with open('output.csv', 'w', newline='') as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow([i[0] for i in cursor.description]) # 写入列名
csv_writer.writerows(result)
# 关闭数据库连接
cursor.close()
conn.close()
总结
以上就是利用pymysql创建表、插入数据、导出表的具体操作。有关SQL语言具体可以参照MYSQL文档进行学习