python——MySQL数据库

MySQL数据库

数据库介绍

信息化社会,无处不在的就是数据

数据包含数据的存储和计算。

数据的存储有TXT,EXCEL,数据库

生活中,如何以Excel组织数据的存储

在这里插入图片描述

数据库组织数据的存储
在这里插入图片描述

数据库的存储等级可以是按照:库,表,数据进行存储的

数据库管理系统,也就是常说的数据库软件

数据库软件是非常多的,常见的有:

在这里插入图片描述

这些软件都能实现:管理库、管理表、基于表来管理数据

数据库和SQL的关系

数据库是用来存储数据的,在这个过程中,会涉及到:

·数据的新增

·数据的删除

·数据的修改

·数据的查询

·数据库、数据表的管理

等等

而SQL语言,就是一种对数据库、数据进行操作、管理、查询的工具。

使用数据库软件去获得库—>表—>数据,这种数据组织、存储的能力

并借助SQL语言,完成对数据的增删改查等操作

MySQL的安装

MySQL的介绍

MySQL是一个中小型的数据库,简单易用性能不错,在企业中频繁出现。

MySQL的安装

下载地址:https://downloads.mysql.com/archives/installer/

在这里插入图片描述

MySQL的入门使用

MySQL安装好后,就可以简单的尝试使用它

打开命令行提示符,输入mysql -uroot -p,然后回车后输入密码,即可进入命令行环境

在MySQL的命令行环境下,可以通过:

·show databases; 查看有哪些数据库

·use 数据库名 查看某个数据库

·show tables 查看数据库内有哪些表

·exit 退出MySQL的命令行环境

等命令。

在这里插入图片描述

使用图形化工具操作MySQL

使用命令行提示符进行MySQL的操作,不是太方便,一般开发者都会使用第三方图形化工具进行使用。

可用于MySQL的图形化工具非常多。

SQL基础

SQL的概述

·SQL的全程:Structured Query Language,结构化查询语言,用于访问和处理数据库的标准的计算机语言。

SQL语言的分类

由于数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账号管理、权限管理等等。

所以,操作数据库的SQL语言,也基于功能,可以划分为4类:

·数据定义:DDL(Data Definition Language)

​ ·库的创建删除、表的创建删除等

·数据操纵:DML(Data Mainpulation Language)

​ ·新增数据、删除数据、修改数据等等

·数据控制:DCL(Data Control Language)

​ ·新增用户、删除用户、密码修改、权限管理等等

·数据查询:DQL(Data Query Language)

​ ·基于需求查询和计算数据

SQL的语法特征

在学习DDL、DQL等之前,我们先来了解 SQL的语法特征。

·SQL语言,大小写不敏感

·SQL可以单行或多行书写,最后以;号结束

·SQL支持注释:
·单行注释:-- 注释内容(–后边一定要有一个空格)

​ ·单行注释:# 注释内容(# 后面可以不加空格,推荐加上)

​ ·多行注释:/*注释内容*/

DDL-库管理

查看数据库

show databases;

使用数据库

use 数据库名称;

创建数据库

create database 数据库名称 [charset UTF8];

删除数据库

drop database 数据库名称;

查看当前数据库

slect database();

DDL-表管理

查看有哪些表

show tables;

删除表

drop table 表名称;
drop table if exists 表名称;

创建表

create table 表名称(
	列名称 列类型,
	列名称 列类型,
	...........
	列名称 列类型);
--列类型有
int					---整数
float				---浮点数
varchar(长度)			---文本,长度为数字,做最大长度限制
data				---日期类型
timestamp			---时间类型

SQL-DML

DML

DML是指数据操作语言,英文全称是 Data Mainpulation Language,用来对数据库中表的数据记录进行更新。

关键字:

·插入insert

·删除delete

·更新updata

数据插入INSERT

基本语法:

INSERT INTO 表[(列2,列2,......,列N)] VALUES(值1,值2,........,值N),(值1,值2,........,值N),........(值1,值2,........,值N);

数据删除DELETE

基本语法:

DELETE FROM 表名称 [WHERE 条件判断]
条件判断:列 操作符 值
操作符 = < > <= >= !=等等

数据更新UPDATA

基础语法:

UPDATA 表名 SET 列=值 [WHERE 条件判断]

注意事项

字符串的值,出现SQL语句中,必须要用单引号包围起来

SQL-DQL

基本查询

在SQL中,通过SELECT关键字开头的SQL语句,来进行数据的查询

基础语法:

SELECT 字段列表|* FROM 表

含义就是:

从(FROM)表中,选择(SELECT)某些 列进行展示

过滤查询的语法

SELECT 字段列表|* FROM 表SELECT WHERE 条件判断

分组聚合

