Python第9课:万能的sql语句
时间 2019-01-16下午4:00
主讲 刘培富
地点 四楼电教室
1.什么是sql语句?
sql的英文全称是Structured Query Language,翻译过来是“结构化语言”的意思。什么是结构化?结构化就是条理化、系统化。计算机语言,是人与计算机进行对话、交流的一种方式,sql是人与数据库进行交流的一种方式。
之所以说sql语句是万能的,只因为,虽然数据库有很多种类,例如access,sql,mysql,oracle等等,但是他们都遵循sql语句的标准。也就是说,无论你使用哪种数据库,sql语句都是通用的。所以,学习sql语句是编程人员必需掌握的。
2.常见的sql语句:
sql语句非常繁杂,例如建库、建表等等,但这种操作,我们可以在可视化的界面下完成。我们使用sql语句,能掌握常用的添加、查询、修改、删除四句话,就算基本入门。下面,以pycharm+mysql,逐一介绍和示例。
(1)添加一条记录
sql="insert into table(id,name) values(1,'张三')"
举例:(注:以下举例中的服务器和帐号密码,已为大家开通调试,可正常使用,将于2019.1.25关闭)
import pymysql
conn=pymysql.connect(
host="218.95.95.26",
port=61004,
user="zhuanban",
passwd="2019116",
db="srs",
charset="utf8")
cur=conn.cursor()
#添加一条
sql="insert into gaj(id,name) values(890,'张三')"
cur.execute(sql)
conn.commit()
#查询结果
sql="select *from gaj"
cur.execute(sql)
data=cur.fetchall()
for i in data:
print(i)
#关闭连接
cur.close()
conn.close()
(2)修改一条记录
上例中,将sql语句修改为:
sql="update gaj set name='李四' where id=890"
cur.execute(sql)
conn.commit()
(3)删除一条记录
上例中,将sql语句修改为:
sql="delete from gaj where id=890"
cur.execute(sql)
conn.commit()
(4)查询记录
import pymysql
conn=pymysql.connect(
host="218.95.95.26",
port=61004,
user="zhuanban",
passwd="2019116",
db="srs",
charset="utf8")
cur=conn.cursor()
#查询结果
sql="select *from gaj"
cur.execute(sql)
data=cur.fetchall()
for row in data:
id=row[0]
name=row[1]
# 打印结果
print("id=%s,name=%s" %
(id,name))
#关闭连接
cur.close()
conn.close()
可见,row是一个元组。
在此,补充一个小知识:格式化字符串
a = "I'm %s. I'm %d year old" % ('Vamei', 99)
print(a)
或
print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})
格式符
格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下:
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
3.补充说明:
Connection支持的方法:
cursor()创建并且返回游标
commit()提交当前事物
rollback()回滚当前事物r()
close()关闭Connection
Cursor:游标对象,用于执行查询和获取结果,它支持的方法如下:
execute()用于执行一个数据库的查询命令
fetchone()获取结果集中的下一行
fetchmany(size)获取结果集中的下(size)行
fetchall(): 接收全部的返回结果行
rowcount最近一次execute返回数据/影响的行数
close()关闭游标
几个单词:
cursor 游标,指针
fetch 到达,取得
commit 提交,确定