什么是数据库?
为什么用数据库?
要永久存储数据,可以用文件、关系型数据库和其他一些数据库变种。在大型项目时,关系型数据库提供的接口让操作更方便。
数据库在哪里?需要安装
数据库安装:见 MySQL 安装,我使用的是windows的,注意打开命令行时以管理员身份运行。
操作MySQL的Python库:
2、PyMySQL
这里用PyMySQL。
SQL?
SQL:是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库系统。(数据库是用SQL命令操作的,Python通过调用执行SQL命令操作数据库)
常用命令:
#创建数据库
CREATE DATABASE test; #创建叫test的数据库
GRANT ALL ON test.* to users; #将数据库操作权限赋给users
#选择要使用的数据库
USE test; #使用test数据库
#删除数据库
DROP DATABASE test; #删除test数据库
#创建表
CREATE TABLE users (name VARCHAR(8), age INT, height INT); #创建users表,有字符串的 name 列、整型 age、 height 列
#删除表
DROP TABLE users;
#插入行
INSERT INTO users VALUES("zhangsan", 40, 60); #向表users插入一行数据
#更新行
UPDATE users SET age=41 WHERE age=40; #对users表age=40的行,更新age=41
UPDATE users SET age=42 WHERE name="zhangsan" ; #对users表 name="zhangsan" 的行,更新 age=42
#删除行
DELETE FROM users WHERE age=40; #删除age=40的一行数据
DELETE FROM users; #删除users表全部数据
怎么使用?
1、用SQL命令操作MySQL
#从命令行进入MySQL的bin文件夹
>net start MySQL
>mysql -u root -p #此处-u后的root可用你的用户名代替,-p后可接密码。都没有就直接按回车
mysql>use test #使用test数据库
mysql> CREATE DATABASE other; #创建 other 数据库
mysql>quit
2、Python中操作
#创建表
#插入数据
#查询数据
# 更新数据
# 删除数据
import pymysql
#打开数据库连接
db = pymysql.connect(host="localhost",port=3306,user="root",passwd='',db="test",charset="utf8")
# 使用 cursor() 方法创建一个游标对象
cursor = db.cursor()
# 使用 execute() 方法执行 SQL命令
cursor.execute("DROP TABLE IF EXISTS users") #存在users表就先删掉
#创建表
sql = """CREATE TABLE users( name CHAR(20) NOT NULL, age INT, height INT ,income FLOAT )"""
cursor.execute(sql) #执行创建表命令
#插入一行数据
sql = """INSERT INTO users(name, age,height, income) VALUES ('zhangsan', 40, 60, 5000)"""
try:
cursor.execute(sql) # 执行sql语句
db.commit() # 提交到数据库执行
except:
db.rollback() # 如果发生错误则回滚
#查询数据
sql = "SELECT * FROM users WHERE income > '%d' " % (1000) #选择income大于1000的行
try:
cursor.execute(sql) # 执行SQL语句
#results = cursor.fetchone() # 获取SELECT的单条记录列表
results = cursor.fetchall() # 获取SELECT的所有记录列表
for row in results:
name = row[0]
age = row[1]
height = row[2]
income = row[3]
print ("name=%s,age=%d,height=%d,income=%d" %(name, age,height, income ))
except:
print ("Error: unable to fetch data")
# 更新数据
sql = "UPDATE users SET age = age + 1 WHERE name = '%c'" % ('zhangsan')
try:
cursor.execute(sql) # 执行SQL语句
db.commit() # 提交到数据库执行
except:
db.rollback() # 发生错误时回滚
# 删除数据
sql = "DELETE FROM users WHERE age > '%d' " % (20)
try:
cursor.execute(sql) # 执行SQL语句
db.commit() # 提交到数据库执行
except:
db.rollback() # 发生错误时回滚
# 关闭连接
db.close()
演示:
1-1 1-1以上摘自
1、《Python核心编程》
网友评论