周结7

周结七

  • 线程理论

进程:进程其实是资源单位 表示一块内存空间

线程:线程才是执行单位 表示真正的代码指令

  1. 一个进程可以开设多个进程
  2. 同一个进程下的多个进程数据是共享的
  3. 创建进程的与线程的区别:创建进程的消耗要远远大于线程
  • 创建线程的两种方式

from threading import Thread
import time
方式一:
# def task(name):
#     time.sleep(1)
#     print(f'我的名字是{name}')
#
# t = Thread(target=task, args=('jason',))
# t.start()
# print('主线程')

方式二:
class MyTread(Thread):
    def __init__(self,name):
        super().__init__()
        self.name = name
    def run(self):
        time.sleep(1)
        print(f'你的名字叫{self.name}')


t1 = MyTread('tony')
t1.start()
print('主子')
  • GIL全局解释器锁

  1. 在python中解释器中存在全局解释器锁简称GIL

    python解释器有很多类型:CPython JPython PPython 常用的是CPython

  2. GIL本质也是一把互斥锁 用来阻止同一个进程内多个进程同时执行

  3. GIL的存在是因为CPython解释器中内存管理不是线程安全的(垃圾回收机制)

from threading import Thread

num_name = 100

def task():
    global num_name
    num_name -= 1

t_list = []
for i in range(100):
    t = Thread(target=task)
    t.start()
    t_list.append(t)
for t in t_list:
    t.join()

print(num_name)
  • 进程池与线程池

进程与线程不能无限制的一直创建 因为硬件的发展赶不上软件的 有物理极限 如果一直无限制的创建进程或线程会可能会导致计算机奔溃

池:降低程序的执行效率 但是保证了计算机硬件的安全

进程池:提前创建好固定的进程功后续程序的调用 超出就等待

线程池:提前创建好固定数量的线程供后续程序的调用 超出就等待

import time
from concurrent.futures import ThreadPoolExecutor

pool = ThreadPoolExecutor(5)  # 产生固定数量线程的线程池


def task():
    print('哈哈')
    time.sleep(0.1)


for i in range(100):  # 将任务提交给线程池 5个线程处理100个任务 谁有空谁来
    pool.submit(task)
  • 协程

进程资源单位 线程执行单位

协程:单线程下实现并大(效率极高) 在代码层面欺骗CPU 让CPU觉得我们代码没有IO操作 实际上被我们自己写的代码检测 一旦有 立刻让代码执行别的 核心:自己写的代码完成切换+保存状态

  • 存取数据的演变史

  1. 文本文件:文件路径不固定 数据格式不统一

  2. 软件开发目录规范 规定了数据应该保存到db目录下 路径偏向统一 数据格式还是没有得到统一

  3. 数据库服务 统一了路径的操作方式 降低了学习的的成本提高了开发效率

  • 数据库的分类

关系型数据库:

特征1:拥有固定的表结构(字段名、字段类型)

特征2:数据与数据之间可以建立数据层面关系

有:MySQL Oracle MariaDB PostgreSQL sql server SQLite access

非关系型数据库

特征1:没有固定的表结构 数据采用K:V键值对的形式

特征2:数据之间无法建立数据层面关系 可以编写代码建立逻辑层面的关系

有:redis mongoDB memcache

  • MySQL简介及基本使用、系统服务的制作

bin目录:存放启动文件 mysql.exe(服务端) mysql.exe(客户端)

data目录:存在核心数据

my-default.ini:默认的配置文件

readme:软件说明

基本使用:

cmd建议你使用管理员身份打开

1.切换到mysql的bin目录下先启动服务端 mysqld

2.保持窗口不关闭 重新打开一个新的cmd窗口

3.切换到mysql的bin目录下启动客户端 mysql

基本使用每次都要打开服务端 设置成开机自动启动

1.先把bin目录添加到环境变量

2.将mysql添加到系统服务端中

3.首次添加不会自动启动 需要人为操作一下

4.卸载操作:先关闭服务端 net stop mysql 移除系统服务 mysql --remove

  • SQL与NOSQL

数据库服务端是可以服务多种类型的客户端 客户端可以自己开发 也可以是python代码编写 也可以是java编写

SQL:操作关系型数据库的语言

