内容回顾

什么是进程?

就是为了形容执行中的程序的一种称呼

它是操作系统中资源分配的最小单位

进程之间是数据隔离的,占用操作系统资源相对多

独立存在的

谈谈你对并发的理解

同时有多个任务需要执行,但是资源有限

所以我们会利用一些手段:多进程\多线程\协程来完成任务

来提高用户的体验,达到多个任务能在一个时间段内同时执行的效果

什么是线程

轻量级进程,直接被CPU调度,不能独立存在的轻量级进程

同一进程中的多个线程之间数据共享

谈谈对GIL的了解?

全局解释器锁,是用来锁线程的,Cpython解释器提供的

导致了同一时刻只能有一个线程访问CPU

这个GIL是一个历史遗留问题

谈谈你对异步非阻塞的理解?

异步

  一个任务的执行不需要等待另一个任务的结束

  start\terminate

非阻塞

  没有阻塞

  socket对象调用setblocking(False)

什么是协程?

  协程是用户级的,对操作系统不可见

  是用户为了提高一条线程对CPU的利用率才出现的概念

  协程能够实现在一条线程上的多个任务互相切换

  为了提高工作效率,用户可以控制协程在一个任务中遇到IO就切换另一个任务

协程和线程比起来:

  协程不存在数据不安全的问题

  协程不能充分利用多核

  但是线程在Cpython解释器下实际上也不能利用多核

  所以相对来说,协程实际上在python中是更好的工具

什么是IO多路复用

  操作系统提供的代理,监听网络对象的IO操作

常见的IO多路复用机制

  select  轮询的方式获取每个对象的状态

  poll  底层数据结构与select不同,能够存储更多的对象,轮询的方式

  epoll  不采用轮询的方式来获取每个对象的状态,而是采用回调函数的方式

    所以在wait for data阶段  一收到数据就可以立即通知应用程序

    提高了效率,也减轻了操作系统的负担

你见过哪些锁?做什么用?各有什么特点

  互斥锁

  递归锁

   GIL

  死锁

今日内容

# 数据库基础
# 1.数据库在平时的开发中占有一个什么样的地位
# 2.数据库的发展史
# 3.数据库的分类
# 4.数据库中的一些基础概念
# 5.安装数据库
# 6.数据库的启动和停止
# 7.sql语句(操作数据库的语法)
# 和用户 权限相关的
# 数据库的基础操作
# 表的数据操作
# 数据的基础操作

数据 Data
  userinfo

  alex|sb

  id,alex,83,female,1373838438,IT

什么是数据库(DataBase)

  很多数据存储在一个大仓库中

  所谓数据库,就是所有的程序要的数据都存储在一个仓库中

  多个程序就在这个仓库中创建多个文件夹

  

  在一个数据库当中,可能存在多个程序的数据

  它们分别存储在不同的文件夹中

数据库管理系统DataBase Management System 简称DBMS

  负责了  程序的数据的增删改查 以及 权限控制等等的功能

  mysql oracle

  sqlserver sqllite

  redis mangodb

DBA 数据库管理员

  数据库的安装 配置

  创建用户 给你权限

  数据库的优化

  帮助你设计表结构

数据库服务器

给你提供服务的机器 就是服务器

给你提供数据库服务的机器 就是数据库服务器

数据管理系统

mysql oracle redis mangodb

很多条数据垒在一起形成一个文件

每一个程序都可能会有多个文件与之对应

多个文件组成一个子文件夹,这个文件夹单独的属于某个程序

表与记录的关系

记录 很多条数据

表 一个文件

库 一个文件夹

数据库

数据库管理系统的内部还有一个数据库的概念

数据库的分类

关系型

  mysql oracle sqlserver

非关系型

  redis

  memcache

  mangodb

实际上关系型数据库是非常节省空间,减少冗余数据

并且能够清晰的表达数据库与数据库之间关系的数据库管理工具

帮助我们能够存储复杂的数据结构

# 非关系型数据
# hbase redis mangodb
# key - value
# {张三:{'课程':{'课程名':''},'成绩':'asfjkhk'}}
# 快 \ 数据的冗余
# root用户是拥有最高权限的用户
# 创建一个权限有限的用户给别人使用
1、DDL语句 数据库定义语言: 数据库、表、索引、视图、存储过程,例如CREATE DROP ALTE
# create 创建 一个库 一个表
# drop 删除 删除一个库 删除一个表
# alter 修改
2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT  操作数据 
3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
创建用户
授权用户
取消授权
1. 操作文件夹(库)
增:create database db1 charset utf8;
查:show databases;
改:alter database db1 charset latin1;
删除: drop database db1; 2. 操作文件(表)
先切换到文件夹下:use db1
增:create table t1(id int,name char);
查:show tables;
改:alter table t1 modify name char(3);
alter table t1 change name name1 char(2);
删:drop table t1; 3. 操作文件中的内容(记录)
增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
查:select * from t1;
改:update t1 set name='sb' where id=2;
删:delete from t1 where id=1; 清空表:
delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1;数据量大,删除速度比上一条快,且直接从零开始, *auto_increment 表示:自增
*primary key 表示:约束(不能重复且不能为空);加速查找

