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开始 但是只能给一个序号    

多选多

原文地址:https://www.cnblogs.com/zedong/p/9636064.html