Python 39 数据库
一:数据存储引擎
1、 什么是引擎?
一个功能的核心部分
引擎可以被分类 例如:
自然 增压 汽油 柴油 混合动力 天然气 核动力
汽油:动力弱,噪音小,震动小
柴油:动力强,污染大,噪音大,震动大
需求场景不同催生了不同的引擎类别
2、再说mysql
核心功能是存储数据 涉及到存储数据的代码 就称之为存储引擎
根据不同的需求 也有着不同的引擎分类
不同的引擎测试
创建表时在最后指定引擎名称 engine=xxx
create table t1(id int)engine=innodb
create table t1(id int not null)engine=csv
create table t1(id int)engine=menory
create table t1(id int)engine=blackhole
insert into t1 value(1);
insert into t2 value(1);
insert into t3 value(1);
insert into t4 value(1);
总结:innodb是默认的引擎,因为它是永久存储 并且 支持事务,行锁,外键
二:表详细
创建表的完整语法 create 表名( 字段名称,数据类型【(长度)约束条件】, 字段名称,数据类型【(长度)约束条件】 )******
必须的:字段名 数据类型 表名 ***** 可选的:长度 约束条件 *****
长度用于设置时候的长度
数据类型也是一种约束 约束指的是除了数据类型外的额外的规范
如果添加的数据超过了指定的长度范围,超出范围的就丢弃;
注意:字段名 和 表名 库名 都不能是mysql的关键字 比如 select from not.... *****
三:时间和日期
分类
time 时分秒 HH:MM:SS ***
year 年份 ***
date 日期 年月日 ***
datetime日期加时间 年月日 时分秒 年份最大是9999 *****
timestamp 时间戳 从1970-1-1开始算 年份最大是2037 *****
共同点:时间的存取通过字符串多 都可以使用now()函数来插入当前时间
不同之处是:年份最大范围不同 时间戳可以为空 代表当前时间 时间戳在你更新记录时,会自动更新为当前时间
datetime 和 时间戳都能够表示日期和时间
四:枚举与集合
枚举
用于描述 一个已知范围的数据
例如性别:只有男 女 或其他 enum("man","woman","other")
总结:
枚举中只能是字符串类型
添加的数据只能是已经出现在枚举中的值
你的值只能是其中的一个
你也可以使用枚举值得序号来插入值 从1开始
集合
用于描述一堆数据 比如你的兴趣爱好
set("watch movie","listen music","play game")
总结:
集合中的数据 只能是字符串
添加的数据只能是已经出现在集合中的值
你的值可以是其中的任意几个
你也可以使用枚举值的序号来插入值 从1开始 但是只能给一个序号
多选多