,*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; 显示目前存在的数据库名称
查看数据库的目的在于在将来新建数据库时,与现有数据库的重名的库不要新建,因为这样无法新建成功,例如我新建一个数据库jing_dong,输入create database jingdong charset utf8;会提示Error信息,显示jing_dong数据库已经存在,将无法创建。
上面同时也说明了如何创建数据库:create database +数据库名(别重复)charset utf8;
数据库的删除,输入drop database +数据库名;
【SQL语言本身并不区分大小写,一般在后面与python连接是,SQL语言普遍都大写】
3.3 数据库中创建数据表
上文我们已经创建了一个test数据库,那么就在该库下面新建一个表,在建表之前,需要使用这个库,输入use text;
然后,我们创建一个数据表,最近用到了几个历史文化名村,因此就以此为内容,建立数据表;
为此,我们构造了数据表:
create
说到创建数据表,必须说明SQL语言的数据类型,参考
MySQL 数据类型 | 菜鸟教程www.runoob.com如何查看我们创建的新表,可以输入show create table site;进行查看
mysql与python结合,进行批量处理,这里为了避免一个一个输入,我采用了python与mysql相结合的方式进行批量处理。
import
3.3.1 插入数据
由上面的代码以及截图可知,插入数据代码为
insert into 数据表 values(0,330127212,'淳安县','杭州市','淳安芹川村',118.602673,29.52191,'浪川乡','1111222222','淳安县浪川乡');
大家可以将上面的代码输入之后看下效果,应该是插入到site数据表中了
3.3.2查询数据
select * from +数据表名
--条件查询
select 字段 from +数据表名
select ... from +数据表名 where ....--->这类应用最为广泛
在条件查询中,比较运算符运用较多,其中包括:>、<、>=、<=、=、<>、!=、
--模糊查询
like:%替换一个或者多个;_替换1个
例1:如上述,我们想查询一个地址里包含'淳安县'的内容
select * from site where Address like "%淳安县%";
例2:我们要找一个乡镇,但是只知道中间为一个'孚'字,具体已经忘记了,
select * from site where Town like "_孚_";
rlike:正则表达式---->不知道正则表达式的可以去学习下,python爬虫中解析网页,用正则表达式很好使;
例1:查询村落名字以'上'字开头,以'村'字结尾的地址
select Address from site where village rlike "^上.*村$";
--排序
order by asc:升序,order by desc:降序
例1:将经度按照从大到小排
select * from site order by Lng desc;
--聚合/分组
count计数,分别统计杭州市和湖州市的个数
select count(*) from site group by city;
我去,这也不知道谁对谁啊,
select city,count(*) from site group by city;
我想查询下,杭州市的历史文化名村中纬度最大的村名
select village,max(Lat) as 纬度最大 from site where city = '杭州市';
这是啥意思,欺负我不懂英语,你给我用汉语
select village as 村庄, max(Lat) as 纬度最大 from site where city = '杭州市';
单表查询就先到这儿!将来有机会再写多表查询。
--删除数据表
物理删除(基本不用,你可以忘了)
delete from site;删除数据表
逻辑删除
update site set 列名 where 条件
--插入数据
Insert into classes values(*,*,*,*,*,*,*,*,*)
删除用的很少,插入数据前面已经介绍。目前逻辑显得较为混乱,因为自己也是初学,以后渗入后好好梳理下。