第四周总结

第四周总结

 

python对象

  所有程序都是由数据功能组成的。数据是变量,功能就是函数。
  对象:盛放数据与功能的容器,是数据与功能的结合体
  类:多个对象相同数据与功能的结合体。
定义类
class Student: # 相同的数据 school
= '清华大学' # 相同的功能 def choice_course(self): print('选课')
定义类的语法结构
1
.class是定义类的关键字 2.Student是类的名字:类名在python中推荐首字母大写 3.缩进代码块:对象相同的数据和功能
  强调:在类中定义的函数,我们称之为——方法
产生对象:类名加括号(实例化)
obj1 = Student()  # 每次都会产生一个新的对象
obj2 = Student()
obj3 = Student()

 

访问数据和功能

查看内部具有的属性和方法
print
(Student.__dict__) print(obj1.__dict__)

 

调用属性和方法(句点符)
print(obj1.school)
print(obj1.choose_course())

 

独有的数据

类的部分

定义类
class
Wizard: call = '法师' # 让对象具有独有的数据 def __init__(self,name,mp,spell): self.name = name self.mp = mp self.spell = spell # 绑定给对象的方法(绑定方法):对象调用时自动将对象当做参数传入 def spelling(self): spelling_tip = '%s正在施放%s!' print(spelling_tip % (self.name,self.spell))

对象的部分

产生对象:类名加括号(实例化)
mage1 = Wizard('Raistlin',15,'火球术')  # 每次都会产生一个新的对象
mage2 = Wizard('Elminster',22,'闪电束')
mage3 = Wizard('Mordenkainen',28,'气泉喷升')
  对象在调用类里面定义的方法时,会自动将对象本身当成第一个位置参数传入。形参self指代的就是一个个对象

补充

父类:多个类相同的数据和功能的结合体。

继承:一个类可以继承多个父类并拥有多个父类里所有的东西。

对象查找数据和方法的顺序:先从对象自身开始找,再去产生对象的类里面找,再去父类里面找,如果还找不到就会报错。对象>类>父类>报错

 

异常处理

异常分类

1.语法错误invalid syntax)不被允许的,出现了应立刻改正。在pycharm里会直接漂红线。
2.逻辑错误允许发生的(就是bug)。

异常信息分析

第一行 traceback 异常的追踪信息
第二行 显示出错位置,点击可直接传送至改行
第三行 异常类型和出错原因

 

异常捕获语法结构
try:
    被检测的代码
except 错误类型 as 变量名:
    分支代码(变量名指代的就是错误的具体信息)

注意:

1.异常捕获在程序中尽量少用
2.try检测的代码要尽可能的少

 

其它关键字

else:

try检测的代码没有异常时会执行

finally:

无论是否有异常最终都会执行

 

 

数据库MySQL

 

数据库简介

数据库存储数据的演变过程
1.文件:既能存数据,也能取数据。有数据库的雏形
缺点
1.数据格式千差万别,导致程序兼容性很差
2.数据安全性较弱,容易丢失

2.单机程序:数据保存在本地的一个文件夹内,数据格式由程序设计者定义好
缺点
1.数据彼此之间无法共享(如:游戏进度、用户数据等等)
2.数据安全性较弱,容易丢失

3.联网程序:数据保存在玩家暂时不知道的地方,数据是可以共享的,并且安全性较高

 

软件开发架构

1.c/s架构
c:client客户端
s:sever服务端
比喻:客户端就像一位位客人,服务端可以看成一家家饭店。单机游戏将客户端服务端整合在一起,网络游戏则是分开。
2.b/s架构
b:broswer浏览器
s:服务器(端)
比喻:浏览器相当于可以去多家店里消费的客人,服务器相当于一家家店。

b/s架构本质也是c/s架构,但浏览器泛用性更强。

 

数据库的概念

数据库其实就是一款c/s架构的软件。
数据库操作数据可以简单地理解为就是基于网络远程的操作文件。

客户端基于网络通信(可以是互联网也可以是局域网,甚至是单机)

服务端基于网络通信(可以是互联网也可以是局域网,甚至是单机)

 

数据库的分类

