<em><strong>知识库笔记</strong></em>

一、Python基础笔记

1.列表 / 字典 / 集合 / 元组(图示):

2.字符串操作:

3.OS模块:



3.对Excel进行操作(xlwings)

3.1初始化操作

import xlwings as xw
app = xw.APP(visible = False,add_book = False)   #激活excel app
wb = app.books.open(文件位置)                     #打开某个excel工作本
sht = wb.sheet[sheet]                            #打开工作薄
wb.save(‘地址’)                                        #保存工作本的地址
wb.close()                                       #关闭工作本
app.quit                                         #退出app

3.2数据输入操作

sht.range(1,1).value = [num]                 #插入1-1的空白格
sht.raneg('A1:c1').value = [num]             #插入A1到c1的空白格,即横向插入
sht.range(a1).options(transpose=True).value  #插入A1到AX的空白格,即竖向输入

3.3数据获取操作

a=sht.range(a:b).value #无要求

3.4参数设置

total_heading=sht2.range('a2:a5')
total_heading.merge()                    #合并单元格a2到a5
sets1=sht2.range('a1:b14')
sets1.api.Font.Name='微软雅黑'           #设置字体
sets1.api.Font.Size=12                  #设置字体大小
sets1.api.HorizontalAlignment= -4108    #设置字体位置
sets1.api.Font.Bold = True              #设置颜色



二、爬虫笔记

1.设置基础参数

import requests
url = (从网页检查[F12]中获取)
headers = {"User-Agent":"[同上,UA伪装]"}
# 创建响应对象
response = requests.post(url=post_url,headers=headers) 或者 requests.get(url=post_url,data=data,headers=headers)
#获取响应内容
response.content 或者 response.text

2.数据解析:Bs4、Etree(Xpath)、正则表达式

beautiful soup 4

