自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 mysql 自连接

自连接自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是逻辑上是多张表。自连接通常用于表中的数据有层次结构,如区域表、菜单表、商品分类表等。自连接语法select A.column,B.columnfrom table A,table Bwhere A.column = B.column;创建表、插入数据create table area( id int not null auto_increment primary key comment '区域id', pid i

2021-02-01 14:48:14 291

原创 mysql 子查询in和exists的使用

子查询in、exists的使用子查询in我们已经知道运算符in,它允许我们在WHERE子句中过滤某个字段的多个值。where子句使用in语法select column_name from table_name where column_name in(value1,value2,...)如果运算符in后面的值是来源于某个查询结果,并非是指定的几个值,这时就需要用到子查询。子查询又称为内部查询或嵌套查询,即在SQL查询的WHERE子句中嵌入查询语句。子查询in语法select column_n

2021-02-01 14:47:24 616

原创 Mysql 表连接

表连接(内连接、外连接、自连接)表连接(join)是多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。表连接语法select table1.column,table2.columnfrom table1,table2where table1.column1 = table2.column; #连接条件各种表连接的区别连接类型定义内连接只连接匹配的行左连接包含左表的全部行(不管右表是否存在与之匹配的行), 以及右表中全部匹配的行右连

2021-02-01 14:46:29 262 1

原创 MySQL 图形化管理工具

MySQL的管理工具非常多,除了自带的命令行管理工具之外,还有许多其他的图形化管理工具。名称描述MySQL WorkbenchMySQL Workbench为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它是MySQL官方提供的图形化管理工具,功能很强大,值得推荐。HeidiSQLHeidiSQL是一款免费的软件,其目标是易于学习和使用,可用于MySQL、MariaDB、SQL Server和PostgreSQL。下载地址:https://

2021-01-22 22:14:54 255

原创 mysql binlog日志恢复误删的数据

MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。万一遇到数据丢失的紧急情况下,可以使用binlog日志进行数据恢复(定时全备份+binlog日志恢复增量数据部分)。使用binlog恢复误删的数据#查看binlog日志的状态show variables like '%log_bin%';#查看所有二进制日志列表show mast

2021-01-22 21:48:22 313

原创 mysql sql注入

sql注入是指应用程序对用户输入数据的合法性没有判断、没有过滤,攻击者可以在应用程序中通过表单提交特殊的字符串,该特殊字符串会改变sql的运行结果,从而在管理员毫不知情的情况下实现非法操作,以此来实现欺骗数据库执行非授权的任意查询。sql注入的特点广泛性:任何一个基于SQL语言的数据库都可能受到SQL注入攻击。很多开发人员都为了省事不对表单参数进行校验。隐蔽性:SQL注入语句一般都嵌入在普通的HTTP请求中,很难与正常语句区分开,SQL注入也有很多变种。危害大:攻击者通过SQL注入能够获取到更多数据

2021-01-22 16:30:18 134

原创 mysql 字符集

字符是各种文字和符合的总称,包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见的字符集有ASCII、GB2312、GBK、GB18030、Unicode等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。ASCII:最简单的西文编码方案,主要用于显示现代英语和其它西欧语言。使用1个字节表示,可表示128个字符。GB2312:国家标准简体中文字符集,兼容ASCII。使用2个字节表示,能表示7445

2021-01-22 14:50:19 166

原创 mysql 导入数据

在mysql中,可以使用load data语句将文本文件数据导入到对应的数据库表中,可以将load data语句看成是select…into outfile的反操作#示例use mydb;select * from employee;delete from employee;load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\employee.txt' into table employee character

2021-01-22 14:12:05 144

原创 mysql 定时备份数据库

完成定时备份数据库需要定时调度器和数据库备份脚本windows上实现定时备份mysqlschtasks.exe用于安排命令和程序在指定时间内运行或定期运行,它可以从计划表中添加和删除任务、按需要启动和停止任务、显示和更改计划任务。#备份数据库的脚本mysql_mydb_backup.batmysqldump -h localhost -uroot -proot mydb > e:\backup\mydb.sql #将备份数据的命令放进脚本里面#创建计划任务(每隔指定时间备份一次mysql)

2021-01-21 21:54:49 165

原创 mysql 导出数据的几种方式

在mysql中,可以使用select…into outfile语句将查询结果数据导出到文本文件。#select...into outfile示例#将数据放到文本文件中,其它数据库也能使用select * from employee into outfile 'D:\\employee.txt'fields terminated by ','enclosed by '"'lines terminated by '\r\n';这样的话会报错变量secure_file_priv取不同的值时,有

2021-01-20 17:36:44 7992

原创 mysql 复制表的几种方式

复制表的几种方式只复制表结构,包括主键、索引,但不会复制表数据create table tablename like sometable;只关注表数据,复制表的大体结构及全部数据,不会复制主键、索引等create table tablename select * from sometable;完整复制,包括表结构和数据create table tablename like sometable; #复制表结构insert into tablename select * from

2021-01-20 14:06:40 205

原创 mysql 预处理的基本使用

从mysql 4.1开始,就支持预处理语句,这大大提高了客户端和服务器端数据传输的效率。当创建一个预定义sql时,客户端向服务器发送一个sql语句的原型;服务器端接收到这个sql语句后,解析并存储这个sql语句的部分执行计划,返回给客户端一个sql语句处理句柄,以后每次执行这条sql,客户端都指定使用这个句柄。平时使用的sql是即时sql:一次编译、一次运行;预处理sql:一次编译、多次运行预处理的优势:高效执行重复sql、减少网络开销、更加安全mysql支持sql接口的预处理,即不使用二进制传输协

2021-01-19 16:28:00 262 2

原创 触发器实战:给新用户发邮件

触发器是用于监视某种情况并触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,对某张表进行insert、delete、update操作时就会触发执行它。创建触发器语法create trigger trigger_name trigger_time trigger_event on table_name for each row trigger_stmt参数说明:trigger_name:触发器名称trigger_time:触发时间,取值有before、

2021-01-19 15:43:00 199

原创 mysql 存储过程模拟给某个用户发送邮件

drop table if exists user_infodrop table if exists email_info#用户表create table user_info( id int not null auto_increment primary key, name varchar(30), email varchar(50))default charset=utf8;insert into user_info(id,name,email) values(1,'Lau','liuyo

2021-01-18 21:46:28 235

原创 mysql 存储过程的基本使用

存储过程是为了完成特定功能的sql语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行,类似于编程语言中的方法或函数。存储过程的优点:对sql语句封装,增强可复用性;可以隐藏复杂的业务逻辑、商业逻辑;支持接收参数,并返回结果存储过程的缺点:可移植性差,如果更换数据库,要重写存储过程;难以调试和拓展;无法使用explain对存储过程进行分析;《阿里粑粑java开发手册》中禁止使用存储过程存储过程示例:求两数之和#存储过程定义:求两数之和#声明语句结束符,在s

2021-01-18 16:09:30 122

原创 mysql 视图

视图是一个虚拟表,其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图的操作与对表的操作基本一致。视图中的数据是在使用视图时动态生成的,视图中的数据都存储在基表中。视图是对复杂查询语句的封装,简化了复杂的查询,使复杂的查询更易于理解和使用,可以隐藏一些敏感的信息,将权限限定到行列级别。视图是一个虚拟表,其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图的操作与对表的操作基本一致。视图中的数据是在使用视图时动态生成的,视图中的数据都存储在基表中。视图表的数据变化

2021-01-18 14:49:35 135

原创 mysql 分区表

分区表就是按照某种规则将同一张表的数据分段划分到多个位置存储。对数据的分区存储提高了数据库的性能,被分区存储的数据在物理上是多个文件,但在逻辑上仍然是一个表,对表的任何操作都跟没分区之前一样。在执行增、删、改、查操作时,数据库会自动找到对应的分区,然后执行操作。mysql从5.1.3开始支持分区分区表的好处:存储更多、便于管理、提升查询效率、并行处理、提高查询吞吐分区表中的四种类型mysql支持的分区类型包括Range、List、Hash和Key,其中Range最常用。Range分区:允许将数据划

2021-01-18 14:05:49 164

原创 Mysql 事物控制

什么是事物控制事物(Transaction)是指作为一个逻辑工作单位执行的一系列操作,这些操作要么全部成功,要么全部失败。事物确保对多个数据的修改作为一个单元来处理。在Mysql中,只有使用了Innodb存储引擎的数据库或表才支持事物。事物用于维护数据库的完整性,保证成批的sql语句要么都执行,要么都不执行。事物用于管理insert、update和delete语句。例如,张三在ATM机上给李四转账100元,在银行的业务系统中,主要会执行两步数据变更操作:从张三的账号减去100元;给李四的

2020-12-25 17:29:14 274

原创 Mysql 索引的使用

Mysql的日志类型日志是用于记录数据库的运行情况,以及用户对数据库执行的各类操作。当数据库发生故障时,可以根据日志分析和解决问题,从而对数据库进行恢复。日志描述重做日志(redo log)重做日志是一种物理格式的日志,记录的是物理数据页面的修改的信息,其redo log是顺序写入redo log file的物理文件中去的回滚日志(undo log)回滚日志是一种逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复至事物之前的状态,而不是从物理页面上操作实现的,这

2020-12-25 16:39:12 189

原创 Mysql DCL 用户管理、权限管理、禁止root用户远程登录、忘记root密码的解决办法

我们知道,SQL语言按照功能用途分为4类,分别是DDL、DML、DQL和DCL。其中,DCL是数据控制语言,主要用于管理用户和权限。在企业中,这部分工作通常是由DBA完成,一般开发人员很少接触。DCL主要能做什么?创建用户删除用户修改密码给用户赋予权限撤销用户权限Mysql的权限体系大致分为5个层级,全局层级、数据库层级、表层级、列层级和子程序层级层级描述全局层级适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *

2020-12-24 18:17:28 336 1

原创 Mysql group_concat、distinct

group_concat的应用场景及使用group_concat的应用场景使用group by可以分组统计每个部门有多少员工。假如,除了统计每个部门的员工数量之外,还想知道具体是哪些员工(员工列表),又该如何实现呢?group_concat的使用group_concat配合group by一起使用,用于将某一列的值按指定的分隔符进行拼接,Mysql默认的分隔符为逗号。group_concat语法group_concat([distinct] column_name [order by colum

2020-12-24 14:49:36 1057

原创 Mysql查询结果的排序和分页及group by、having的应用场景及使用

查询结果排序和分页order by的使用在SQL中,使用order by对查询结果集进行排序,可以按照一列或多列进行排序。order by语法select column_name1,column_name2from table_name1,table_name2order by column_name,column_name [ASC|DESC]说明:ASC表示按升序排列,DESC表示按降序排列。默认情况下,对列按升序排列。limit的使用在select语句中使用limit子句来

2020-12-23 17:35:22 796 1

原创 Mysql条件查询、内置函数和常用函数

在SQL中,insert、update、delete和select后面都能带where子句,用于插入、修改、删除或查询指定条件的记录SQL语句中使用where子句语法select column_name from table_name where column_name 运算符 value运算符描述=等于<>或!=不等于>大于<小于>=大于等于<=小于等于between and选取介于两个值之间

2020-12-23 15:51:03 579

原创 python练习(四)

"""题目描述输入一个表达式(用字符串表示),求这个表达式的值。保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。"""#四则运算while True: try: a=input().strip() a=a.replace('[','(') a=a.replace(']',')') a=a.replace('{','(')

2020-12-18 17:44:39 683 1

原创 Mysql数据库和表的操作

数据库操作mysql命令语句select version(); 查看数据库版本status; 查看数据库状态windows命令行net start mysql57 启动mysql服务net stop mysql57 停止mysql服务环境变量配置:mysql.exe的路径,这样每次启动mysql时,就不需要转到该路径才能使用mysqlmysql -h localhost -u root -p 连接mysqlmysql命令行客户端查看所有的数据库show databases;创建数据库

2020-12-15 18:00:22 260

原创 验证码自动识别登录

# 1.因为用户名和密码和验证码的name都是随机的,所以我们先要获取网页源代码,#然后提取出其中的name值# 2.获取到name和once的值以后,再通过调用https://www.v2ex.com/sigin接口,把数据#通过post请求发送过去# 3.还需要使用云打码平台去自动识别验证码import requestsfrom lxml import etreefrom 反爬虫攻防实战.验证码识别.fateadm_api import recognize_captchalogin_

2020-12-11 18:00:06 530

原创 python练习(三)

#密码强度等级"""题目描述密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。一、密码长度:5 分: 小于等于4 个字符10 分: 5 到7 字符25 分: 大于等于8 个字符二、字母:0 分: 没有字母10 分: 全都是小(大)写字母20 分: 大小写混合字母三、数字:0 分: 没有数字10 分: 1 个数字20 分: 大于1 个数字四、符号:0 分: 没有符号10 分: 1 个符号25 分: 大于1 个符号五、奖励:2 分: 字母和数字3 分:

2020-12-11 11:59:22 240

原创 python练习(二)

#字符串通配符"""题目描述问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)?:匹配1个字符输入:通配符表达式;一组字符串。输出:返回匹配的结果,正确输出true,错误输出false本题含有多组样例输入!输入描述:先输入一个带有通配符的字符串,再输入一个需要匹配的字符串输出描述:返回匹配的结果,正

2020-12-10 14:18:23 187

原创 python练习(一)

#配置文件恢复"""输入描述:多行字符串,每行字符串一条命令输出描述:执行结果,每条命令输出一行"""while 1: try: s = input() if s in 'reset': print ('reset what') elif s in 'reset board': print ('board fault') elif s in 'board add':

2020-12-09 20:57:37 175

原创 赶集网租房房源、户型、房源面积、价格爬取(正则表达式)

import reimport requestsdef parse_page(page_url): print(page_url) headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'} resp = requests.get(page_url,head

2020-12-07 10:55:41 242

原创 数据存储:Excel文件操作

import xlrdimport xlwtimport random#读取Excel文件workbook = xlrd.open_workbook("成绩表.xlsx")#获取所有的sheet名字# print(workbook.sheet_names())#根据索引获得指定的sheet对象# sheet = workbook.sheet_by_index(0)# print(sheet.name)#根据名称获取指定的sheet对象# sheet = workbook.she

2020-12-06 21:25:17 283 1

原创 数据存储:JSON字符串、CSV文件

import jsonimport csv#python对象转换成json字符串books = [ { "name":"三国演义", "price":18.8 }, { "name": "水浒传", 'price': 19.9 }]# result = json.dumps(books,ensure_ascii=False)# print(result)# print(type(result))

2020-12-05 20:14:19 502

原创 12306半自动抢票

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementException, ElementNotVisibleExceptionfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support imp

2020-12-04 21:44:13 392 1

原创 python selenium打开新窗口和切换页面、设置用户代理

from selenium import webdriverdriver = webdriver.Chrome(executable_path='E:\pyspiderapp\chromedriver87.exe')driver.get('https://www.baidu.com/')driver.implicitly_wait(2)driver.execute_script("window.open('https://www.douban.com/')")driver.switch_to.w

2020-12-04 13:10:02 1430

原创 python 正则表达式常用函数

import re# 分组# text = "shoes price is $90,shirt price is $80"# result = re.search('.+(\$\d+).+(\$\d+)',text)# print(result.group(2))# group()/group(0):匹配整个分组# group(1):匹配第一个分组# group(2):匹配第二个分组# groups():获取所有的分组# findall:查找所有满足条件的# text = "sho

2020-12-02 16:51:08 133

原创 python 正则表达式语法

import re# 1. 验证手机号码:手机号码的规则是以1开头,第二位可以是34587,后面那9位就可以随意了# text = "15895775470"# ret = re.match('1[34587]\d{9}',text)# print(ret.group())# 2. 验证邮箱:邮箱的规则是邮箱名称是用数字、英文字符、下划线组成的,然后是@符号,后面就是域名了# text = "1530385801139866@126.cn"# ret = re.match('\w+@[a-

2020-12-02 15:05:27 455

原创 python selenium操作cookie

from selenium import webdriver"""1. 获取所有的cookie: for cookie in driver.get_cookies(): print(cookie)2. 根据cookie的key获取value: value = driver.get_cookie(key)3. 删除所有的cookie: driver.delete_all_cookies()4. 删除某个cookie: driver.delete_co

2020-12-01 22:40:23 195

原创 python selenium隐式等待和显示等待

from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import By"""### 隐式等待和显示等待1. 隐式等待:指定一个时间,在这个时间内一直会处于等待状态。隐式等待需要使用

2020-12-01 22:37:16 490

原创 python 初识selenium

"""selenium就是一个机器人,来操作浏览器""""""selenium库的使用"""from selenium import webdriverimport timefrom selenium.webdriver.support.ui import Select'''#selenium的简单操作,打开网页,关闭网页driver_path = r'E:\pyspiderapp\chromedriver87.exe'#创建driver对象driver = webdriver.C

2020-12-01 14:57:31 139

原创 python爬取百度贴吧(urllib库)

import urllib.parseimport urllib.requestfrom 爬虫不同的库发出请求.usergent import usergentheader = {"User-Agent":usergent()}def loadpage(allurl): print("正在下载-----") urr = urllib.request.Request(allurl,headers=header) response = urllib.request.urlo

2020-11-01 14:28:44 683

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除