1

# 1 . 进程  线程  协程  之间的相同点和不同点
#相同点:都能帮助我们实现并发操作,规避IO时间,提高执行效率
#进程:内存隔离 操作系统级别 可以利用多核(高计算) 计算机中资源分配的最小单位
#线程:内存共享 操作系统级别 开销中 Cpython解释器下不能利用多核(规避IO) 计算机CPU调度的最小单位
#协程:内存共享 用户级别 开销小 不能利用多核(协程的本质是个单线程)(规避IO)
'''
操作系统级别:全世界的人都存储在大计算机上,他都知道哪个好那个坏
用户级别: 自己去判断哪个好哪个坏 switch 是手动添加的 gevent 里为什么没有? 因为他在底层添加了(可能是if)
'''
# 为什么不能删GIL锁
#垃圾回收机制 所以 cpython # 2 .进程内存之间是否共享,如何实现通信?
#不共享 通过python模块\第三方工具
# 本质上:
# 基于文件 :
#队列 管道 manager
# 基于网络
#第三方工具(redis kafka memcha) socket # 3在python 中是否线程安全
#不安全
#python 你写的python代码未来都会转换成机器码,机器码执行的过程中
#如果有一个非原子性操作,那么就会导致线程数据不安全
#需要手动加锁来解决问题 # 4 协程的本质是什么
#多个任务在一个线程上能够实现切换 (与IO无关利用协程实现的一个效果) #5 线程池开启任务 如何提交任务 获取返回值
'''
from concurrent.futures import ThreadPoolExecutor #这个模块开启线程池
def func(arg):
return arg*20
tp = ThreadPoolExecutor(5)
ret_l = []
for i in range(100):
ret = tp.submit(func,i) #这个是一个对象
ret_l.append(ret)
for r in ret_l :
print(r.result()) #打印
'''
#二
'''
from concurrent.futures import ThreadPoolExecutor #这个模块开启线程池
def func(arg):
return arg*20
tp = ThreadPoolExecutor(5)
ret = tp.map(func,range(100))
for r in ret :
print(r) # 没有返回值 直接打印 '''
#协程复习:
#数据是否安全 : 绝对安全
# 用户级别的 只能在代码上做 没法 swithch a+=1 swithch 没有把a+=1 分开
a = 1
def func1():
global a
a+= 1
def func2():
global a
a+=1
import dis dis.dis(func1)
dis.dis(func2) #和线程的关系
#本质上是一条线程
# gevent 模块
#g1 = spawn(协程函数,参数)
#g1.join #主程序里不遇到阻塞,不切到子程序里(一个协程) start没有用不执行
# gevent.joinall(iterable([g1]))
#monkey.patch_all() # greenlet switch
# 并没有减少IO操作 '''
def fun1():
start
sleep # 其实是自己实现了一个sleep,而没有用time的
end
def fun2():
begin
sleep1
finish
'''
# socket 底层就是用thread实现的 # 举一反三 做了一个 想象把他换成别的情境
# 问题
# 协程用的好 比线程的效率要好的多
# 协程的底层 IO切换 是 time
# 先把懂了的整理出来 再弄不懂得

2

#day 1 数据库的介绍安装 命令
#day 2 数据库的表操作
#day 3 数据库的数据操作,查询(单表\多表) 一天 ftp这几天 要做完
#day 4 查询和其它内容的拾遗
# day 5 索引原理 # 数据库在开发的过程中占据着什么样的位置?
#在整个项目中又有什么意义? # 我们把数据存储在文件里 (把数据永远存下来)
#写 write
#读 read
# 改 读-》写->删->改-》
# 数据库:(意义)
# 能够更加简单的 使用 存储在文件中的数据
# 查 一行数据 从userinfo 条件 id = 10 或者 id = 20
#简单 比那一行 要简单
#不止读写改 还优化了效率(?为什么 没听清 not listened)
# 能够更好地解决并发问题
#买票问题 你是为你的用户服务的 但是对于 数据库 你也是服务端
#python 中到处都是相对论
#自带的并发 不用自己写server
# 数据的统一问题 # 1,alex,alex3714 #一行内容就是一条数据
# 2,python,19800,6,months # 一条不同的数据 # 数据库 DataBase 简称DB
# 存储数据的地方, 我们把所有的数据都存储在一个固定的地方,那么这个地方就是数据库 #数据库管理系统 DBMS
#软件 需要我们安装一下
#能够帮助我们更好的管理
#和使用存储在硬盘上的数据
#操作系统
#硬盘上存储着数据 # 数据库 服务器
#什么是服务器 : 本质上就是一条计算机 (对外提供服务)
#当一台计算机上安装了某个人软件能够对外提供服务的时候,那么这台机器就成为服务器
#数据库服务器
#当这台机器上安装的服务是一个数据库的server ,就得到了一个。。。。 #数据库管理软件:管理-数据库
# 数据库管理员DBA
# (删库的人 有权限。。。)
#专门帮我们管理数据库 并且优化数据库的工作人员
# 数据库 技术的发展
#纸 上表格
#excel
#软件 批处理 软件:(把你频繁的要做的变成机器去做了) # mysql 就是一个DBMS(能够管理硬盘上数据的一个软件)
# 通过固定的简单的指令 帮助我们完成从文件中查找对应数据的软件
#mysql不好用,自己写,程序员的责任 好用就算了 不想用别的找不到缺点
#软件那个没有缺点,就像人一样,一秒变笨,改错则少
#无知才会求知 有错才会改错
#笨才会求聪明
#oracle 也是一个DBMS # 数据库 管理系统的作用
#关系型数据库 (mysql\oracle\sql server(微软里的底层服务) \sqllite)
#(关系比较紧) # 这几个用法都差不多 都是传上去 拉下来 不同的相同的
# (每个每个都对应 肯定慢)
#id name age phone_num
#是有关系的 彼此之间
#知道了一个人的名字能不能获取到他的年龄,
#知道了一个人的电话号码,能不能获取到姓名 #非关系型数据库 (redis\ mongodb)
#既可以完成通信也可以。。。 mon智能机器人(选修第四个)轻量级
#(效率高 1对多 )
#key : value key---> value 只知道value找不到key
#只有一个找所有 # mysql 开源的软件 -小公司 各种互联网公司(二次开发之后)
#开源 可能有的漏洞 被人操作了
#很多地方不如oracle 严谨
#金融公司 不会使用mysql存储数据的 。。。数据库被泄露了 只就是一个数字了。。。
#oracle 付费的
#金融行业(绝对安全)
#国企事业单位
#sql server 在学校里教学使用的

传的话 可能会出错,不要相信任何人的软件 从官网上安装最安全

以后进公司

3员工系统

        #写一个员工管理软件

#1,alex,38,1233333333,过气网红讲师
#2,wusir,74,1388888888,python讲师
# 查name,id 从 userinfo 条件 age = 83
# 查number, 从 userinfo 条件 name = 'wusir' # 自己去处理文件 很复杂?

下午

c://>mysqld install      #mysqld.exe install   #要安装mysql的server端

c://>net start mysql   #开启mysql  #相同的   net stop mysql 结束mysql  #重启

        #启动的是server端。。。(第一次默认之后一直开启的状态(减少重复))

c://> mysql -uroot -p   #    mysql -uroot  #没有密码的情况下用root用户登录

        #启动的是client端。。。

password:   # 输入回车    #默认没密码

#测试一下配置文件生效了没有

mysql>select user();查看当前用户

mysql>show variables like '%charac%'    #  输出 是utf-8什么的

exit    #退出

;        # 结束符

环境变量  也是变量。。。

就像是全局变量

只要mysql不是内部或外部命令,也不是可运行的程序

说明没有设置  不是全局的

数据库的安装和卸载

# 问题
# 1. D:\mysql\mysql-5.6.43-winx64安装目录中不能有空格和中文
# 2. my.ini文件是不是utf-8
# 3. 配置文件里的每一个路径的最后 是不是有看不见的空格
# 4. 文件的名 my.ini
# 5. 安装包 # 卸载
# D:\mysql\mysql-5.6.43-winx64\mysqld remove 移出服务
# 把mysql整个文件都删掉\环境变量也删掉
# 重启电脑 # 最后的两招
# 1.换一个目录装
# 2.vc运行库 # 一堆命令
# 什么是环境变量?
# 当我们执行一个系统中的可执行文件的时候
# 例如 mysql.exe或者 mysqld.exe或者python.exe
# 如果我们不配环境变量,
# 那么就需要进入mysql.exe所在的目录去执行
# 或者带着这个文件的绝对路径去执行
# 我们经常要执行这些文件
# 所以把文件的路径添加到环境变量中
# 就可直接输入文件名来执行程序了
# mysqld install
# mysqld.exe install 要安装mysql的server端
# net start mysql 启动server端
# mysql -uroot -p 启动client端 # 重启server
# net stop mysql
# net start mysql # client端的启动
# c://>mysql -uroot 表示没有密码的情况下用root用户登录
# c://>mysql -uroot -p 表示使用密码登录
# Enter password:输入密码,如果没有密码直接回车 # mysql > select user(); 查看当前用户
# set password = password('123');给当前用户设置密码 # 查看当前的所有数据库
# mysql > show databases; # root用户在mysql当中相当于管理员用户
# 其他的程序员想要使用数据库来存储项目数据,不能给他权限最高的管理员用户 # 可以创建用户 并且给用户授权
# create user 'eva@192.168.16.%';
# create user 'eva@192.168.16.%' identified by '123'; # 既可以给一个已经存在的用户授权,也可以给一个不存在的用户创建并授权
# grant 权利 on 数据库名.表名 to '用户名@ip地址'
# grant 权利 on 数据库名.表名 to '用户名@ip地址' identified by '123';
# 权利 : SELECT INSERT UPDATE DELETE ALL # 创建一个数据库 s20_day1
# create database s20_day1; # 创建一个stu用户 密码是123 ip地址是192.168.16网段的所有机器
# 能对这个数据s20_day1做增删改查的所有操作
# grant all on s20_day1.* to 'stu@192.168.16.%' identified by '123'; # 192.168.16.13
# mysql -ustu -h192.168.16.13 -p
# # grant all on s20_day1.* to 'stu'@'192.168.16.%' identified by '123';
# 用户名 密码 ip地址
# mysql -u用户名 -hip地址 -p
# 密码 # ddl语言
# 文件夹(数据库)的增删改查
# 创建数据库
# create database 数据库名;
# 使用数据库
# use 库名;
# 查看数据库下有哪些表
# show tables; # 表的增删改查
# 创建表
# create table 表名(字段名 数据类型(长度),字段名2 数据类型(长度),..)
# 查看表结构
# desc 表名;
# 修改表
# alter table t1 change name username char(12);
# 删除表
# drop table t1; # dml语言
# 数据的增删改查
# 增加
# insert into 表名 values (值1,值2,...); 插入一条数据
# insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...); 插入多条数据 # 查看数据
# select * from 表名; # 修改数据
# update 表 set 字段名=值 where 条件; # 删除数据
# delete from 表 where 条件;

4yue 22的更多相关文章

  1. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  2. EC笔记:第4部分:22、所有成员都应该是private的

    EC笔记:第4部分:22.所有成员都应该是private的 更简单的访问 用户不用记得什么时候该带上括号,什么时候不用带上括号(因为很确定的就要带上括号) 访问限制 对于public的成员变量,我们可 ...

  3. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  4. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

  5. Fedora 22中的Services and Daemons

    Introduction Maintaining security on your system is extremely important, and one approach for this t ...

  6. Fedora 22中的RPM软件包管理工具

    Introduction The RPM Package Manager (RPM) is an open packaging system that runs on Fedora as well a ...

  7. Fedora 22中的用户和用户组管理

    The control of users and groups is a core element of Fedora system administration. This chapter expl ...

  8. Fedora 22中的日期和时间配置

    Introduction Modern operating systems distinguish between the following two types of clocks: A real- ...

  9. Fedora 22中的DNF软件包管理工具

    Introduction DNF is the The Fedora Project package manager that is able to query for information abo ...

随机推荐

  1. MySQL Tips

    MySQL中的一些Tips,个人总结或者整理自网络 不明白为什么MySQL的很多材料中总是喜欢把联合(复合)索引和覆盖索引放在一块说事? 1,联合索引是一种索引的类型,指创建索引的时候包含了多个字段. ...

  2. 将ipad作为电脑拓展屏或分屏的简单方法

    用Ipad实现电脑分屏的方法是挺简单的,但鉴于部分小白找不到合适的门路,在此重新分享一下. 需要的装备:  ipad   电脑   数据连接线 方法:某宝上搜索 duet display ,只需1元左 ...

  3. linux上部署jenkins步骤小记

    一.部署jdk环境 1.下载jdk包,解压,放在选定的位置,我本次jdk包放置在“/usr/local/java/jdk” 目录下 2.配置环境变量 1)打开/etc/profile文件,在命令框中输 ...

  4. 微信小程序 app.json文件配置

    https://developers.weixin.qq.com/miniprogram/dev/index.html  起步 https://developers.weixin.qq.com/min ...

  5. SSM商城项目(十三)

    1.   学习计划 1.订单系统 2.提交订单 3.MyCAT 2.   订单系统 2.1. 功能分析 1.在购物车页面点击“去结算”按钮跳转到订单确认页面. a)         展示商品列表 b) ...

  6. 【原创】qlogic网卡软中断不均衡问题分析

    引子 使用qlogic QL45000网卡测试业务性能,发现cpu软中断分布不均衡,而且很有规律,导致cpu空闲也不是很均衡, 会影响业务稳定性. 设备使用3张网卡Qlogic网卡,配置为4*25G模 ...

  7. 复杂JSON对象的查询与合并

    一个表里存放了全国各地地区.省.市.县区的数据,为了提高加载速度我保存成了本地的JSON文件 结构大致如下: [{ "text": "中华人民共和国", &qu ...

  8. 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中

    一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...

  9. 解题(DirGraCheckPath--有向图的遍历(深度搜索))

    题目描述 对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径. 给定图中的两个结点的指针DirectedGraphNode* a, DirectedGraphNode* b(请不要在意数据类 ...

  10. Linux - Ubuntu 图形界面入门

    Ubuntu 图形界面入门 目标 熟悉 Ubuntu 图形界面的基本使用 01. Ubuntu 的任务栏 02. 窗口操作按钮 03. 窗口菜单条 ——本文源自<黑马程序员>