python连接mysql_MySQL数据库简单介绍及采用python连接MySQL并进行操作

,*1、什么是数据库

数据库(Database)简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作https://baike.baidu.com/item/数据库/103728?fr=aladdin。通俗来说,数据库即为一类仓库,类似于物资仓库存物资,这里存储的为数据,每个数据库都有一个或多个API用于创建、访问、管理、搜索和复制所保存的数据。

2、数据库的种类

数据库普遍分为关系型数据库和非关系型数据库。所谓关系型数据库,是建立在关系基础之上的,借助于某种关系来处理数据库中的数据;而非关系型数据库题主没用过,不清楚是啥东西,将来学习了之后再进行分享。

3、数据库的相关操作

3.1 数据库的安装、登录与退出

Ubuntu中安装Mysql:ctrl+Alt+T进行终端,输入sudo apt-get install mysql-server

数据库安装好之后,终端下输入mysql -uroot -p,之后输入数据库密码即可进入

退出数据库的方法,exit;/ctrl+D/quit;

3.2 数据库创建、删除

进入数据库之后,输入show databases; 显示目前存在的数据库名称

82ff9891803f11093856ca64efa7c4b3.png
show database;之后可以看到你目前有的数据库

查看数据库的目的在于在将来新建数据库时,与现有数据库的重名的库不要新建,因为这样无法新建成功,例如我新建一个数据库jing_dong,输入create database jingdong charset utf8;会提示Error信息,显示jing_dong数据库已经存在,将无法创建。

09521dd89bd3c8ec28b1ea0bad9f1ce7.png

上面同时也说明了如何创建数据库:create database +数据库名(别重复)charset utf8;

0a1ac2d2753224a1b230f90431d74c89.png
当创建成功后,会提示成功

数据库的删除,输入drop database +数据库名;

【SQL语言本身并不区分大小写,一般在后面与python连接是,SQL语言普遍都大写】

3.3 数据库中创建数据表

上文我们已经创建了一个test数据库,那么就在该库下面新建一个表,在建表之前,需要使用这个库,输入use text;

6b4e5be38034242bc14d9dafcd9ab051.png
当提示Database changed,说明已经在使用该数据库

然后,我们创建一个数据表,最近用到了几个历史文化名村,因此就以此为内容,建立数据表;

5cbda125f749dddcf030dfc822ee61d2.png
上图中第一列为各县的编码,第二列为县(区),第三列为地市,第四列为村名,五六列为坐标经度和维度,第七列为历史文化名村所在乡镇,第七列为电话号码,第八列为地址

为此,我们构造了数据表:

create 

e1e1af9e93b4ae8f20a0d06dc3aa5c30.png
显示数据表创建成功

说到创建数据表,必须说明SQL语言的数据类型,参考

MySQL 数据类型 | 菜鸟教程​www.runoob.com

如何查看我们创建的新表,可以输入show create table site;进行查看

af18e1f9deb2b53003a298a2841e3b13.png
约束语句可以有很多,自己可以通过学习不断熟悉

mysql与python结合,进行批量处理,这里为了避免一个一个输入,我采用了python与mysql相结合的方式进行批量处理。

import 

d77758bb06a4d2acbdacf70b3953f52a.png
由上图可看到,数据已经插入数据表中

3.3.1 插入数据

由上面的代码以及截图可知,插入数据代码为

insert into 数据表 values(0,330127212,'淳安县','杭州市','淳安芹川村',118.602673,29.52191,'浪川乡','1111222222','淳安县浪川乡');

大家可以将上面的代码输入之后看下效果,应该是插入到site数据表中了

3.3.2查询数据

select * from +数据表名

e019ce02d00b04b81623b127219da673.png

--条件查询

select 字段 from +数据表名

95561e3e5c74c3c6128fbf0e34bfdc5f.png
select id from site;

e772b4ad72c945bae90a8d2b5a36b9cf.png
select id,village from site;

select ... from +数据表名 where ....--->这类应用最为广泛

878681d2005548f82bea11221e71b132.png
select * from site where id =5

182adc127415f173f445be3016688b6e.png
select * from site where city='杭州市';

在条件查询中,比较运算符运用较多,其中包括:>、<、>=、<=、=、<>、!=、

--模糊查询

like:%替换一个或者多个;_替换1个

例1:如上述,我们想查询一个地址里包含'淳安县'的内容

select * from site where Address like "%淳安县%";

60a758b97db21b68e9eb807a64dc1f56.png

例2:我们要找一个乡镇,但是只知道中间为一个'孚'字,具体已经忘记了,

select * from site where Town like "_孚_";

0f99b73c9218488424008453026f49cb.png

rlike:正则表达式---->不知道正则表达式的可以去学习下,python爬虫中解析网页,用正则表达式很好使;

例1:查询村落名字以'上'字开头,以'村'字结尾的地址

select Address from site where village rlike "^上.*村$";

c34f8aeb19c1acee6d3670200df58623.png
看不懂上面的^ $,自己去看正则表达式

--排序

order by asc:升序,order by desc:降序

例1:将经度按照从大到小排

select * from site order by Lng desc;

c942971cbadea988b8fd3788773396bd.png

--聚合/分组

count计数,分别统计杭州市和湖州市的个数

select count(*) from site group by city;

bc7acb5d03aadf79c312fe198d2707ee.png

我去,这也不知道谁对谁啊,

select city,count(*) from site group by city;

9db0c700d9a5aed015fa0e431f55cc88.png

我想查询下,杭州市的历史文化名村中纬度最大的村名

select village,max(Lat) as 纬度最大 from site where city = '杭州市';

3da615bbc15bfbcdb014144900264ffd.png

这是啥意思,欺负我不懂英语,你给我用汉语

select village as 村庄, max(Lat) as 纬度最大 from site where city = '杭州市';

fc7bea2ef06ce8ee476166b6f100d93c.png

单表查询就先到这儿!将来有机会再写多表查询。

--删除数据表

物理删除(基本不用,你可以忘了)

delete from site;删除数据表

逻辑删除

update site set 列名 where 条件

--插入数据

Insert into classes values(*,*,*,*,*,*,*,*,*)

删除用的很少,插入数据前面已经介绍。目前逻辑显得较为混乱,因为自己也是初学,以后渗入后好好梳理下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值