博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 安装操作 MySQL 数据库.
阅读量:6370 次
发布时间:2019-06-23

本文共 5051 字,大约阅读时间需要 16 分钟。

以ubuntu和mysql为例

检查自己的机器上面有没有安装数据库

1 xpower@xpower-CW65S:~$ sudo service mysql start2 [sudo] xpower 的密码:

尝试输入命令打开 MySQL 不同的版本会有不同的效果 , 我的什么反馈也没有这就说明已经安装并且启动成功了 ( 没有消息就是最好的消息 ) 有的 ubuntu 会有反馈 , 自己看反馈内容 . 很容易判断 .

安装MySQL(安装过程中可能需要填写一点东西 . 建议填写一下 . )

1 xpower@xpower-CW65S:~$ sudo apt-get install mysql-server # 安装MySQL服务端,核心 程序2 xpower@xpower-CW65S:~$ sudo apt-get install mysql-client # 安装MySQL客户端

 安装MySQLdb              

我当时尝试了好几种方法来安装但是都失败了 最后用了这个(好像是这个吧...)

xpower@xpower-CW65S:~$ sudo pip install MySQL-python

准备工作完毕 下面开始 , 实践一发 MySQL的基础操作温习一下.

启动MySQL

mysql -u root -p # 有密码的时候的启动方式 .mysql -u root     # 没有密码的时候的启动方式 .

练习 MySQL 的基本操作

xpower@xpower-CW65S:~$ mysql -u root -p  # 启动数据库Enter password: mysql> show databases;   #查看当前所有的数据库+--------------------+| Database           |+--------------------+| information_schema || mysql              || mysql_xpower       || performance_schema || sys                |+--------------------+5 rows in set (0.00 sec)mysql> use mysql_xpower # 链接 mysql_xpower 数据库Database changedmysql> show tables;   # 查看 mysql_xpower下的所有表单 +------------------------+| Tables_in_mysql_xpower |+------------------------+| Student_information    || employee               || user                   |+------------------------+3 rows in set (0.00 sec)mysql> DROP TABLE user;  # 删除表单 userQuery OK, 0 rows affected (0.30 sec)mysql> CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); #创建一个 user 表单 Query OK, 0 rows affected (0.46 sec)mysql> show tables;   # 查看 mysql下的所有表单+------------------------+| Tables_in_mysql_xpower |+------------------------+| Student_information    || employee               || user                   |+------------------------+3 rows in set (0.00 sec)mysql> insert into user values('tom','12345');Query OK, 1 row affected (0.13 sec)mysql> insert into user values('jack','23456');Query OK, 1 row affected (0.04 sec)mysql> insert into user values('lucy','34567');Query OK, 1 row affected (0.12 sec)mysql> SHOW TABLES # 查看表单     -> ;+------------------------+| Tables_in_mysql_xpower |+------------------------+| Student_information    || employee               || user                   |+------------------------+3 rows in set (0.00 sec)mysql> SELECT * FROM user; 查看 user表单下所有项+------+----------+| name | password |+------+----------+| tom  | 12345    || jack | 23456    || lucy | 34567    |+------+----------+3 rows in set (0.00 sec) mysql> DELETE FROM user WHERE NAME='lucy'; # 删除用户 lucyQuery OK, 0 rows affected (0.00 sec)mysql> insert into user values('lucy','34567');Query OK, 1 row affected (0.04 sec)mysql> delete from user where name ='jack';Query OK, 1 row affected (0.05 sec)mysql> update user set password='111' where name ='lucy'; # 修改 lucy的密码 . Query OK, 1 row affected (0.12 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from user    -> ;+------+----------+| name | password |+------+----------+| tom  | 12345    || lucy | 111      |+------+----------+

上面是MySQL的基本操作 , 自己动手打一遍

进入正题

>>> conn= MySQLdb.connect(...         host='localhost',...         port = 3306,...         user='root',...         passwd='密码',...         db = '需要链接的数据库',...         )

在这里虽然我们取得了 python 的数据库链接 , 但是不能在这个对象上直接对数据库进行操作 , 还需要获取对应的操作游标才能进行数据库的操作 , 所以还需要 获取游标 .

