navicat和mysql连接
新建一个MySQL连接意味着你正在配置一个用于访问和管理MySQL数据库的连接。在这个过程中,你使用了Navicat这样的数据库管理工具,通过填写一些必要的信息来建立与MySQL数据库的通信通道。
Navicat 是一款图形化数据库管理工具,旨在简化数据库开发和管理任务。
它提供了直观的用户界面,让用户可以通过可视化方式连接到不同类型的数据库,
并执行各种数据库操作,如查询、设计表、导入导出数据等。
让我解释一下这个过程的步骤:
-
打开Navicat并选择MySQL:首先,你打开了Navicat工具,并选择了MySQL作为你想要连接的数据库类型。
-
填写连接信息:在填写连接信息的阶段,通常你需要提供以下信息:
-
连接名(Connection Name):你为这个连接起的一个名字,用于在Navicat中标识和选择这个连接。
-
主机(Host):MySQL服务器的地址,即数据库所在的服务器的IP地址或域名。
-
端口(Port):MySQL服务器- 监听的端口号,通常默认是3306,除非你的MySQL服务器配置使用了不同的端口。
-
用户名(Username):连接到MySQL服务器所需的用户名。
-
密码(Password):与用户名相对应的密码,用于身份验证。
-
点击保存:当你填写完这些信息后,点击保存按钮。这将保存你的连接配置。
-
新建连接:一旦保存了连接配置,你就可以使用该连接了。这样,Navicat就能够通过提供的信息建立与MySQL数据库的连接,使你能够执行数据库操作、查询数据等。
总的来说,新建MySQL连接是为了通过数据库管理工具与MySQL数据库建立通信通道,以方便地执行数据库管理任务和查询操作。连接配置中包含了必要的信息,确保你有权限访问目标MySQL数据库。
python连接数据库
import pymysql.cursors
# 连接数据库
connect = pymysql.Connect(
host='127.0.0.1', # MySQL服务器地址,通常是本地地址,也可以是远程地址
port=3306, # MySQL服务器端口号,默认是3306
user='root', # 登录MySQL的用户名
passwd='123456', # 登录MySQL的密码
db='test_1', # 要连接的数据库名
charset='utf8' # 连接字符集,使用utf8可以支持中文等特殊字符
)
解释每个参数的含义:
-
host
: MySQL服务器的地址,通常是IP地址(例如:127.0.0.1)或域名。这里使用了本地地址(127.0.0.1),表示连接到本地MySQL服务器。 -
port
: MySQL服务器的端口号,通常是3306。这是MySQL服务器监听连接的端口。 -
user
: 登录MySQL的用户名,这里使用了root
,通常是拥有足够权限的用户。 -
passwd
: 登录MySQL的密码,这里使用了123456
,实际应用中应该使用更安全的密码。 -
db
: 要连接的数据库名,这里使用了test_1
,表示连接到名为test_1
的数据库。 -
charset
: 连接字符集,这里使用了utf8
,表示使用UTF-8编码,支持中文等特殊字符。
一旦连接成功,你可以使用connect
对象进行数据库操作,比如执行SQL查询、插入数据等。在完成操作后,记得关闭数据库连接:
# 关闭数据库连接
connect.close()
用python操作表
# Create table
sql_create_table = "CREATE TABLE IF NOT EXISTS student(id INTEGER PRIMARY KEY, name TEXT)"
cursor.execute(sql_create_table)
connect.commit()
print('成功创建表格')
# Drop table
sql_drop_table = 'DROP TABLE IF EXISTS student'
cursor.execute(sql_drop_table)
connect.commit()
print('如果存在表就删除表格')
用python操作表里的数据
# 插入数据
insert_data = (1, 'student1')
cursor.execute("INSERT INTO student VALUES(%s, %s)", insert_data)
connect.commit()
print('成功插入', cursor.rowcount, '条数据')
# 修改数据
update_data = ('student2', 1)
cursor.execute("UPDATE student SET name = %s WHERE id = %s", update_data)
connect.commit()
print('成功修改', cursor.rowcount, '条数据')
# 查询数据
select_data = (1,) # 逗号是为了确保select_data 是一个元组而不是一个简单的值
cursor.execute("SELECT * FROM student WHERE id=%s", select_data)
for row in cursor.fetchall(): # cursor.fetchall()获取查询结果集中的所有行
print(row)
print('共查找出', cursor.rowcount, '条数据')
# 删除数据
delete_data = (1,)
cursor.execute("DELETE FROM student WHERE id = %s LIMIT 1", delete_data)
connect.commit()
print('成功删除', cursor.rowcount, '条数据')
-
cursor.execute("INSERT INTO student VALUES(%s, %s)", insert_data)
: 这是一个使用参数的SQL插入语句。具体解释如下:INSERT INTO student
: 意味着要在名为"student"的表中执行插入操作。VALUES(%s, %s)
: 用占位符%s
表示插入值的位置,这里有两个占位符,对应表中的两个列(id和name)。insert_data
: 是一个元组,包含了实际要插入的数据。在这个例子中,insert_data
是(1, 'student1')
,分别对应了id和name的值。cursor.execute(...)
: 这个方法执行SQL语句,将参数传递给占位符,并将数据插入到数据库中。
-
cursor.execute("UPDATE student SET name = %s WHERE id = %s", update_data)
: 这是一个使用参数的SQL更新语句。具体解释如下:UPDATE student
: 表示要更新名为"student"的表。SET name = %s
: 指定要更新的列和新的值。在这里,更新"student"表中的"name"列。WHERE id = %s
: 确定要更新哪些行的条件。在这里,更新那些"id"等于给定值的行。update_data
: 是一个元组,包含了实际要更新的数据。在这个例子中,update_data
是('student2', 1)
,分别对应了新的"name"值和要更新的"id"值。cursor.execute(...)
: 这个方法执行SQL语句,将参数传递给占位符,并将满足条件的行的数据进行更新。
-
cursor.execute("SELECT * FROM student WHERE id=%s", select_data)
: 这是一个使用参数的SQL查询语句。具体解释如下:SELECT * FROM student
: 表示从名为"student"的表中选择所有列的数据。WHERE id=%s
: 指定一个条件,即只选择满足"id"等于给定值的行。select_data
: 是一个元组,包含了实际要查询的数据。在这个例子中,select_data
是(1,)
,表示要查询"id"等于1的行。cursor.execute(...)
: 这个方法执行SQL语句,将参数传递给占位符,并检索满足条件的行的数据。
-
cursor.execute("DELETE FROM student WHERE id = %s LIMIT 1", delete_data)
: 这是一个SQL删除语句,使用了参数化查询。DELETE FROM student
: 表示从名为"student"的表中执行删除操作。WHERE id = %s
: 是一个过滤条件,表示只删除那些"id"列等于给定值的行。LIMIT 1
: 限制删除的行数为1,即最多删除一行。这是为了确保在存在多个匹配行的情况下,只删除其中的一个。delete_data
: 是一个元组,包含了实际要删除的数据。在这个例子中,delete_data
是(1,)
,表示要删除"id"等于1的行。cursor.execute(...)
: 这个方法执行SQL语句,将参数传递给占位符,并删除满足条件的行。