数据分析mysql4.19

内容回顾

  • 文件操作补充

    1.read方法读取文件内置之后光标停留在文件末尾
    2.代码是可以控制光标的移动seek方法
    3.读取文件内容最佳的方式是采用for循环一行行读取
    
  • 函数

    函数就是工具 目的是为了减少代码冗余 一次制造多次使用
    
    def 函数名(参数1,参数2,...):
        '''函数注释'''
        函数体代码
        return 返回值
    
    1.函数的返回值
    2.函数的参数
        形参与实参的概念
        
        位置参数
        关键字参数
        默认参数
        可变长参数
    
  • 面向对象

    对象
       包含了数据和功能
    类
       多个对象相同数据和功能的结合体
        
    class 类名():
        相同数据
        相同功能
    对象 = 类名()
    
    对象如果想要有各自独有的数据
    class 类名():
        相同数据
        
        # 固定写法 给对象各自独有数据
        def _init_(self,name,age)
            self.name = name
            self.age = age
            
        相同功能
    对象 = 类名(姓名,年龄)    
    
  • 模块

    模块可以简单的理解为是写好的具有一定功能的(文件或者是文件夹)
    
    导入模块
       import 模块名
        from 模块名 import 子模块名1,子模块名2
        
    针对第三方模块需要先下载
        Pip3 install 模块名
        pip3 install 模块名 -i 源地址
        
    下载模块可能会出现的报错
        1.pip版本过低
            直接拷贝提示信息更新即可
        2.网络不稳定
            关键字Timeout
        3.机器环境问题
            需要结合不同的情况配置相应环境
            
     常见模块
         time
         datatime
         os   
    

今日内容概要

  • 作业讲解

  • 常用模块

    random模块

    hashlib模块

    json模块

  • 软件开发架构

  • 数据库的由来

  • 数据库的概念

  • 数据库的分类

  • MySQL简介

  • MySQL下载与安装

  • 简单的SQL语句

今日内容详细

作业讲解

1.注册登录封装函数版本
2.学员管理系统函数版本

def register():
    print('注册功能')
    
def login():
    print('登录功能')

def shop():
    print('购物功能')

def withdraw():
    print('提现功能')

def check():
    print('查看余额')
    
d = {'1':register,'2':login,'3':shop,'4':withdraw,'5':check}
while True:
    print("""
    1.注册功能
    2.登录功能
    3.购物功能
    4.提现功能
    5.查看余额
    """)
    choice = input('请选择需要执行的功能编号>>>:').strip()
    if choice.isdigit():
        if choice in d:
            # 获取对应的函数名
            func_name = d.get(choice)
            # 执行函数
            func_name()
        else:
            print('请输入正确的编号')
    else:
        print('请输入纯数字')    

常用模块

# 1.随机数模块
import random

print(random.random()) # 0-1之间的随机小数
print(random.randint(1,6)) # 1-6之间的整数  掷色子
l = [2,3,4,5,6,7,8,9,10,'J','Q','K','A']
random.shuffle(l)
print(l)    # 洗牌
ll = ['特等奖','一等奖','二等奖','谢谢惠顾']
print(random.choice(ll))   # 抽奖

# 随机验证码   数字 英文字母(大小写)
print(chr(65))  # 按照ASCII码表 将数字转换成字符

"""
A-Z   65-90
a-z   97-122
"""

# 思路  五位数 每一位都有三种选择
def get_code():
    code = ''
    for i in range(n):
        # 随机大写字母
        random_upper = chr(random.randint(65,90))
        # 随机小写字母
        random_lowwer = chr(random.randint(97,122))
        # 随机数组
        random_int = chr(random.randint(0,9))
        # 随机挑选一个
        temp = random.choice([random_upper,random_lowwer,random_int])
        # 拼接到code字符串中
        code += temp
    print(code)
get_code(10)
get_code(4)
get_code(6)
    
    
    
# 2.加密模块
     加密
        将一串明文(一眼看得懂)数据通过机密变成密文数据(一眼看不懂)
     加密的目的
    	为了保证数据的安全
        
     import hashlib    
     # 1.先生成加密工具    
     md5 = hashlib.md5()  # 基于md5算法加密数据
     # 2.将明文数据放入工具中进行加密
     md5.update('hello world'.encode('utf8'))  # 数据必须是bytes类型(二进制)
     '''如果字符串不包含中文 只有英文和数字  那么可以采取简便方法'''
     # 3.获取加密之后的密文数据
     res = md5.hexdigest()
     print(res)  
     
     # 加盐处理(加额外的干扰项)
     import hashlib    
     # 1.先生成加密工具    
     md5 = hashlib.md5()  # 基于md5算法加密数据
     #    1.1加盐处理
     md5.update('公司自己定义的盐'.encode('utf8'))
     # 2.将明文数据放入工具中进行加密
     md5.update('hello world'.encode('utf8'))  # 数据必须是bytes类型(二进制)
     '''如果字符串不包含中文 只有英文和数字  那么可以采取简便方法'''
     # 3.获取加密之后的密文数据
     res = md5.hexdigest()
     print(res)  
     
        
     # 动态加盐
     import hashlib    
     # 1.先生成加密工具    
     md5 = hashlib.md5()  # 基于md5算法加密数据
     #    1.1加盐处理
     md5.update('动态变化的盐(时间 用户名等)'.encode('utf8'))
         # 数据必须是bytes类型(二进制)
     # 2.将明文数据放入工具中进行加密
     md5.update('123'.encode('utf8')) # 数据必须是bytes类型(二进制)
     '''如果字符串不包含中文 只有英文和数字  那么可以采取简便方法'''
     # 3.获取加密之后的密文数据
     res = md5.hexdigest()
     print(res)    
        
        