由于数据库就是一款c/s架构的软件,所以数据库软件其实有很多,可以分为两类:
1.关系型数据库
具有固定的表结构,并且表与表之间可以建立外键关系(像excel表格)
主要有:MySQL、Oracle、PostgreSQL、sql server、sqlite、MariaDB、access等等……
(1)MySQL数据库
开源免费的,也是目前市面上使用最多的一款数据库
(2)MariaDB数据库
跟MySQL是同一个人开发的,(中间的小故事另附链接),相当于是MySQL的备用,也有很多其他功能
(3)Oracle数据库
安全性极高,但是需要收费并且维护费用也很高,只有大型互联网企业才会使用(尤其是银行)
(4)PostgreSQL数据库
可扩展性非常强,可以基于现有的功能额外开发(改装)
(5)sql server数据库
老牌数据库软件
(6)sqlite数据库
小型数据库,一般只用于本地小数据量测试

2.非关系型数据库
没有固定的表结构,数据存储格式采用的是K:V键值对的形式(像python中的字典)
主要有:redis、mongoDB、memcache
(1)redis数据库
是目前市面上最火的一款非关系型数据库软件,读取数据的速度非常快,主要用于缓存
(2)mongoDB数据库
在爬虫和大数据库领域使用广泛
(3)memcache数据库
基本被redis淘汰了

 

SQL语句与NoSQL语句

SQL语句就是用来操作关系型数据库的语言
NoSQL语句就是用来操作非关系型数据库数据库的语言

由于可以充当数据库客户端的语言非常多,为了能够兼容,数据库专门开发了一门用来与数据库打交道的语言,也就是SQL语句
也就意味着以后需要操作数据库,统一使用SQL语句。

 

重要概念

针对关系型数据库
库 >>> 文件夹
表 >>> 文件夹里面的文件
数据 >>> 文件夹里面的文件里面的一行行记录

 

MySQL数据库

市面上流行的版本:
MySQL5.5 基本不用
MySQL5.6 使用较广泛
MySQL5.7 逐步过渡
MySQL8.0 最新版

 

MySQL下载与安装

官网:www.mysql.com
点击downloads
下翻到MySQL community (GPL) downloads
MySQL Community Sever,默认展示最新版,不要下
点击Looking for the latest GA version?
找不到想要的版本?点Archives
学习阶段推荐下载5.6.44
download,下载对应的压缩包
解压压缩包

 

文件目录介绍

bin文件夹
存储的是启动程序文件

  mysql.exe 客户端
  mysqld.exe 服务端

data文件夹
存储的是数据相关的文件

my-default.ini
数据库的默认配置文件
README
类似于产品说明书

 

MySQL基本使用

1.要想使用MySQL,首先要启动服务端
#添加环境变量
属性>高级系统设置>环境变量>path>新建>mysql里的bin文件夹
添加完环境变量后打开cmd,输入mysqld,如果正常启动便成功了

2.客户端登陆服务端

完整方式
mysql - h -P -u -p

host主机地址 端口号 username用户名 password密码

 

myslq # 游客模式登录(功能及权限都很少,可用于检测服务端有否启动,但不推荐使用)

3.退出游客账户采用管理员账户登录
exit/quit
管理员名户名:root;初始没有密码

完整命令
mysql -h 127.0.0.1(本机归还地址) -P 3306 -uroot -p

 

 

本地操作时可以简化
mysql -uroot -p

密码于二次输入时会加密处理防止泄露

 

系统服务制作

1.如何查看计算机内部所有的系统服务?
方式1:任务栏>右键>任务管理器>服务
方式2:WIn+R,输入services.msc,回车即可

2.将MySQL服务添加到系统服务中
一定要以管理员身份打开cmd,否则安装请求会被拒绝

mysqld --install

3.添加完成后第一次需要手动启动
方式1:找到服务>鼠标右键启动
方式2:net start mysql

 

移除之前的环境

1.以管理员身份打开cmd窗口
2.将MySQL服务关闭

net stop mysql

3.移除系统MySQL服务

mysqld --remove

4.删除MySQL相关环境变量
5.删除MySQL相关文件夹
6.之后下载压缩包从头开始

 

 

配置文件、SQL基本语句

 

修改密码与破解密码

方式1:
cmd进入mysql,登录管理员。

set password=password('新密码');
# 该命令修改的是当前登录用户的密码

方式2:

mysqladmin -u用户名 -p原密码 password 新密码
# 在不登录的情况下修改

 

配置文件

my-default.ini是MySQL默认设置文件。
配置文件的后缀名:.ini,.xml,还有许多。
MySQL默认的配置文件不要修改,若想修改配置,先拷贝一份再做修改,之后换个名字作区分
在这份新文件内拷贝几行固定的配置

修改完配置一定要重启服务端!!!

 

基本SQL语句

针对库
1.查

show databases; # 查看所有的数据库名称
show create database db1; # 查看指定的数据库(了解即可)

2.增

