python执行效率低,不适合做高并发
类中的静态方法用装饰器装饰的,原本函数不变,增加一些功能,
可迭代对象,迭代器,生成器
数据库
数据库本质是个文件,只不过是个特殊的文件,为了解决一些数据存储效率的问题
图片视频等信息不会存到数据库
一般idb作为数据库等后缀,用数据库等相关软件打开
数据库是由多个表组成的,数据表才是真正存储数据的地方
字段:记录同一类信息的一列
记录:描述某个事物的具体信息的一行
主键:唯一标识一行记录的特殊字段(不可重复,不可为空)
关系型数据库:数据库中表和表之间允许发生关联的
数据库服务端一般用C和汇编语言来写的,服务端和客户端通信用sql语句。我们重点是sql语句,sql语句不区分大小写
三大范式
1NF:无重复的列
2NF:属性完全依赖于主键
3NF:属性不依赖于其他非主属性
RDBMS:关系型数据库管理系统,都能使用sql语句
DQL
DML
mysql的安装和启动,查看启动
mysql的配置文件
socket本质上也是一个文件,本地有个文件记录链接信息,就是面向链接的
mysqld.cnf配置文件的作用:ip地址和端口号都放在配置文件里面写好了
navicat:图形化界面客户端
cd ~删除.navicat64,就可以试用了
utf8md4可以显示表情
ci表示不区分大小写
设计表(添加字段),之后再添加数据
数据库中往往需要保证数据的整洁性,数据的完整性。约束
区块链技术为了AI而火起来的,数据的准确性
数据类型:int、decimal、char和verchar、enum
很多用户名和密码一样,这样容易撞库。
12306验证码人工打码,有些策略可以让别人免费给你打工
mysql的两种登陆方式,三种退出方式
select version();
查看当前时间:select now();
查看使用的数据库:select database();
可以在文件中写好sql语句,复制过去
show databases;
不要乱动其他的数据库
使用数据库use daociyiyou;
若不设置字符集,那么默认是拉丁文,所以创建数据库的时候指定字符集
control + c / a / e
在没有使用数据库的时候,是不能看table的
数据类型必须放在最前面,数据约束之间位置可以互换
create table laoli(
id int unsigned primary key auto_increment not null,
name varchar(20) not null
);
显示描述表的信息(表结构):desc laoli;
查看表的字符集:show create table laoli;继承数据库的编码格式
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20),
age int unsigned,
high decimal(5,2),
gender enum(“nan”,’nv’,’baomi’) default “baomi”,
cls_id int
);
改字段用alter
insert into 表名 values(1,”“,18,166.66,2,110);
枚举2
id的位置填写null则数据库插入的时候自己指定主键
as取别名
delete 删除后就没有了,但是真实工作中不会这么做,而是加一个is_delete字段
比特类型数据,0是不显示的。
数据库备份,现在都是用集群。
每一列是一个不可分割的单元
后期用ORM,类的方式操作数据库
一旦取了别名,必须用别名。
sql语句的where条件句中判断等于18的,用用一个等号。
不等于用!=或<>都行。
python一切皆对象:int、string、function全部都是类
class关键字创建的类,是类对象,类是type这个源类创建的
type是最顶级的类,所有的类都是type创建的
10、“123”、def test()
私有化变量也是通过源类实现的。
银行里不允许出现四舍五入,所以每个数乘10000,取的时候再除10000
group by会对数据进行分组
inner join ,,,,,,on
左链接
题目:没有对应班级的信息
自关联查询:(省市区县)
多表连接查询比单表查询效率低,
group by去重比distinct效率高
每种类型中最贵的电脑的详细信息
三个表合成一个表,增强查询效率
一个表拆成三个表,数据插入,外键
工作中不建议使用外键,58同城数据库的58条军规
没有外键,插入垃圾数据怎么办?在业务层解决,python代码实现
主键自动增长,删除数据后想让主键连续,可以手动设置
enging=innoDB:关系型数据库,支持事务
面试小技巧:
类里面对相同的功能进行封装、不会重复,减少工作量
一个进程中打开最大的文件数量是1024个,文件资源描述符
sql注入,导致where语句失效 ‘ or 1 or ’
python变量的管理机制