您的位置:首页 > 编程语言 > Python开发

Mac平台上Python的MySQLdb库的使用及数据库简单概念理解

2018-02-26 13:21 399 查看

前言

最近刚刚开始学习数据库相关的知识,刚巧有地方用到。笔者之前关于数据库的知识,知识学过基础的SQL语句,并且在相关的网上刷题网站做过一些SQL相关的语句,但是对于实际的数据库编程以及框架不是很了解。由于笔者本次学习只涉及到了非常基础且简单的数据库,所以只就此部分进行讨论。这次学习之后借此机会,通过这边文章来总结分享这几天学习过程中的所得。
如有错误,欢迎指正!

数据库的基础知识

数据库属于程序开发中重要且基础的技术。由我个人的理解是,数据库可以分为三层。最上层是数据库(DataBase),即存储数据的较大的单位,也是我们文件中的.db后缀的文件;第二层是数据表(Table),我们的增删查改都是针对Table来进行操作的,对Table的具体操作即为相应的SQL语句,这也是数据库技术中较为重要的部分,每个数据库可以包含多个数据表;最基础的是数据记录(Record),即数据表中的每一行。例如在学生信息的数据表中,'张三', ‘男’, 23, '计算机专业'就是一条数据记录。对每一层整体的操作命令的对象,都是上一层对象。这句话有点绕口。即,对数据记录的增删查改命令都是对上一层数据表的操作;对数据表对创建删除修改命令,都是针对数据库的操作。

Mac OS Python的MySQLdb库安装和MySQL的访问

笔者差了很多关于MySQLdb的安装,网上很多版本,综合起来最简单最直接的方法只需要在命令行中输入两行命令,具体如下:$ brew install mysql-connector-c
$ sudo pip install MySQL-python直接在命令行中运行上述两条语句,即可对MySQLdb完成安装,安装在了python下而不是python3。最新的Mac OS应该都可以运行。安装完成后,写一个python文件,只包含一句代码,如下,
import MySQLdb
然后运行此代码,若命令行无任何返回值,说明安装成功。
然后还需要安装MySQL,具体可以去官网下载并且安装即可。
安装好MySQL后,可以在命令行中输入mysql -u root -p这句的意义是,对本地mysql数据库进行访问,-u后面跟的参数root是管理员,-p是密码,但是由于第一次访问没有密码,直接敲回车即可。进入后再输入show databases即可看到现有的本地数据库有哪些,然后可以用create/drop database + 库名即可创建或删除相应数据库。

MySQLdb的基础操作

以下是具体的Python代码:import MySQLdb
"""
建立MySQL链接
@Param: host->与数据库服务器连接的地址,本地地址是127.0.0.1或者localhost
user->MySQL数据库账号
passwd->MySQL密码
db->在MySQL服务器中找到需要操作的数据库名
在本代码中,需要提前创建stock数据库。
"""
conn = MySQLdb.connect(host='localhost', user='root',passwd='', db='python')

# 创建一个游标
cursor = conn.cursor()

# 执行CREATE TABLE的MySQL语句。在python数据库中创建一个名为HistoryPrice的表。
cursor.execute("""CREATE TABLE HistoryPrice(
symbol varchar(255),
historyTime date,
openPrice double,
highPrice double,
lowPrice double,
closePrice double,
volume int,
PRIMARY KEY (symbol, historyTime)
)""")

# 插入value对应的一条数据记录。
value = ["GOOG", "2017-04-02", 23.1, 23.1, 23.3, 23.4, 100]

cursor.execute("INSERT INTO HistoryPrice VALUES(%s, %s, %s, %s, %s, %s, %s)",value)

# 提交对数据表的修改,如果没有这句执行完代码后,无法对数据表的修改进行保存。
conn.commit()以上代码展示了创建表和数据记录的插入操作,其余的删查改操作可以相应修改并执行。
相应的,可以直接对数据表进行创建,也可以直接将其删除,例如drop table HistoryPrice可以直接完成对数据表的删除。
需要注意的是,普通的sql语句需要commit()之后才能保存相应的操作结果,但是Drop和Create等直接操作数据表的操作不需要commit(),执行语句后会直接保存。
具体解释如下(转自http://github.tiankonguse.com/blog/2015/01/10/mysql-delete-data.html
SQL 的命令分四部分: DDL,DML,DCL,TCL。
DDL(Data Definition Language) 
数据库定义语言(statements are used to define the database structure or schema)
用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束
DDL不需要commit
命令: CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME
DML(Data Manipulation Language)
数据操纵语言(statements are used for managing data within schema objects)
由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。
需要commit.
命令: SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE
DCL(Data Control Language)
数据库控制语言
授权,角色控制等
命令: GRANT,REVOKE
TCL(Transaction Control Language)
事务控制语言
命令: SAVEPOINT,ROLLBACK,SET TRANSACTION
以上是笔者对于数据库MySQL基础的理解。笔者对这方面也是小白,写出这篇文章,希望能跟大家交流,多多指教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SQL MySQL Python 数据库 Mac