目录
1. 连接MySQL
语法格式:
connect(host='127.0.0.1',user='root',passwd='',db='test')
其中,host代表服务器名;user为登录用户名;passwd代表指定用户的密码;db为所需要连接的数据库。
代码实例:
import MySQLdb #导入模块
conn=MySQLdb. connect(host='127.0.0.1',user='root',passwd='',db='test') #连接数据库
cur=conn.cursor() #创建游标对象
if cur:
print("成功连接到MySQL")
2. 执行SQL语句
语法格式:
execute(self, query, args)
其中,参数query为需要执行的SQL语句,args为语句的参数列表,执行该方法将会执行相应的SQL语句,返回值为数据库中受影响的行数。
执行完SQL语句之后,可以调用fetchone()方法或fetchall()方法来返回一条结果或所有结果行。
代码实例:
import MySQLdb # 导入模块
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test') # 连接数据库
cur=conn.cursor() # 创建游标对象
sql="select version()" # 定义SQL语句查看版本
cur.execute(sql) # 执行SQL语句
version=cur.fetchone() # 获取结果
print("当前MySQL的版本为:",version) # 输出结果
sql="select now()" # 定义SQL语句查看时间
cur.execute(sql)
time=cur.fetchone()
print("当前日期时间为:",time)
cur.close()
conn.close()
3. 创建表
代码实例
import MySQLdb # 导入模块
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test') # 连接数据库
cur=conn.cursor() # 创建游标对象
sql="show tables" # 定义SQL语句
cur.execute(sql) # 执行SQL语句
result=cur.fetchone() # 获取结果
print("当前数据库中表的个数为:",result) # 输出结果
sql_create_table="""CREATE TABLE STUDENT (
ID INT,
NAME CHAR(20) NOT NULL,
AGE INT,
SEX CHAR(2),
DEGREE INT )"""
cur.execute(sql_create_table)
sql="show tables" # 定义SQL语句
cur.execute(sql) # 执行SQL语句
result=cur.fetchone() # 获取结果
print("建表操作后数据库中表的个数为:",result) # 输出结果
cur.close()
conn.close()
4. 插入数据
语法格式:
INSERT TABLENAME(COLUMN_NAME1, COLUMN_NAME2,...)
VALUES ('VALUE1', 'VALUE2',...)
其中,tablename为需要执行插入的表的名称,column_name为字段名(或者叫列名),value为字段相对应的值。执行该SQL语句就会把指定的数据添加到表中。
代码实例:
import MySQLdb #导入模块
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test') #连接数据库
conn.set_character_set('utf8') #设置字符集
cur=conn.cursor() #创建游标对象
sql="SELECT COUNT(*) FROM STUDENT" #定义SQL语句
cur.execute(sql) #执行SQL语句
result=cur.fetchone() #获取结果
print("当前数据表student的记录数为:",result[0]) #输出结果
print("执行插入数据")
insert="""INSERT INTO `STUDENT` (`ID`, `NAME`, `AGE`, `SEX`, `DEGREE`) VALUES
('1','李雷','15','男','1'),
('2','韩梅梅',15,'女','1'),
('3','张三','16','男','3'),
('4','小马','14','男','3'),
('5','高霞','15','女','3')
"""
cur.execute(insert)
conn.commit()
sql="SELECT COUNT(*) FROM STUDENT" #定义SQL语句
cur.execute(sql) #执行SQL语句
result=cur.fetchone() #获取结果
print("插入后数据表student的记录数为:",result[0]) #输出结果
cur.close()
conn.close()
5. 查看数据
语法格式:
select field1,field2,..., fieldn from 表名 [where 条件];
其中,field为字段名称,where为有条件的查询。
代码实例:
(1)简单的数据查询
import MySQLdb #导入模块
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test') #连接数据库
cur=conn.cursor() #创建游标对象
conn.set_character_set('utf8') #设置字符集
sql="SELECT * FROM STUDENT" #定义SQL语句
cur.execute(sql) #执行SQL语句
result=cur.fetchall() #获取结果
print("==================================")
for re in result:
print(re[0],end="")
print("\t",re[1],end="")
print("\t",re[2],end="")
print("\t",re[3],end="")
print("\t",re[4])
print("==================================")
cur.close()
conn.close()
(2)有条件的数据查询
import MySQLdb #导入模块
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test') #连接数据库
cur=conn.cursor() #创建游标对象
conn.set_character_set('utf8') #设置字符集
sql="SELECT * FROM STUDENT WHERE SEX='男'" #定义SQL语句
cur.execute(sql) #执行SQL语句
result=cur.fetchall() #获取结果
print("所有的男性:")
print("==================================")
for re in result:
print(re[0],end="")
print("\t",re[1],end="")
print("\t",re[2],end="")
print("\t",re[3],end="")
print("\t",re[4])
print("==================================")
cur.close()
conn.close()
6. 修改数据
语法格式:
UPDATE table_name SET field1 = value1, field2=value2 WHERE 条件
修改数据的SQL语句通常需要带WHERE条件子句,以保证只有符合条件的记录被修改,否则可能所有记录都会被改成某种状态。
代码实例:
import MySQLdb #导入模块
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test') #连接数据库
cur=conn.cursor() #创建游标对象
conn.set_character_set('utf8') #设置字符集
sql="SELECT * FROM STUDENT WHERE ID='3'" #定义SQL语句
cur.execute(sql) #执行SQL语句
re=cur.fetchone() #获取结果
print("修改前内容为:")
print("==================================")
print(re[0],end="")
print("\t",re[1],end="")
print("\t",re[2],end="")
print("\t",re[3],end="")
print("\t",re[4])
update="UPDATE STUDENT set DEGREE='2' WHERE ID='3'" #定义修改记录SQL语句
cur.execute(update) #执行修改
conn.commit() #提交操作
sql="SELECT * FROM STUDENT WHERE ID='3'" #定义SQL语句
cur.execute(sql) #执行SQL语句
re=cur.fetchone() #获取结果
print("修改后内容为:")
print("==================================")
print(re[0],end="")
print("\t",re[1],end="")
print("\t",re[2],end="")
print("\t",re[3],end="")
print("\t",re[4])
cur.close()
conn.close()
7. 删除数据
语法格式:
DELETE FROM table_name [WHERE Clause]
执行该SQL语句就会将符合条件的记录从表中删除。与修改记录一样,这里也需要使用WHERE条件子句,这样可以确保只有满足一定条件的记录才会被删除,如果不使用WHERE条件子句,那么所有记录都会被删除,后果将无法挽回。
代码实例:
import MySQLdb #导入模块
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test') #连接数据库
cur=conn.cursor() #创建游标对象
conn.set_character_set('utf8') #设置字符集
sql="SELECT * FROM STUDENT" #定义SQL语句
cur.execute(sql) #执行SQL语句
result=cur.fetchall() #获取结果
print("删除记录之前表中内容为:")
print("==================================")
for re in result: #遍历结果
print(re[0],end="")
print("\t",re[1],end="")
print("\t",re[2],end="")
print("\t",re[3],end="")
print("\t",re[4])
print("==================================")
sql_del="DELETE FROM STUDENT WHERE id='4'"
cur.execute(sql_del)
conn.commit()
sql="SELECT * FROM STUDENT" #定义SQL语句
cur.execute(sql) #执行SQL语句
result=cur.fetchall() #获取结果
print("删除记录之后表中内容为:")
print("==================================")
for re in result: #遍历结果
print(re[0],end="")
print("\t",re[1],end="")
print("\t",re[2],end="")
print("\t",re[3],end="")
print("\t",re[4])
print("==================================")
cur.close()
conn.close()