Python数据库操作

2019-01-30  本文已影响0人  ququququ

一、数据库基础知识

1.名词缩写

DB(Data Base)数据库

DBMS(Data Base Management System)数据库管理系统

DBS(Data Base System)数据库系统

DBA(Data Base Administrator)数据库管理员

SQL(Structured Query Language)结构化查询语言

Primary Key 主键

Foreign Key 外键

Entity 实体

SQL语言的动词

SQL功能 动词
数据查询 SELECT
数据定义 CREATE、DROP、ALTER
数据操纵 INSERT 、UPDATE 、DELETE
数据控制 GRANT、REVOKE

SQL的数据定义语句

操纵对象 创建 删除 修改
CREATE TABLE DROP TABLE ALERT TABLE
视图 CREATE VIEW DROP VIEW
索引 CREATE INDEX DROP INDEX
数据库 CREATE DATABASE DROP DATABASE ALERT DATABASE

2.SQL中的运算符

1.算数运算

+、-、*、/、%

2.赋值运算

=

3.比较运算

=、>、<、<>(不等于)、>=、<=

4.逻辑运算

AND、OR、NOT

3.SQL支持的数据类型

常用数值类型

数据类型 字节数
TINYINT[(M)] 1字节
SMALLINT[(M)] 2字节
MEDIUMINT[(M)] 3字节
INT[(M)] 4字节
FLOAT[(M,D)] 4字节

注意:上表中M表示显示宽度,也就是最多能够显示的数字个数,与该类型的取值范围无关。若数据位数大于显示宽度,只要不超过该类型取值范围,则以实际位数显示;反之数据位数如果小于指定宽度,则以空格填充。

字符串类型

数据类型 字节
CHAR [(M)] M字节
VARCHAR[(M)] 可变长度
TINYTEXT 0~255
TEXT 0~65535

二、第三方库

数据库操作第三方库pymysql

pymysql.Connect()参数说明
host(str):      MySQL服务器地址
port(int):      MySQL服务器端口号
user(str):      用户名
passwd(str):    密码
db(str):        数据库名称
charset(str):   连接编码

connection对象支持的方法
cursor()        使用该连接创建并返回游标
commit()        提交当前事务
rollback()      回滚当前事务
close()         关闭连接

cursor对象支持的方法
execute(op)     执行一个数据库的查询命令
fetchone()      取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall()      获取结果集中的所有行
rowcount()      返回数据条数或影响行数
close()         关闭游标对象

在MySQL创建一个表

CREATE TABLE `users` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `email` VARCHAR(255) COLLATE utf8_bin NOT NULL,
    `password` VARCHAR(255) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1 ;

使用Python脚本实现增删改查和事务处理,源码如下:

# 插入数据
sql = "insert into users (email,password) values ( '%s', '%s')" % ('example@email.com', 'password')
cursor.execute(sql)
db.commit()

# 更新数据
sql = "update users set email='%s'  where id = '%s'" % ('example_update@email.com', '1')
cursor.execute(sql)
db.commit()

# 查询数据
sql = "select email,password from users where id = '%s'" % '1'
cursor.execute(sql)
db.commit()
for row in cursor.fetchall():
    print("email:%s\t password:%s" % row)
print('共查出',cursor.rowcount,'条数据')

# 删除数据
sql = "delete  from users where id = '%s'" % '1'
cursor.execute(sql)
db.commit()


# 打印整个表格
cursor.execute('select * from users')
for row in cursor.fetchall():
    print(row)
print("共%d条数据。"%cursor.rowcount)
上一篇下一篇

猜你喜欢

热点阅读