day44 Pyhton 数据库Mysql的更多相关文章

  1. day45 Pyhton 数据库Mysql 02

    一.前期回顾 数据库 mysql的安装 配置环境 为什么要用数据库? 稳定性 一致性 并发 存取数据效率高 数据库的分类 关系型数据库 mysql oracle sqlserver 非关系型数据库 r ...

  2. day49 Pyhton 数据库Mysql 06

    多表查询 连表查询 要进行连接,那一定涉及两个表,两个表中要有关联条件才能进行连接 内连接 只有表一和表二中的连接条件都满足的时候才能显示出来 inner join on /where 条件 sele ...

  3. day46 Pyhton 数据库Mysql 03

    一内容回顾 存储引擎:主要描述的是数据存储的不同方式 innodb 支持事务\支持外键\行级锁\聚焦索引 myisam 不支持事务\不支持外键\表级锁\非聚焦索引 memory 只能在内存中存储表数据 ...

  4. day48 Pyhton 数据库Mysql 05

    一内容回顾 insert insert into 表名 (字段名)  values (值) insert into 表名 values (有多少个字段写多少个值) insert into 表名 val ...

  5. day47 Pyhton 数据库Mysql 04

    # 表结构 # 建表 - 表的增加 # create table # 删表 - 表的删除 # drop table # 改表 - 表的修改 # alter table 表名 # rename 新表名 ...

  6. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  7. Robot Framework-DatabaseLibrary数据库(MySql)

    Robot Framework-Mac版本安装 Robot Framework-Windows版本安装 Robot Framework-工具简介及入门使用 Robot Framework-Databa ...

  8. paip.导入数据英文音标到数据库mysql为空的问题之道解决原理

    paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙,  E ...

  9. paip.解决 数据库mysql增加列 字段很慢添加字段很慢

    paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6    数据仅仅3w alter table xxx add column yyy int default ...

随机推荐

  1. OneDrive Weblist

    OneIndex-Serverless 教程:https://zhuanlan.zhihu.com/p/74538287 https://github.com/LiuChangFreeman/OneI ...

  2. 企业网站还是要考虑兼容至少IE10

    中国国情,大部分企业还在使用win7,IE浏览器.为了兼容这些,还是少用比较VUE等一些高级的框架,改为使用jquery.用惯了VUE,jquey好多忘得差不多了,其中遇到的问题及解决方案 ajax, ...

  3. Linux:mysql编译安装

    mysql安装包有源码包和二进制包.源码包安装时需要编译.二进制包安装时不需要编译. 二进制格式的包名字很长,都带有版本号.适应平台.适应的硬件类型等,而源码格式仅仅就是一个版本号的tar包. 源代码 ...

  4. Oracle自动存储管理ASM

    参考资料: https://docs.oracle.com/cd/B19306_01/server.102/b14231/storeman.htm#ADMIN036 什么是ASM? ASM是Autom ...

  5. 【漫话DevOps】What is DevOps?

    最近几年"DevOps"这个关键词经常出现在项目开发当中,特别是随着微服务/容器/cloud在项目中的大范围应用,你不想知道都很难.作为一个伴随CI/CD到DevOps一路走来的工 ...

  6. Go语言 | 并发设计中的同步锁与waitgroup用法

    今天是golang专题的第16篇文章,我们一起来聊聊golang当中的并发相关的一些使用. 虽然关于goroutine以及channel我们都已经介绍完了,但是关于并发的机制仍然没有介绍结束.只有go ...

  7. 移动web开发之rem适配布局

    移动web开发之rem适配布局 方案: 页面布局文字能否随着屏幕大小变化而变化 流式布局和flex布局主要针对于宽度布局,那高度如何布局? 怎样让屏幕发生变化的时候元素高度和宽度等比例缩放? 1. r ...

  8. 现有 Vue.js 项目快速实现多语言切换的一种思路

    Web 项目多语言(i18n,即国际化)是比较常见的需求,常规的做法大概有以下几种: 每种语言单独开发页面,适用于 CMS 之类的网站 多语言文本和页面结构分离,运行时动态替换.适用于单页应用(SPA ...

  9. TS数据类型:类型别名/联合类型/字面量类型/类型推论等纲要

    在学C/C++  Java等强类型语言时,变量类型是唯一的,需要先指定.PHP JavaScript等弱类型语言时,无需指定变量类型 但是,TypeScript里面的联合类型 (Union Type) ...

  10. zookeeper服务端

    服务端启动时,就启动线程通过NIO监听网络端口.每个连接都会有一个上下文环境对象,当接收到请求后,会在上下文环境对象中进行处理. 服务端启动线程,监听网络端口,(NIOServerCnxn.Facto ...