主键、表关系、范式、队列和栈有什么特点、进程 线程 协程、面向对象的封装有什么特点、什么叫可迭代对象?迭代器?生成器是迭代器吗?、死锁 互斥锁

主键约束:主健对应的字段中的数据不允许重复,一旦重复,数据操作(增和改)失败

更新主键 & 删除主键

alter table 表名 drop primary key;

主键分类: 业务主键、逻辑主键

自动增长:auto_increment,当对应的字段,不给值,或给默认值、或给NULL值,会自动的被系统触发,系统会从当前字段中已有的最大值基础上,再进行+1操作,得到一个新的不同的数据

修改自增长:alter table 表名 auto_increment=值;

查看自增长对应的变量:show variables like ‘auto_increment%’;

删除自增长:alter table 表名 modify 字段类型;

唯一健(unique key):默认允许自动为空,而且可以多个为空

增加唯一健:

方案一: 在创建表的时候,字段之后直接跟unique/unique  key

方案二: 在所有的字段之后增加unique key(字段列表);

方案三: 在创建表之后增加唯一健

更新唯一健 & 删除唯一健:

错误的删除方法:

alter table 表名 drop unique key;

alter table 表名 drop index 索引名字;

索引:系统根据某种算法,将已有的数据,或未来可能新增的数据,单独独立一个文件,文件能够实现快速的匹配数据,并且能够快速地找到对应表中的记录

索引的意义:

提升查询数据的效率

约束数据的有效性、唯一性等

MySQL中提供了多种索引

主键索引:primary key

唯一索引:unique key

全文索引:fulltext index

普通索引:index

表关系:

一对一:一张表的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然

一对多:一张表中有一条记录可以对应另外一张表中的多条记录,但是反过来,另外一张表的一条记录只能对应第一张表的一条记录

多对多:一张A表中的一条记录,能够对应B表中的多条记录,同时B表中的一条记录也能对应A表中的多种记录

范式:

Normal Format,是一种离散数学中的知识,是为了解决一种数据的存储与优化的问题,它的终极目标是为了减少数据的冗余

范式是一种分层结构的规范,分为六层:

1NF、2NF、3NF、......6NF

1NF是最底层,要求最低

6NF是最高层,要求最严格

第一范式 (1NF) :要求字段的数据具有原子性

第二范式 (2NF) :要解决表的设计不允许出现部分依赖

第三范式 (3NF) :解决传递依赖的问题

队列和栈有什么特点:

队列是只允许在一端进行插入操作、而在另一端进行删除操作的线性表

栈是限定仅在表尾进行插入和删除操作的线性表

队列:先进先出

栈:先进后出

队列:基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快

栈:只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,遍历数据时需要微数据开辟临时空间,保持数据在遍历前的一致性

进程 线程 协程:

进程:是系统中资源分配和运行调度的单位

线程:是进程的⼀个实体, 也叫轻量级进程,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有⼀点在运行中必不可少的资源。但是它可与同属⼀个进程的其他的线程共享进程所拥有的全部资源.

协程:协程执行过程中,在协程内部可中断,然后转而执行别的协程,在适当的时候再返回来接着执行。协程之间不是调用者与被调用者的关系,而是彼此对称、平等的,通过相互协作共同完成任务。

面向对象的封装有什么特点:

就是把抽象的数据和对数据进行的操作封装在一起,将属性和方法封装到一个抽象的类中

数据被保存在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。外界使用类创建对象,然后让对象调用方法

通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。对象方法的细节都被封装在类的内部

什么叫可迭代对象?迭代器?生成器是迭代器吗?:

可迭代对象:

可迭代对象包含迭代器。

如果一个对象拥有__iter__方法,其是可迭代对象

迭代器:

一个对象拥有next方法,就是迭代器

生成器:

生成器是特殊的迭代器

死锁 互斥锁:

死锁:

1.关于死锁。 死锁,就是当多个进程或者线程在执行的过程中,因争夺共享资源而造成的一种互相等待的现象,一旦产生了死锁,不加人工处理,程序会一直等待下去,这也被称为死锁进程。

互斥锁:

只有当一个进程在进行资源的时候,进行上锁,可以保护资源,只有当他运行玩的时候,才会进行解锁。对数据的保护

你可能感兴趣的:(主键、表关系、范式、队列和栈有什么特点、进程 线程 协程、面向对象的封装有什么特点、什么叫可迭代对象?迭代器?生成器是迭代器吗?、死锁 互斥锁)