# 3.json序列化模块
import json
d = {'username':'jason','password':123}
with open(r'a.txt','w',encoding='utf8') as f:
    json.dump(d,f)   
with open(r'a.txt','r',encoding='utf8') as f:
    res = json.load(f)
    print(res,type(res))
# 序列化  将某个数据类型序列化成json格式的字符串
print(json.dumps(d))
"""
json格式字符串 引号都是双引号
"""
# 反序列化  将json格式字符串反序列化成某个数据类型
res1 = json.loads(res)

软件开发架构

1.c/s架构
   c:client
        客户端
   s:server
        服务端
   """
   客户端就相当于去店里消费的客人
   服务端就相当于是店铺给客人提供的服务
   """     
2.b/s架构
   b:broswer
        浏览器
   s:server
        服务器
   """
       浏览器充当了很多服务端的客户端
   b/s架构本质还是c/s架构
   """
        

数据库的前戏

1.单机游戏
    数据都是各自独立保存 无法共享

2.联网游戏 
    数据都是共享的 数据库服务端
    
数据库就是用来保存数据的地方
    1.文件
    2.数据库软件

数据库的本质

1.本质就是一款c/s架构的软件
2.提供了一套统一规范管理数据的规则


客户端
    1.基于网络交互数据
    2.SQL语句/NoSQL语句
         操作数据库的语言
服务端
    1.基于网络交互数据
    2.SQL语句/NoSQL语句
         操作数据库的语言        

数据库的分类

数据库本身就是一款软件,所以数据库软件也是非常多的
1.关系型数据库
     拥有固定的表结构,并且有相应的字段约束,表与表之间还可以建立关系
     常见关系型数据库:MySQL、Oracle、PostgreSQL、sql server、sqlite、
        db2、acess...
2.非关系型数据库
     没有固定的表结构 并且数据都是以K:V键值对的形式存储
     常见非关系型数据库:Redis、MongoDB、memcache

MySQL数据库


# 为什么学习MySQL
1.MySQL是开源免费的
2.使用频率非常的高(很多公司都是使用MySQL作为数据库)
3.其他的数据库软件基本都是参考MySQL开发的
    学习完MySQL,可以轻松掌握其他数据库操作

版本问题

5.5  淘汰
5.6  普遍使用
5.7  正在过渡
8.0  太新
# 在IT领域很多时候并不一定会使用最新版本的软件
'''无论什么版本 SQL语句都是一摸一样的 并不会影响你的学习'''

下载

下载步骤:
    1.官网
	https://www.mysql.com/
    2.Downloads
	MySQL Community (GPL) Downloads
    3.MySQL Community Server
    4.Looking for previous GA versions
    5.下载一个压缩包
	    5.6版本    

安装

bin文件夹
	里面存放的都是启动程序
readme文件
	相当于软件说明书
"""
压缩包里面含有MySQL客户端和服务端 这样便于我们本地学习
"""
	mysql.exe	客户端
    mysqld.exe   服务端
################## 一定是先启动服务端 再启动客户端

# 1.复杂版本
	1.cmd窗口内先切换到mysqld.exe所在的路径下 输入mysqld启动服务端
  	2.保持当前cmd窗口不要关闭,另外重新打开一个cmd窗口
# 2.配置环境变量
	1.将启动程序所在的路径添加到环境变量中
# 3.将MySQL制作成系统服务
	1.以管理员身份打开cmd窗口
    2.制作系统服务
    	mysqld --install
    3.第一次需要我们自己启动 之后都是开机自启动
    	命令
        	net start mysql
            net stop mysql
   4.直接客户端链接即可
		mysql游客模式验证

作业

1.练习封装函数功能
2.整理今日内容
3.自己动手完成MySQL下载与安装并启动使用

1.复杂版本

1.cmd窗口内先切换到mysqld.exe所在的路径下 输入mysqld启动服务端
2.保持当前cmd窗口不要关闭,另外重新打开一个cmd窗口

2.配置环境变量

1.将启动程序所在的路径添加到环境变量中

3.将MySQL制作成系统服务

1.以管理员身份打开cmd窗口
2.制作系统服务
	mysqld --install
3.第一次需要我们自己启动 之后都是开机自启动
	命令
    	net start mysql
        net stop mysql
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值