分组聚合应用场景非常多,如:统计班级中,男生和女生的人数。

这种需求就是需要:

·按性别分组

·统计每个组的人数

这就称之为:分组聚合

基础语法:

SELECT 字段|聚合函数 FROM 表 [WHERE 条件] GROUP BY 列
聚合函数有:
-SUM(列)	求和
-AVG(列)	求平均值
-MIN(列)	求最小值
-MAX(列)	求最大值
-COUNT(列|*)	求数量

GROUP BY 中出现哪个列,那个列才能出现在SELECT中的非聚合中

排序分页

结果排序

可以对查询的结果,使用ORDER BY关键字,指定某个列进行排序,语法:

SELECT 列|聚合函数 * FROM 表
WHERE ......
GROUP BY ......
ORDER BY ...... [ASC | DESC]
LIMIT n[,m]

同样,可以使用LIMIT关键字,对查询结果进行数量限制或分页显示

截至到目前学习到的关键字,需注意:

​ ·WHERE、GROUP BY、 ORDER BY、LIMIT均可以省略

​ ·SELECT 和FROM是必写的

​ ·执行顺序:

FROM–> WHERE -->GROUP BY和聚合函数 -->SELECT -->ORDER BY -->LIMIT

Python & MySQL

基础使用

pymysql

除了使用图形化工具以外,我们也可以使用编程语言来执行SQL从而操作数据库

在python中,使用第三方库:pymysql来完成对MySQL数据库的操作

安装:

pip install pymysql

创建到MySQL的数据库链接

代码如下:

from pymysql import Connection
#获取到MySQL数据库的链接对象
conn = Connection(
	host = 'localhost',	#主机名(或IP地址)
	port = 3306,	#端口,默认3306
	user = 'root',	#账户名
	password = '123456'	#密码
)
#打印MySQL数据库软件信息
print(conn.get_server_info())
#关闭到数据库的链接
conn.close()

执行SQL语句

演示,执行非查询性质的sql语句:

from pymysql import Connection
#获取到MySQL数据库的链接对象
conn = Connection(
	host = 'localhost',	#主机名(或IP地址)
	port = 3306,	#端口,默认3306
	user = 'root',	#账户名
	password = 'root'	#密码
)
#获取游标对象
cursor = conn.cursor()
#选择数据库
conn.select_db("test")
#使用游标对象,执行sql语句
cursor.execute("create table test_pymysql(id int ,info varchar(255))")
#关闭到数据库的链接
conn.close()

执行查询性质的sql语句:

from pymysql import Connection
#获取到MySQL数据库的链接对象
conn = Connection(
	host = 'localhost',	#主机名(或IP地址)
	port = 3306,	#端口,默认3306
	user = 'root',	#账户名
	password = 'root'	#密码
)
#获取游标对象
cursor = conn.cursor()
#选择数据库
conn.select_db("test")
#使用游标对象,执行sql语句
cursor.execute("select * from student")
#获取查询结果
results:tuple = cursor.fetchall()
for r in results:
    print(r)
#关闭到数据库的链接
conn.close()

如何获取链接对象

​ ·from pymysql import Connection 导包

​ ·Connection(主机,端口,账户,密码)即为可得到链接对象

​ ·链接对象.close()关闭和MySQL数据库的连接

如何执行SQL查询

通过连接对象调用cursor()方法,得到游标对象

​ ·游标对象.execute()执行SQL语句

​ ·游标对象.fetchall()得到全部的查询结果封装入元组内

数据插入

commit提交

#示例
from pymysql import Connection
#获取到MySQL数据库的链接对象
conn = Connection(
	host = 'localhost',	#主机名(或IP地址)
	port = 3306,	#端口,默认3306
	user = 'root',	#账户名
	password = 'root'	#密码
)
#获取游标对象
cursor = conn.cursor()
#选择数据库
conn.select_db("test")
#使用游标对象,执行sql语句
cursor.execute("insert into student values(1001,'张三',31,'男')")
#通过commit确认
conn.commit()
#关闭到数据库的链接
conn.close()

没有commit确认,经过执行是无法将数据插入到数据表student中的。

pymysql在执行数据插入或其它产生的数据更改的SQL语句时,默认时需要提交更改的,即,需要通过代码"确认"这种更改行为。

通过链接对象.commit()即可确认此行为。

自动commit

如果不想手动commit确认,可以在构建链接对象的时候,设置自动commit的属性。

#构建到MySQL数据库的链接
conn = Connection(
	host = 'localhost',	#主机名(或IP地址)
	port = 3306,	#端口,默认3306
	user = 'root',	#账户名
	password = 'root',	#密码
	autocommit = True	#设置自动提交
)

如上代码进行设置,即可自动提交无需手动commit了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trying and Harding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值