from bs4 import BeautifulSoup
import bs4
fp = open('xxx','r',encoding='utf-8')  #将本地html文档加载到对象中
soup = BeautifulSoup(f[,'lxml'])
page_text = response.text #将互联网资源加载到该对象中
soup  = BeautifulSoup(page_text,'lxml')
#beautifulsoup方法/首先tagname 有:div、html、head、body、ul、li、a、p
soup.tagName     #返回第一次出现的对应标签
soup.find()      #等同于soup.tagName
soup.find(tagName,class_='name')  #可以进行属性定位
soup.find_all()                    #返回所有的对应标签装成的一个列表
soup.select()                      #选择器去定位,类选择器'.class',标签'tag'
soup.select('.tang > ul > li >a')  #层级选择器,表示按顺序去寻找a层级
soup.select('.tang > ul a')        #用空格表示多个层级,跨层级去寻找a层级
soup.text/content                  #获取标签中所有文本内容,不属于直系也可以,因为是全部获取,content不会乱码
soup.string                        #获取直系中所有文本内容,必须要直系
soup.a['href]                      #获取标签中的属性内容

etree(Xpath)

from lxml import etree
etree.parse(filePath)         #将本地文件html加载到etree对象
etree.HTML('page_text')       #将互联网文件加载到etree对象中 
tree.path('/html/head/title') #根据层级顺序进行定位
tree.path('/html//div') or tree.path('//div')#跨层级顺序进行定位
tree.path('//div[@class='song']') #属性定位
tree.path('//div[@class='song']/p[1]') #索引定位,且从1开始
/text()                      #获取直系文本内容
//text()                     #获取所有文本内容
/@属性Name                   #获取属性

正则表达式



三、MySQL笔记


1.DDL数据库操作

  • show databases    展示数据库
  • create database <数据库名>    创建数据库
  • use <数据库名>    使用数据库
  • select database()    选择数据库
  • drop database    删除数据库

2.DDL表操作

  • show tables    展示列表
  • create table 表名{字段1 字段类型1,字段2 字段类型2,......}    创建列表
  • desc 表名    查询表结构
  • alter table 表名 add/modify/change/drop/rename to ...   对表进行增加字段/修改字段类型/修改字段名称类型/修改表名

3.DML操作(增加数据、修改数据、删除数据)

DML增加数据

  • insert into [表名] (字段1,字段2,...) [values] (值1,值2,....)   给指定字段添加数据
  • insert into [表名] values (值1,值2,...)   给全部字段增加数据

DML修改数据

  • update [表名] set 字段名1=值1,字段名2=值2,... [where 条件]   修改数据,不带Where则是更新字段中的所有值

DML删除数据

  • delete from [表名] [where 条件]   删除数据,不带where则是删除整张表数据

4.DQL语句

编写顺序: select__from__where__group by__having__order by__limit 执行顺序:from-->where-->group by-->select-->having-->order by-->limit

  • select  [字段列表]  / [字段名] [as] 别名
  • from  [表名]
  • where  [条件列表]    运算符/betweenn..and../in/like(筛选格式)
  • group by  [分组的字段列表]
  • having   [分组后的条件]
  • order by   [升序asc]/[降序desc]
  • limit [分页参数]

5.DCL数据控制语言

用户管理

  • create user 用户名'@'主机名' dentified by '密码'
  • alter user '用户名'@'主机名' identified by '密码'
  • drop user '用户名'@'主机名'

程序控制

  • grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'
  • revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'

6.函数

1.字符串函数

  • concat(s1,s2,..)    字符串的拼接
  • lower(str)    转换成小写
  • upper(str)    转换成大写
  • lpad/rpad(str,n,pad)    左/右填充,用字符串pad对str左/右填充,达到n个字符串长度**
  • trim(str)    去掉头尾的空格
  • substring(str,start,len)    返回字符串从start位置起len个长度的字符串

2.数值函数

  • ceil(X)    向上取整
  • floor(X)    向下取整
  • mod(x,y)    返回X/Y的模,即余数
  • rand()    返回0-1的随机数
  • round(x,y)    求参数X的四舍五入的值,保留y位小数

3.日期函数

  • curdate()    返回当前日期
  • curtime()    返回当前时间
  • now()    返回当前日期和时间
  • year/month/day(date)    获取指定date的年份/月份/日期
  • date_add(date,time)    返回一个日期加上一个时间后的值
  • datediff(x,y)    返回x到y之间的天数

4.流程函数

  • if    如果value为true,则返回t,否则返回f
  • ifnull    如果value不为空,返回value1,否则返回value2
  • case when [var1] then [res1]... else [reslast] end 如果val1为true,返回res1,(中间可附加其他条件)否则返回reslast
  • case [expr] when [var1] then [res1]... else [reslast] end 如果exp的值等于val1,返回res1,(中间可附件其他条件)否则返回reslast

7.约束

默认设置    

  • not null    非空约束
  • nuique    唯一约束
  • primary key    主键约束
  • default    默认约束
  • check    检查约束
  • foreign key    外键约束 语法:alter table [表名] add constraint 外键名称 foreign key(外键字段名) references 主表(主表列名)    

外键约束    

  • no action    检查是否有外键,有则不允许删除/更新
  • restrict    检查是否有外键,有则不允许删除/更新
  • cascade    检查是否有外键,有则也允许删除/更新
  • set null    删除时,检查是否有外键,有则设置外键值为NULL
  • set default    变更时,设置外键为一个默认的值 语法:alter table [表名] add constraint [外键名称] foreign key (外键字段) references 主表名(主表字段名) on update cascade on delete cascade    

8.多表查询

多表关系:一对一(指向一个外键),一对多(指向一个外键),多对多(至少包含两个外键)/ 一对多:在多的一方设置外键,关联一方的主键 多对多:建立中间表,中间表包含两个外键,关联两张表的主键/ 一对一:用于表结构拆分,在其中任何一方设置外键(unique),关联另外一方的主键     1.内连接    查询的是交集关系

  • select [字段列表] from [表1] [表2] where 条件    隐式内连接
  • select [字段列表] from [表1] inner join [表2] on 条件    显式外连接

2.外连接    查询的是左右部分

  • select [字段列表] from [表1] left outer join [表2] on 条件    显示表1所有数据包含交集
  • select [字段列表] from [表1] right outer join [表2] on 条件    显示表2所有数据包含交集

3.自连接(其实就是对一个表进行的操作)    也可以是内连接,也可以是外连接

  • select [字段列表] from [表1] [别名1] join [表2] [别名2] on [条件]    
  • select [字段列表] from [表1] [别名1] outer left join [表2] [别名2] on [条件]    
  • (ps:一定要有别名,因为是对一张表进行操作,否则分不清是是什么)

4.联合查询    

  • select [字段列表] from [表A]...
    union[all]...
    select [字段列表] from [表B]...
       

5.子查询(嵌套查询)     标签子查询: =、<、>、>=、<=    返回的结果是单个的值 列子查询:in、not in、any、some、all    返回多列 行子查询:=、<>、in、not in    返回多行 表子查询:in    返回多行多列 select [字段列表] from [表名] column1 = (select column1 from t2)    

操作技巧:列出需要用的表,连接的条件以及查询条件即可!


9.事务

1.事务操作    

start transaction    开启事务 commit/rollback    提交/回滚事务

2.事务四大特性    

原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(duration)    

3.并发事务    

脏读    一个事务读取到另一个事务还未提交的数据 不可重复读    一个事务先后读取同一条记录的结果不同 幻读    一个事务查询数据时,无对应数据,但插入数据时,又发现数据已存在

4.事务隔离级别    

效率:ru>rc>rr>s    安全级别:s>rr>rc>ru     read uncommited    会出现脏读、不可重复读、幻读 read committed    会出现不可重复读、幻读 repeatable read    会出现幻读 serializable    啥都不会出现


10.存储引擎

1.语法    

show engines
create table xx engine = (innodb);

2.存储引擎特点    

3.存储引擎应用     innodb:存储业务系统中对于事务、数据完整性要求较高的核心数据。 myisam:存储业务系统的非核心业务。


本文章使用limfx的vscode插件快速发布