数据科学是一个涉及从数据中提取洞察并进行分析以得出结论的领域。众所周知,大部分数据都存储在数据库中,而SQL正是帮助与数据库进行通信的语言。因此,学习SQL对于在数据科学领域取得成功是一个先决条件。本文将讨论如何从Python管理SQL,这是一个需要掌握的强大技能。
为了操作SQL,需要设置一个虚拟环境。虚拟环境,顾名思义,与实际的Python环境不同。在虚拟环境中,可以安装或更改一些包,而不会影响其他项目、主Python安装,甚至是在同一台机器上工作的其他人。因此,虚拟环境为提供了一个Python副本,让可以自由地进行更改,安装或卸载包。
# 创建虚拟环境
conda create --name myenv
# 激活虚拟环境
conda activate myenv
创建虚拟环境后,会注意到当激活环境时,(base)会变化为(myenv)。同样地,要停用这个环境,可以使用以下命令:
conda deactivate myenv
运行以下命令来安装所需的包:
pip install mysql-connector-python
安装完成后,将在Sublime Text Editor中编写Python代码来执行SQL查询。为了从命令提示符执行Sublime Text的Python文件,需要创建一个环境变量。如果不知道如何操作,可以查看相关文档。
创建一个新的Python文件,例如命名为HelloWorld.py,并运行一个测试命令print("Hello World")以确保文件能够执行。
使用以下代码连接到MySQL:
import mysql.connector
db = mysql.connector.connect(host='localhost',
user='yourusername',
passwd='yourpass',
database='fifa19',
port='3307',
auth_plugin='mysql_native_password')
print(db)
在这里,需要在user和passwd参数中输入MySQL用户名和密码。database参数将包含想要使用的数据库名称。MySQL端口是3307,如果端口是3306,则不需要明确指定。auth_plugin='mysql_native_password':这个参数被指定以避免认证错误。
使用cursor方法创建一个游标对象,该对象用于执行与MySQL数据库通信的语句。以下是在文本编辑器中编写的代码:
crs = db.cursor()
crs.execute("select * from players limit 10")
result = crs.fetchall()
pprint(result)
在这里,crs是游标对象的名称。execute()接受SQL查询作为参数并执行给定的查询。结果变量存储了fetchall()方法的结果集。fetchall()方法以元组的形式返回查询的结果集。pprint()以更格式化和易读的方式打印输出。
在文本编辑器中编写以下代码:
cmd="create table contacts(Name Varchar(255),PhoneNo int(12))"
print(cmd)
crs.execute(cmd)
注意,所有的查询都在游标对象上执行。保存并运行文件,这将在数据库中创建一个名为'contacts'的表。可以使用SQL命令行检查这一点。
插入命令的代码如下:
insert_command = "insert into contacts(Name,PhoneNo) values(%s,%s)"
values=("Sejal",987654321)
crs.execute(insert_command,values)
db.commit()
在这里,db.commit()需要在每次对数据库进行更改时执行。这个方法用于确保数据库中的更改是一致的。运行文件后,将能够看到数据已经被添加到表中。可以使用SQL命令行验证这一点。
搜索记录的代码如下:
crs.execute("select Name from players where Nationality='United States'")
result = crs.fetchall()
pprint(result)
crs.execute("delete from contacts")
db.commit()