NOSQL:操作非关系型数据库的语言

  • 数据重要概念

库 就相当于 文件夹
表 就相当于 文件夹里面的文件
记录 就相当于 文件夹里面的文件中的一行行数据

验证
1.查看所有的库名称
show databases;
2.查看所有的表的名称
show table;
3.查看所有的记录
select * from mysql.user;

  • 基本SQL语句

\c: 中断当前输入的语句

\G:垂直显示结果

\h:显示此帮助 等于hlep

\u:切换数据库 等于use

\s:查看Mysql相关信息用户、版本、编码、端口

创建库
create database 库名;

查看库
show databases; 查看所有的库名
show create database 库名; 查看指定库的信息

编辑库
alter database 库名 条件;

删除库
drop database 库名

创建表
create table 表名(字段类 字段类型, 字段名 字段类型);

查看表
show tables; 查看库下所有的表名称
show create table 表名; 查看指定表的信息
describe 表名; 查看表结构 简写>>>desc 表名;
ps: 如果想跨库操作其他表 只需要再表名前加库名即可
desc 库名.表名;

编辑表
alter table 表名 rename 新表名;

删除表
drop table 表名;

插入数据
insert into 表名 values(数据值1, 数据值2);

查询数据
select * from 表名; 查询表中所有的数据

编辑数据
update 表名 set 字段名=新数据 where 筛选条件;

删除数据
delete from 表名;
delete from 表名 where 条件;
  • 数据库存储引擎

存储引擎:数据库针对数据采取的多种存取方式

show engines; 查看引擎

常见的存储引擎有:

MyISAM:MySQL5.5之前默认的储存引擎、存取数据的速度快 但是功能较少 安全性低

InnoDB:MySQL5.5之后默认的储存引擎、支持事物 行锁 外键等操作 存取速度没有MyISAM快 但是安全性更高

Memory:基于内存存起数据 仅用于临时表数据存取

BlackHole:任何写入进去的数据都会立刻丢失

  • 字段类型之整型、严格模式、浮点型、字符串类型、枚举与集合、日期

整型:tinyint smallint int bigint

严格模式:当我们在使用数据库存储数据的时候 如果数据不符合规范 应该直接报错而不是擅自修改数据 这样会导致数据的失真

show variables like '%mode%'; 模糊查询 找出所有带mode的配置信息

sql_mode NO_ENGINE_SUBSTITUTION

浮点型:float double decimal 精度不同

字符串类型:char 定长 varchar 变长

枚举与集合:多选一 enum('小二','小三','小四') 多选多(包含多选一) set('小二','小三','小四')

日期类型:datetime date time year

  • 字段约束条件

unsigned 无符号

zerofill 0填充

非空: not null 所有的字段类型不加约束条件的情况默认下都可以为空

默认值:default

位置值:unique分单列唯一 unique()联合唯一

主键:primary key auto_increment(主键自增) InnoDB储存引擎规定所有的表都必须只有一个主键(主键是组织数据的重要条件 并且可以加快数据的查询速度)

  • SQL语句关键字查询

select:指定需要查询的字段信息

from:指定需要查询的表信息

查询关键字之where筛选、之group by分组、之having过滤、distinct去重、order by排序、limit分页、regexp正则表达式

posted @   小福福  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
  1. 1 原来你也在这儿 温余福
  2. 2 世间美好和你环环扣扣 温余福
  3. 3 随风起舞 温余福
  4. 4 罪恶都市 温余福
世间美好和你环环扣扣 - 温余福
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 尹初七

作曲 : 温余福

编曲 : 彭圣杰

偏偏秉烛夜游

偏偏秉烛夜游

午夜星辰 似奔走之友

爱你每个结痂伤口

酿成的陈年烈酒

入喉尚算可口

入喉尚算可口

怎么泪水 还偶尔失守

邀你细看心中缺口

裂缝中留存 温柔

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

让樱花偷偷 吻你额头

让世间美好 与你环环相扣

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

当樱花开的纷纷扬扬

当世间美好 与你环环相扣

特别鸣谢:槿葵,我们的海报制作妹妹。

原唱:柏松

吉他:柏松

和声:柏松

录音:柏松

混音:张强

点击右上角即可分享
微信分享提示