重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
下面讲讲关于MySQL与pymysql相关知识,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL与pymysql相关知识这篇文章你一定会有所受益。
公司主营业务:网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出峨眉山免费做网站回馈大家。
一、概述
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中。Python操作MySQL主要使用pymsql模块和ORM框架 SQLAchemy。
二、MySQL安装
MySQL官方下载地址:点这里
1、下载 MySQL Community Server 5.7.23 2、解压 解压至D:\mysql-5.7.23-winx64目录中 3、初始化(默认不给root用户设置密码) D:\>cd mysql-5.7.23-winx64 D:\mysql-5.7.23-winx64>cd bin D:\mysql-5.7.23-winx64\bin>mysqld --initialize-insecure 4、启动服务 D:\mysql-5.7.23-winx64\bin>mysqld.exe 5、客户端连接云服务器端 d:\mysql-5.7.23-winx64\bin>mysql.exe -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.23 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 6、添加环境变量 【右键此电脑】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【新建】-->【将MySQL的bin目录路径复制进去】 7、注册windows服务 D:\mysql-5.7.23-winx64\bin>mysqld.exe --install Service successfully installed. 如想移除服务可跟参数--remove 8、使用net管理mysql服务 # 启动MySQL服务 net start mysql # 关闭MySQL服务 net stop mysql
安装: yum install mariadb-server -y yum install mariadb -y 服务端启动 systemctl start mariadb-server
三、数据库基础知识
1、显示数据库 mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) 2、用户管理 如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。 创建用户 create user '用户名'@'IP地址' identified by '密码'; 删除用户 drop user '用户名'@'IP地址'; 修改用户 rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';; 修改密码 set password for '用户名'@'IP地址' = Password('新密码') 重载:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。 FLUSH PRIVILEGES 用户名@IP地址 表示用户只能在该IP下才能访问 用户名@192.168.1.% 表示用户只能在该IP段下才能访问(通配符%表示任意) 用户名@% 表示用户可以再任意IP下访问(默认IP地址为%) 3、授权管理 授权jym用户用于所有数据库的所有权限 grant all privileges on *.* to 'jym'@'192.168.%.%'; 查看权限 show grants for 'jym'@'192.168.%.%'; 权限列表 all privileges :除grant外的所有权限 select :仅查权限 select,insert :查和插入权限 ... 对于目标数据库 数据库名.* 数据库中的所有 数据库名.表 指定数据库中的某张表 数据库名.存储过程 指定数据库中的存储过程 *.* 所有数据库
1、创建数据库 mysql> CREATE DATABASE pydb; 2、删除数据库 mysql> DROP DATABASE pydb; 3、使用数据库 mysql> use pydb; 4、创建表 mysql> CREATE TABLE IF NOT EXISTS `py_tbl`( -> `py_id` INT UNSIGNED AUTO_INCREMENT, -> `py_title` VARCHAR(100) NOT NULL, -> `py_author` VARCHAR(40) NOT NULL, -> `submission_date` DATE, -> PRIMARY KEY ( `py_id` ) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.02 sec) 解析: 1.null表示空,非字符串,not null表示不可空。 2.AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。 3.PRIMARY KEY关键字用于定义列为主键。主键是一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。 4.ENGINE 设置存储引擎,CHARSET 设置编码。 5、删除表 mysql> DROP TABLE py_tb1; 6、增 mysql> CREATE TABLE py_tb1(nid INT,name VARCHAR(20),password VARCHAR(64)); mysql> INSERT INTO py_tb1(nid,name,password) VALUES(1,'aaa','123'); mysql> INSERT INTO py_tb1(nid,name,password) VALUES(2,'bbb','123'); 7、查 mysql> SELECT * FROM py_tb1; +------+------+----------+ | nid | name | password | +------+------+----------+ | 1 | aaa | 123 | | 2 | bbb | 123 | +------+------+----------+ 2 rows in set (0.00 sec) 8、删 mysql> delete from py_tb1 where nid=2 and name='bbb'; 9、改 mysql> update py_tb1 set name='newaaa' where nid=1;
四、pymysql
pymysql是python中操作mysql的模块。
pip3 install pymysql
import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='pydb') # 创建游标 cursor = conn.cursor() # 执行SQL,并返回受影响行数 ret = cursor.execute("INSERT INTO py_tbl (py_title, py_author, submission_date) VALUES ('python', 'admin', NOW());") # 提交,不然无法保存新建或者修改的数据 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close()
import pymysql.cursors # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='pydb') # 创建游标 cursor = conn.cursor() sql = "SELECT * FROM py_tbl;" # 执行SQL cursor.execute(sql) # 查询数据库单条数据 #ret = cursor.fetchone() #print(ret) # 查询数据库多条数据 ret = cursor.fetchall() for data in ret: print(data) # 关闭数据连接 conn.close()
查询结果
(1, 'MySQL', 'root', datetime.date(2018, 8, 3)) (2, 'python', 'admin', datetime.date(2018, 8, 3))
cursor():创建数据库游标。 execute():执行SQL语句。 commit():将数据库的操作真正的提交到数据。 fetchone() :查询单条数据。 fetchall() :查询多条数据。close() :关闭数据连接。
对于以上MySQL与pymysql相关知识,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。