1 >>> cur = conn.cursor()

创建一个数据库 (cur.execute() 没有返回被影响的行数 , 因为这里是创建数据库 , 所以被影响的是 0L)

但是到这里语句并没有被真正的执行必须使用MySQLdb.commit() ( git ?  ) 才是真正的执行完毕 . 到这里才是真正的执行完毕 , 这时候我们的表格才是真正的创建完成 ,  同理向表中写入数据 , 也是一样的操作流程 execute ==> commit 不过 , 写入的数据的 execute , 也是少有不同 , 如下

>>> cur.execute('CREATE TABLE stu_info (name VARCHAR(20),stu_id VARCHAR(30))')0L>>> conn.commit()>>>

下面会向表单中插入数据 , 是和上面不一样的插入方式 .

>>> cur.executemany("insert into stu_info (name,stu_id) values (%s,%s)",(("jack",18),("lucy",19)))2L >>> conn.commit()
>>> cur.execute("insert into stu_info (name,stu_id) values ('yuanchongyang','15631030706')")1L>>> cur.execute("insert into stu_info (name,stu_id) values ('caiweiwei','15631030717') ")1L>>> conn.commit()

上面尝试了一下 , 看看能不能和 git 一样多个数据 一次 commit . 需要了解一下 数据库的工作流程....

>>> cur.execute("select * from stu_info")4L>>> stus = cur.fetchall()>>> stus

查看表单内容

1 >>> cur.execute("select * from stu_info")2 4L3 >>> stus = cur.fetchall()4 >>> stus5 (('yuanchongyang', '15631030706'), ('caiweiwei', '15631030717'), ('jack', '18'), ('lucy', '19'))

 

1 >>>conn.close()2 3 Conn.close()关闭数据库连接

上文中我们已经知道 , 通过

>>> import MySQLdb>>> conn = MySQLdb.connect(...         host='localhost',...         port = 3306,...         user='root',...         passwd='q.123456',...         db = 'mysql_xpower',...         )>>> cur = conn.cursor()>>> sqli = "insert into stu_info values(%s,%s)">>> cur.execute(sqli,('mengmeng',123456789))1L>>> cur.close()>>> cur = conn.cursor()>>> cur.execute("select * from stu_info")5L

这个时候获得的cur可以用于显示 表单的内容  

>>> stus = cur.fetchall()>>> stus(('yuanchongyang', '15631030706'), ('caiweiwei', '15631030717'), ('jack', '18'), ('lucy', '19'), ('mengmeng', '123456789'))

这样就显示出来了 但是如果想再显示一次怎么办呢?

>>> cur.scroll(0,'absolute')

没错就是他 , 他可以让游标指针跳到你想要的位置 . 其实还有一个fetchone这个东西和fetchall 有什么区别呢 ? 自己观察一下 单词就行了 .

转载于:https://www.cnblogs.com/A-FM/p/5808461.html

你可能感兴趣的文章
10 行代码提取复杂 Excel 数据
查看>>
是什么样的骚操作让应用上线节省90%的时间
查看>>
初入阿里云
查看>>
Swift 2.0初探
查看>>
代理模式
查看>>
Ubuntu 创始人谈 IBM 收购红帽:对 Ubuntu 是件好事
查看>>
阿里云申请免费SSL证书,并配置到Tomcat,实现https访问
查看>>
VS2005 “无法在证书存储区中找到清单签名证书”错误的解决方法
查看>>
学习编程难不难呢?
查看>>
Greenplum 逻辑备份增强 - 备份期间不锁metadata(pg_class),不堵塞DDL
查看>>
ES6新特性:var与let区别
查看>>
免费的多平台使用的桌面日程安排软件?
查看>>
Java 实现阿里云直播
查看>>
javascript中的内存管理和垃圾回收
查看>>
Hbase java 常见操作
查看>>
Python网络编程——协程
查看>>
laravel中短信发送验证码的实现方法
查看>>
10月25日云栖精选夜读 | 机器学习高质量数据集大合辑
查看>>
fastjson实例
查看>>
服务器架构
查看>>