python creat table
时间: 2023-05-01 14:06:46 浏览: 148
创建表在Python中可以使用SQL语句,在SQLite数据库中可以使用SQLite库来执行SQL语句。例如,使用以下代码创建一个名为students的表:
```
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('test.db')
# 创建一个游标对象
cursor = conn.cursor()
# 创建students表的SQL语句
create_table_sql = '''
CREATE TABLE students (
id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
sex CHAR(10)
);
'''
# 执行SQL语句
cursor.execute(create_table_sql)
# 关闭游标和连接
cursor.close()
conn.close()
```
这个例子创建了一个包含id、name、age和sex四个字段的students表。其中id是主键,不能为空。执行execute(create_table_sql)语句后,students表就被创建了。
相关问题
用creat_engine()来连接远程SQL Server数据库
在Python中使用create_engine()来连接远程SQL Server数据库,需要使用pyodbc驱动程序和ODBC数据源名称(DSN)。
首先,需要安装pyodbc模块和ODBC驱动程序。可以使用以下命令在命令行中安装pyodbc模块:
```
pip install pyodbc
```
然后,需要创建一个ODBC数据源名称(DSN),以便在Python中访问远程SQL Server数据库。可以按照以下步骤创建ODBC数据源名称(DSN):
1. 在Windows操作系统中,打开“ODBC数据源管理员”(可以在控制面板中找到)。
2. 在“ODBC数据源管理员”窗口中,选择“系统DSN”选项卡。
3. 单击“添加”按钮,选择“SQL Server”驱动程序,并单击“完成”按钮。
4. 在“创建新的数据源”窗口中,输入数据源名称、描述、服务器名称和数据库名称,并指定身份验证方式和登录凭据。单击“下一步”按钮。
5. 在“选择默认数据库”窗口中,选择默认数据库并单击“下一步”按钮。
6. 在“确认”窗口中,单击“测试数据源”按钮以测试连接。如果连接成功,则单击“确定”按钮。
完成以上步骤后,可以使用以下Python代码连接远程SQL Server数据库:
```
from sqlalchemy import create_engine
dsn = 'my_dsn' # 数据源名称(DSN)
user = 'my_username' # 数据库用户名
password = 'my_password' # 数据库密码
host = 'my_server_name' # 数据库服务器名称
database = 'my_database_name' # 数据库名称
engine = create_engine(f'mssql+pyodbc://{user}:{password}@{host}/{database}?driver=ODBC+Driver+17+for+SQL+Server?trusted_connection=yes')
```
在此代码中,使用create_engine()函数创建一个SQLAlchemy引擎对象。连接字符串中的驱动程序名称是“mssql+pyodbc”,用户名、密码、服务器名称和数据库名称是从DSN中获取的,而ODBC驱动程序名称是“ODBC Driver 17 for SQL Server”。
连接字符串还包括一个可选参数“trusted_connection=yes”,用于指定使用Windows身份验证进行身份验证。
完成以上步骤后,就可以使用SQLAlchemy查询远程SQL Server数据库了。例如,可以使用以下代码查询表中的数据:
```
from sqlalchemy import create_engine, Table, MetaData
dsn = 'my_dsn' # 数据源名称(DSN)
user = 'my_username' # 数据库用户名
password = 'my_password' # 数据库密码
host = 'my_server_name' # 数据库服务器名称
database = 'my_database_name' # 数据库名称
engine = create_engine(f'mssql+pyodbc://{user}:{password}@{host}/{database}?driver=ODBC+Driver+17+for+SQL+Server?trusted_connection=yes')
metadata = MetaData()
table = Table('my_table_name', metadata, autoload=True, autoload_with=engine)
result = engine.execute(table.select()).fetchall()
for row in result:
print(row)
```
阅读全文