1.Mysql工具
一般来说,我们是使用navicat的,当然如果有基础的可以直接cmd,去做mysqld操作,也可以使用SQLyog可视化工具,我们这里以navicat为例。
windows下载地址链接:https://pan.baidu.com/s/1xZPCAX1WZ_AfBj41Ts-BkQ 提取码:yyds
mac啥的自行找一下哈。
1.连接数据库
一般点击连接>MySQL,然后就可以进行地址链接设置,根据后端所发给你的内容进行链接
连接名可以随便输入,只要你能分得清楚哪个是你当前项目的信息即可
主机必须是后端发给你的IP地址哈
端口一般都是3306,后端发的链接也会有的
密码就让他发给你就好,当然如果已经连接过也可以查看但是要解密,一会给大家看一下哈
最后点击连接测试,如下图所示就可以了
连接成功后,我们就可以看到这个地址内所有的链接库了
找到我们所需要查看的某一个库,去里面就可以看到项目里所用到的表了,我们可以对这些表做数据查看,以及数据规整,当然尽可能不去直接操作测试环境库的数据,禁止操作预发生产环境的数据啊!
2.navicat常用操作
这个操作也是自己项目过程中,以及之前使用熟悉上理解出来的哈,还有什么骚操作欢迎补充。另外,这里我们不考虑前端做导表,导出数据相关操作,虽然在下之前也干过,有一些因为不同系统的问题也会有一些坑,后面有时间的话可以去做补充,但是这些和前端开发关系基本极少,这里不做整理,类比只是对已建好的房屋做一些分析查看。
1.查看字段名称
这个操作可以说是屡试不爽,先说场景,比如你在开发新功能的时候,一定会去看后端接口文档,然后有些字段你可能没有找到,当然可以问,不过回复及不及时我不知道。最快的当然是直接看库了,没有字段直接找他就好,而且一般规范的库都会对创建表的时候增加注释,我这里是个人库,只是举个例子:
如果有的话,会在每一行字段后增加注释的话,如何查看记得点击右上角那个蓝色的哈。
2.筛选指定字段
这个方法对于不会写SQL语句的前端开发来说,可以说是及其有用了,操作极其简单,点击筛选>然后选择指定字段,去做一个匹配就可以实现类似
的效果,点击应用即可生效:
当然,它也支持多选,可以做多项筛选:
用起来还是极为方便的,另外,他也可以做排序处理,实现order by的效果:
可以进行每一项的排序操作,基本实现了七成的查询功能,对前端来说基本够用。
另外,对于修改的相关操作,这里不做描述,比较基本,可以进行全列修改以及某单一值修改,记得点击左下角的√保存即可。
3.SQL语句的学习
sql语句这部分,对于前端开发的小伙伴们,我主要说一下查询,对于增加,删除,修改也会介绍一点,另外,对于创建表,创建索引,触发器以及存储过程就不做介绍了,后面需要自己搭建环境做后端的话再做补充。
1.查询语句
查询语句是基于Select做一些增加条件的语句,这里我们的表格采用allfiles,我们这里举几个常用的例子:
1.查询表格全量数据
SELECT * FROM allfiles;
*表示所有数据,这句话可以查询到allfiles表的所有数据
2.查询id为5的数据
SELECT * FROM allfiles where id="5";
3.查询id不为5的数据
SELECT * FROM allfiles where id<>"5";
这里要注意不等于的写法。
4.查询id不为5的数据,并且从大到小排序
SELECT * FROM allfiles where id<>"5" ORDER BY id desc;
这里注意desc和asc分别是从大到小和从小到大
5.查询id不为5,并且要按照type类型进行计数,并按照从大到小排序,结果展示type和每一个type的总数
SELECT count(*),type FROM allfiles where id<>"1" GROUP BY type ORDER BY count(*) desc;
这个入门者可能理解就差点意思,这里大致说一下,count(*)就是计算一个条数的计数总和,group by是按照type进行整理分组。
6.查询id不为1,并且要按照type类型进行计数,并按照从大到小排序,筛选出,每一种type出现大于1的结果,结果展示type和每一个type的总数。
SELECT count(*),type FROM allfiles where id<>"1" GROUP BY type HAVING count(*) > 1 ORDER BY count(*) desc;
这个语句大体上就包括了现在入门所有的基础字段使用场景,我整个解析一下这句话:
SELECT count(*),type FROM allfiles GROUP BY type->查询allfiles表中按照type整理每一种出现的数量以及类型名称
where id<>"1"->查询id不等于1的
HAVING count(*) > 1-> 新得到的字段中每一种类型总数大于1的
ORDER BY count(*) desc->按照出现个数总数从大到小排序
我们还可以给某个新的字段设置别名,使用as关键字,可以把这句话改写为:
SELECT count(*) as allCount,type FROM allfiles where id<>"1" GROUP BY type HAVING allCount > 1 ORDER BY count(*) desc;
6.双表查询,查询allfiles表和wjyzhixing表里size大小一样的数据的两allfiles的id和wjyzhixing的id
select wjyzhixing.id as wjyzhixingId,allfiles.id as allfilesId from allfiles,wjyzhixing where allfiles.size=wjyzhixing.size
这里还有一些多表查询的其他关键字,比如INNER JOIN,LEFT JOIN,RIGHT JOIN等,后面需要细致使用再做更新。
2.增加语句
1.对allfiles表增加一条LastName为1,hashName为2,lastTime为3,size为4,download为5的数据
INSERT INTO allfiles(LastName,hashName,lastTime,size,download) VALUES(1,2,3,4,5)
这里我就做一个例子,根据这个句子可以进行增加,其他的相关操作可自行查找学习。
3.修改语句
1.对allfiles表里面LastName为1的数据,将他们额download改成100
UPDATE allfiles SET download='100' where LastName='1'
这里我也只举这一个例子,其他的可以去自行学习。
4.删除语句
1.删除allifiles表里id为19的数据
DELETE from allfiles WHERE id=19
2.按照id降序排序,删除size为4的前五项数据
DELETE from allfiles WHERE size=4 LIMIT 5;
这两个删除基本可以包括现在常用的部分主要是根据筛选条件做删除。
到这里,前端来说的SQL语句基本介绍的差不多了。
3.附录
这里整理几个小问题,可能对大家有所帮助哈
1.对已经连接的库忘了密码咋办?
这个其实是很常见的,比如说你已经连接了测试库,但是你可能并不能背下来库的密码(这很正常啊),然后后端和你的聊天记录可能不好找,或者说是后端口头给你说的密码,这样可能测试小姐姐找你要库的时候你就会很尴尬,说自己连了库但是不能让她连上,这样就用到了这个知识点。
我整理了比较快的一些方法,防止下次再出现问题,一次操作,终生可用哈哈。首先需要下载一下我的这个链接,我的也是从大神的github拉下来的哈,防止速度尴尬:
链接:https://pan.baidu.com/s/11X0eGPf_Og6tcxRoJ7eQAg 提取码:yyds
下载之后我们进入到python3目录,前提你的电脑要有python3的环境哈,然后安装一下这俩包
pip install pycryptodome pip install pypiwin32
安装好之后,进入到项目的python3目录哈,执行我下面这个代码就可以了:
下面这个输出的就是实际的密码啦!
哦对了,忘了重要的一点,我怎么获取到加密的密码哈:
我们点击文件>导出连接,然后选择自己的库,勾选到处密码就ok啦。
然后我们就获取到一个ncx文件,大概是这样:
<Connections Ver="1.4"> <Connection ConnectionName="localhost_3306" ProjectUUID="" ConnType="MYSQL" OraConnType="" ServiceProvider="Default" Host="localhost" Port="3306" Database="" OraServiceNameType="" TNS="" MSSQLAuthenMode="" MSSQLAuthenWindowsDomain="" DatabaseFileName="" UserName="root" Password="550B6D30C73488FF1363A32EE28366CB" SavePassword="true" SettingsSavePath="C:\Users\浩鲸新智能\Documents\Navicat\MySQL\Servers\localhost_3306" SessionLimit="0" Encoding="0" Keepalive="false" KeepaliveInterval="240" MySQLCharacterSet="true" Compression="false" AutoConnect="false" NamedPipe="false" NamedPipeSocket="" OraRole="" OraOSAuthen="false" SQLiteEncrypt="false" SQLiteEncryptPassword="" SQLiteSaveEncryptPassword="false" UseAdvanced="false" SSL="false" SSL_Authen="false" SSL_PGSSLMode="REQUIRE" SSL_ClientKey="" SSL_ClientCert="" SSL_CACert="" SSL_Clpher="" SSL_PGSSLCRL="" SSH="false" SSH_Host="" SSH_Port="22" SSH_UserName="" SSH_AuthenMethod="PASSWORD" SSH_Password="" SSH_SavePassword="false" SSH_PrivateKey="" SSH_Passphrase="" SSH_SavePassphrase="false" SSH_Compress="false" HTTP="false" HTTP_URL="" HTTP_PA="" HTTP_PA_UserName="" HTTP_PA_Password="" HTTP_PA_SavePassword="" HTTP_EQ="" HTTP_CA="" HTTP_CA_ClientKey="" HTTP_CA_ClientCert="" HTTP_CA_CACert="" HTTP_CA_Passphrase="" HTTP_Proxy="" HTTP_Proxy_Host="" HTTP_Proxy_Port="" HTTP_Proxy_UserName="" HTTP_Proxy_Password="" HTTP_Proxy_SavePassword=""/> </Connections>
我们直接把Password="550B6D30C73488FF1363A32EE28366CB"取出来,这个值去做解密就好啦。