create databases 新库的名字; #创建新数据库

3.改

alter database db1 charset='gbk'; # 修改数据库编码

4.删

drop database db1; #删除指定的数据库

针对表

# 1.如何查看当前在哪个库下
select database();
# 2.切换数据库
use 数据库名;

1.查

show tables; # 查看某个库下所有的表名(只显示名称,多个同名不同格式的文件只显示一个)
show create table t1; # 查看指定的表信息(了解即可)
describe t1; # 用于查看表结构(常用) 也可简写为 desc t1;

2.增

create table 新表(字段 类型,字段 类型);  # 创建表(必须要有字段名和类型)

3.改

alter table t1 modify name varchar(16);  # 修改字段类型

4.删

drop table ta; # 删除指定表

针对记录
先有库和表(最好使用自己创建的,默认自带的不要动)
含金量最高的就是记录
1.查

select * from t1; # 查看t1表中所有的数据(实际工作中不太推荐)
select id,name from t1; # 查看指定字段对应的数据

2.增

insert into t1 values(1,'jason',123); # 插入数据(表中有几个数据就需要改几条)
insert into t1(id,name) values();  # 按照指定的字段传入

3.改

update userinfo set name='jasonNB' where id=1; #将id为1的字段改为jasonNB

4.删

delete from t1 where id=4; #删除表中指定的记录
delete from t1; # 删除表中所有的记录

 

 

存储引擎与MySQL基础数据类型

 

存储引擎

MySQL内部针对数据的存储有很多种不同的方式。简单的理解:我们把这些不同的存储方式叫做不同的存储引擎。

# 如何查看各类存储引擎
show engines;

 

事务:保证多个数据的操作要么全部完成要么全部失败。(举例:银行转账)
行锁:多一行行数据加锁,同一时间只能有一个人操作。(比喻:超市收银台)
外键:建立表与表之间的关系。

 

主要存储引擎

InnoDB
MySQL5.5之后的版本默认的存储引擎
支持事务、行锁、外键。 数据更安全
MyISAM
MySQL5.5之前的版本默认的存储引擎
不支持事务、外键等功能。安全性较于InnoDB低
但是存取数据的速度比InnoDB快
memory
数据直接存储在内存 速度快但是断电立刻丢失
blackhole
写入其中的数据都会丢失

 

存储引擎表文件

不同的存储引擎生成的文件数目也不同:
1.InnoDB有两个文件
.frm 表结构
.idb 表数据、索引(书的目录)
2.MyISAM有三个文件
.frm 表结构
.MYD 表数据
.MYI 表索引
3.memory有一个文件
.frm 表结构
4.blackhole有一个文件
.frm 表结构

 

 

创建表的完整语法

 

create table 表名(
    字段名 字段类型(宽度) 约束条件,
    字段名 字段类型(宽度) 约束条件,
    字段名 字段类型(宽度) 约束条件
);

注意:

1.字段名和字段类型是必须的,宽度和约束条件是可选的
2.约束条件可选 并且一个字段可支持多个约束条件
3.最后结尾的字段语句不能有逗号

 

字段类型

1.整型

tinyint
smallint
int
bigint
不同整型类型能够存储的数字范围不同。

2.浮点型

float
double
decimal
不同的浮点型存储小数的范围和精确度不一样。

精确度:float < double < decimal

3.字符类型

char
varchar
上述两个数据类型在存储数据上有本质的区别

char_length();  # 统计数据长度

char
好处:整存整取 速度快
坏处:浪费存储空间
varchar
好处:节省存储空间
坏处:存取速度较于char慢
存取数据都需要计算,消耗时间

4.时间类型

date 年月日
time 时分秒
Datetime 年月日时分秒
Year 年

5.枚举与集合类型

enum
多选一
set
多选多(包含多选一)

 

宽度说明

针对数字类型 宽度并不是用来限制存储长度而是用来表示展示长度。

在定义数字时无需手动添加宽度。

 

约束条件

1.unsigned 无符号

create table 表名(字段 数据类型 unsigned);

2.zerofill # 0填充

create table表名(字段 数据类型 zerofill);

3.not null  不能为空  使用频率很高

create table 表名(字段 数据类型 not null);

4.default  默认值

create table 表名(字段 数据类型 default '匿名用户');

5.unique  唯一

单列唯一
create table 表名(字段1 数据类型 unique);

 

多列唯一
create table 表名(字段1 数据类型,字段2 数据类型,unique(字段1,字段2));
posted @ 2021-09-06 01:11  veryjoe  阅读(33)  评论(0)    收藏  举报