
数据库
youyouwuxin1234
博主:忧忧吾心
学历:2017.09-2019.07 硕士 - 武汉大学 软件工程
2013.08-2017.06 本科 - 郑州大学 计算机科学与技术
工作:2019.07.02-2021.11.16,在美的集团IT部门国际事业部从事软件开发工作
2021.11.22-2021.12.31,在新华三大数据有限公司从事软件研发
2022.01.01-2023年,在紫光集团紫光云技术有限公司从事软件研发工作
2024年至今在河南工业大学工作
其他:代表公司参加过2019年杭州阿里巴巴云栖大会
兴趣:爱生活、爱学习、爱运动、爱旅行、爱美食。
展开
-
26.Python修炼之路【30-查询】2018.05.25
一、简介查询的基本语法select * from 表名; from关键字后面写表名,表示数据来源于是这张表select后面写表中的列名,如果是*表示在结果中显示表中所有列在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中如果要查询多个列,之间使用逗号分隔二、消除重复行在select后面列前使用distinct可以消除重复的行select distinct gender f...原创 2018-05-25 15:53:12 · 119 阅读 · 0 评论 -
53.Python修炼之路【58-MongoDB-投影&排序】
投影在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可语法:参数为字段与值,值为1表示显示,值为0不显示db.集合名称.find({},{字段名称:1,...}) 对于需要显示的字段,设置为1即可,不设置即为不显示特殊:对于_id列默认是显示的,如果不显示需要明确设置为0例1db.stu.find({},{name:1...原创 2018-06-13 17:01:54 · 135 阅读 · 0 评论 -
54.Python修炼之路【59-MongoDB-统计个数&消除重复】2018.06.13
统计个数方法count()用于统计结果集中文档条数语法db.集合名称.find({条件}).count() 也可以与为db.集合名称.count({条件}) 例1:统计男生人数db.stu.find({gender:1}).count() 例2:统计年龄大于20的男生人数db.stu.count({age:{$gt:20},gender:1})消除重复方法distinct()对数据进行去重语法db...原创 2018-06-13 17:10:14 · 910 阅读 · 0 评论 -
55.Python修炼之路【60-MongoDB高级操作-聚合 aggregate】2018.06.13
聚合 aggregate聚合(aggregate)主要用于计算数据,类似sql中的sum()、avg()语法db.集合名称.aggregate([{管道:{表达式}}]) 管道管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的输入ps ajx | grep mongo 在mongodb中,管道具有同样的作用,文档处理完毕后,通过管道进行下一次处理常用管道$group:将集合中...原创 2018-06-13 17:41:15 · 833 阅读 · 0 评论 -
28.Python修炼之路【32-查询之聚合】2018.05.31
聚合为了快速得到统计数据,提供了5个聚合函数count(*)表示计算总行数,括号中写星与列名,结果是相同的查询学生总数select count(*) from students; max(列)表示求此列的最大值查询女生的编号最大值select max(id) from students where gender=0; min(列)表示求此列的最小值查询未删除的学生最小编号select min(id...原创 2018-05-31 12:15:07 · 218 阅读 · 0 评论 -
29.Python修炼之路【33-查询之分组】2018.05.31
分组按照字段分组,表示此字段相同的数据会被放到一个组中分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中可以对分组后的数据进行统计,做聚合运算语法:select 列1,列2,聚合... from 表名 group by 列1,列2,列3... 查询男女生总数select gender as 性别,count(*) from students group by gender; 查询...原创 2018-05-31 14:34:14 · 206 阅读 · 0 评论 -
56.Python修炼之路【61-MongoDB-安全】2018.06.14
超级管理员 为了更安全的访问mongodb,需要访问者提供用户名和密码,于是需要在mongodb中创建用户 采用了角色-用户-数据库的安全管理方式 常用系统角色如下: root:只在admin数据库中可用,超级账号,超级权限 Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 创建超级管理用户 use admin db.createUser({ ...原创 2018-06-14 12:38:09 · 127 阅读 · 0 评论 -
30.Python修炼之路【34-查询之排序】2018.05.31
排序为了方便查看数据,可以对数据进行排序语法:select * from 表名 order by 列1 asc|desc,列2 asc|desc,... 将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推默认按照列值从小到大排列asc从小到大排列,即升序desc从大到小排序,即降序查询未删除男生学生信息,按学号降序select * from students where ...原创 2018-05-31 15:01:18 · 199 阅读 · 0 评论 -
31.Python修炼之路【35-查询之分页】2018.05.31
获取部分行当数据量过大时,在一页中查看数据是一件非常麻烦的事情语法select * from 表名 limit start,count 从start开始,获取count条数据start索引从0开始示例:分页已知:每页显示m条数据,当前显示第n页求总页数:此段逻辑后面会在python中实现查询总条数p1使用p1除以m得到p2如果整除则p2为总数页如果不整除则p2+1为总页数求第n页的数据select...原创 2018-05-31 15:57:04 · 301 阅读 · 0 评论 -
32.Python修炼之路【36-总结】2018.05.31
总结完整的select语句select distinct * from 表名 where .... group by ... having ... order by ... limit star,count 执行顺序为:from 表名where ....group by ...select distinct *having ...order by ...limit star,count实际使用中,...原创 2018-05-31 16:18:03 · 189 阅读 · 0 评论 -
33.Python修炼之路【37-关系】2018.05.31
关系创建成绩表scores,结构如下id学生科目成绩思考:学生列应该存什么信息呢?答:学生列的数据不是在这里新建的,而应该从学生表引用过来,关系也是一条数据;根据范式要求应该存储学生的编号,而不是学生的姓名等其它信息同理,科目表也是关系列,引用科目表中的数据创建表的语句如下create table scores( id int primary key auto_increment, stuid i...原创 2018-05-31 16:23:03 · 178 阅读 · 0 评论 -
42.Python修炼之路【47-查询】2018.06.07
查询一行数据 fetchone()创建testSelectOne.py文件,查询一条学生信息#encoding=utf8 import MySQLdb try: conn=MySQLdb.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysql',charset='utf8') cur=conn...原创 2018-06-07 15:57:34 · 103 阅读 · 0 评论 -
43.Python修炼之路【48-封装】2018.06.07
封装观察前面的文件发现,除了sql语句及参数不同,其它语句都是一样的创建MysqlHelper.py文件,定义类#encoding=utf8 import MySQLdb class MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset='utf8'): self.host=host ...原创 2018-06-07 15:59:45 · 93 阅读 · 0 评论 -
44-Python修炼之路【49-用户登录】2018.06.07
实例:用户登录创建用户表userinfos表结构如下idunameupwdisdelete注意:需要对密码进行加密如果使用md5加密,则密码包含32个字符如果使用sha1加密,则密码包含40个字符,推荐使用这种方式create table userinfos( id int primary key auto_increment, uname varchar(20), upwd char(40), ...原创 2018-06-07 16:01:32 · 141 阅读 · 0 评论 -
57.Python修炼之路【62-MongoDB-索引】2018.06.14
原创 2018-06-14 15:37:51 · 180 阅读 · 0 评论 -
58.Python修炼之路【63-MongoDB-复制】2018.06.14
复制(副本集)什么是复制复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性复制还允许从硬件故障和服务中断中恢复数据为什么要复制数据备份数据灾难恢复读写分离高(24* 7)数据可用性无宕机维护副本集对应用程序是透明复制的工作原理复制至少需要两个节点A、B...A是主节点,负责处理客户端请求其余的都是从节点,负责复制主节点上的数据节点常见的搭配方式为:一...原创 2018-06-14 17:44:20 · 103 阅读 · 0 评论 -
59.Python修炼之路【64-MongoDB-备份与恢复】2018.06.15
备份语法mongodump -h dbhost -d dbname -o dbdirectory -h:服务器地址,也可以指定端口号-d:需要备份的数据库名称-o:备份的数据存放位置,此目录中存放着备份出来的数据例1sudo mkdir test1bak sudo mongodump -h 192.168.196.128:27017 -d test1 -o ~/Desktop/test1bak 恢...原创 2018-06-15 15:02:07 · 111 阅读 · 0 评论 -
52.Python修炼之路【57-MongoDB--Limit&Skip】2018.06.13
Limit方法limit():用于读取指定数量的文档语法:db.集合名称.find().limit(NUMBER) 参数NUMBER表示要获取文档的条数如果没有指定参数则显示集合中的所有文档例1:查询2条学生信息db.stu.find().limit(2) skip方法skip():用于跳过指定数量的文档语法:db.集合名称.find().skip(NUMBER) 参数NUMBER表示跳过的记录条...原创 2018-06-13 16:44:24 · 200 阅读 · 0 评论 -
51.Python修炼之路【56-MongoDB数据查询】2018.06.13
数据查询基本查询方法find():查询db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个db.集合名称.findOne({条件文档}) 方法pretty():将结果格式化db.集合名称.find({条件文档}).pretty() 比较运算符等于,默认是等于判断,没有运算符小于$lt小于或等于$lte大于$gt大于或等于$gte不等于$ne例1:查询名称等于'gj'...原创 2018-06-13 15:04:20 · 104 阅读 · 0 评论 -
50.Python修炼之路【55-MongoDB数据操作】2018.06.13
插入语法db.集合名称.insert(document) 插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId例1db.stu.insert({name:'gj',gender:1}) 例2s1={_id:'20160101',name:'hr'} s1.gender=0 db.stu.insert(s1) 简单查询语法db.集合名称.find() 更新语法db....原创 2018-06-13 15:02:59 · 149 阅读 · 0 评论 -
27.Python修炼之路【31-查询之条件】2018.05.25
条件使用where子句对表中的数据筛选,结果为true的行会出现在结果集中语法如下:select * from 表名 where 条件; 比较运算符等于=大于>大于等于>=小于<小于等于<=不等于!=或<>查询编号大于3的学生select * from students where id>3; 查询编号不大于4的科目select * from subjec...原创 2018-05-25 15:54:50 · 126 阅读 · 0 评论 -
25.Python修炼之路【29-MySql】2018.05.24
一、简介mysql数据库,是当前应用非常广泛的一款关系型数据库查看官方网站 https://www.mysql.com/查看数据库排名主要知识点包括:数据库与表的操作数据的增加、修改、删除数据的查询(重点)与python交互...原创 2018-05-24 10:08:33 · 124 阅读 · 0 评论 -
34.Python修炼之路【38-关联】2018.06.05
自关联设计省信息的表结构provincesidptitle设计市信息的表结构citysidctitleproidcitys表的proid表示城市所属的省,对应着provinces表的id值问题:能不能将两个表合成一张表呢?思考:观察两张表发现,citys表比provinces表多一个列proid,其它列的类型都是一样的意义:存储的都是地区信息,而且每种信息的数据量有限,没必要增加一个新表,或者将来...原创 2018-06-05 11:30:37 · 106 阅读 · 0 评论 -
35.Python修炼之路【39-连接】2018.06.05
先看个问题问:查询每个学生每个科目的分数分析:学生姓名来源于students表,科目名称来源于subjects,分数来源于scores表,怎么将3个表放到一起查询,并将结果显示在同一个结果集中呢?答:当查询结果来源于多张表时,需要使用连接查询关键:找到表间的关系,当前的关系是students表的id---scores表的stuidsubjects表的id---scores表的subid则上面问题的...原创 2018-06-05 11:51:22 · 137 阅读 · 0 评论 -
37.Python修炼之路【42-索引】2018.06.05
事务当一个业务逻辑需要多个sql完成时,如果其中某条sql语句出错,则希望整个操作都退回使用事务可以完成退回的功能,保证业务逻辑的正确性事务四大特性(简称ACID)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致隔离性(Isolation):事务的执行...原创 2018-06-05 16:00:47 · 168 阅读 · 0 评论 -
38.Python修炼之路【43-总结&amp;复习】2018.06.05
总结关系的存储连接查询自关联子查询常用内置函数视图事务作业设计班级表,与学生表关联,并进行查询设计分类表,自关联,并进行查询创建视图存储上面的两个查询...原创 2018-06-05 17:04:32 · 99 阅读 · 0 评论 -
39.Python修炼之路【44-内置函数】2018.06.05
字符串函数查看字符的ascii码值ascii(str),str是空串时返回0select ascii('a'); 查看ascii码值对应的字符char(数字)select char(97); 拼接字符串concat(str1,str2...)select concat(12,34,'ab'); 包含字符个数length(str)select length('abc'); 截取字符串left(str...原创 2018-06-05 17:16:47 · 122 阅读 · 0 评论 -
35.Python修炼之路【40-视图】2018.06.05
视图对于复杂的查询,在多次使用后,维护是一件非常麻烦的事情解决:定义视图视图本质就是对查询的一个封装定义视图create view stuscore as select students.*,scores.score from scores inner join students on scores.stuid=students.id; 视图的用途就是查询select * from stusco...原创 2018-06-05 14:23:59 · 118 阅读 · 0 评论 -
36.Python修炼之路【41-事务】2018.06.05
事务当一个业务逻辑需要多个sql完成时,如果其中某条sql语句出错,则希望整个操作都退回使用事务可以完成退回的功能,保证业务逻辑的正确性事务四大特性(简称ACID)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致隔离性(Isolation):事务的执行...原创 2018-06-05 15:25:36 · 117 阅读 · 0 评论 -
45.Python修炼之路【50-MongoDB】2018.06.12
简介 MongoDB 是一个基于分布式文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模式自由 :可以把不同结构的文档存储在同一个数据库里 面向集合的存储:适合存储 JSON风格文件的形式 完整的索引支持:对任何属性可索引 复制和高可用性:支持服务器之间的数据复制,支持主-从...原创 2018-06-12 17:04:30 · 121 阅读 · 0 评论 -
46.Python修炼之路【51-MongoDB基本操作】2018.06.12
基本操作 MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成 MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组、文档数组 安装管理mongodb环境 完成数据库、集合的管理 数据的增加、修改、删除、查询 名词 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据...原创 2018-06-12 17:08:56 · 127 阅读 · 0 评论 -
47.Python修炼之路【52-MongoDB安装】2018.06.12
安装 下载mongodb的版本,两点注意 根据业界规则,偶数为稳定版,如1.6.X,奇数为开发版,如1.7.X 32bit的mongodb最大只能存放2G的数据,64bit就没有限制 到官网,选择合适的版本下载 解压 tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.4.0.tgz 移动到/usr/local/目录下 sudo mv -...原创 2018-06-12 17:14:41 · 108 阅读 · 0 评论 -
40.Python修炼之路【45-MySql与Python交互】2018.06.06
安装引入模块安装mysql模块sudo apt-get install python-mysql 在文件中引入模块import Mysqldb Connection对象用于建立与数据库的连接创建对象:调用connect()方法conn=connect(参数列表) 参数host:连接的mysql主机,如果本机是'localhost'参数port:连接的mysql主机的端口,默认是3306参数db:数...原创 2018-06-06 12:28:03 · 119 阅读 · 0 评论 -
41.Python修炼之路【46-增加&修改&删除】2018.06.06
增加创建testInsert.py文件,向学生表中插入一条数据#encoding=utf-8 import MySQLdb try: conn=MySQLdb.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysql',charset='utf8') cs1=conn.cursor() c...原创 2018-06-06 12:46:30 · 138 阅读 · 0 评论 -
48.Python修炼之路【53-MongoDB集合创建】2018.06.13
集合创建 语法 db.createCollection(name, options) name是要创建的集合的名称 options是一个文档,用于指定集合的配置 选项参数是可选的,所以只需要到指定的集合名称。以下是可以使用的选项列表: 例1:不限制集合大小 db.createCollection("stu") 例2:限制集合大小,后面学会插入语句后可以查看效果 参数cap...原创 2018-06-13 12:27:10 · 116 阅读 · 0 评论 -
49.Python修炼之路【54-MongoDB数据类型】2018.06.13
数据类型下表为MongoDB中常用的几种数据类型:Object ID:文档IDString:字符串,最常用,必须是有效的UTF-8Boolean:存储一个布尔值,true或falseInteger:整数可以是32位或64位,这取决于服务器Double:存储浮点值Arrays:数组或列表,多个值存储到一个键Object:用于嵌入式的文档,即一个值为一个文档Null:存储Null值Timestamp:...原创 2018-06-13 12:29:36 · 150 阅读 · 0 评论 -
60.Python修炼之路【65-MongoDB-与Python交互】2018.06.15
原创 2018-06-15 15:04:50 · 141 阅读 · 0 评论