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开始 但是只能给一个序号
多选多
Python 39 数据库的更多相关文章
- Python 39 数据库的数据类型
一:整型 为什么需要 数据分类? 1.为了描述事物更加准确 2.描述起来更方便 3.节省内存空间 例:1 a 你 utf8 下 5个字节 1 a b c unicode 6个字节 mysq ...
- Python学习笔记 - day11 - Python操作数据库
MySQL的事务 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关,MySQL的两种引擎如下: 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID ...
- python操作数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- python+mysql数据库的简单操作
最近接了一个任务,测试某项类似于收益情况报表的功能,因计算公式复杂,单纯手算过于复杂,所以想到写成脚本 根据python的分治原则,先整了几个函数用于实现计算逻辑,后发现数据输入过于繁琐,所以决定使用 ...
- python 从数据库表生成model
python 从数据库表生成model 找了很久才找到这个,我是新手... 现在已有建好的数据库,需要基于原有数据做数据分析的web应用,我选择python+Tornado ,由于不想写SQL语句,就 ...
- 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...
- python之数据库操作(sqlite)
python之数据库操作(sqlite) 不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协议是在编程语言内的直接A ...
- python操作数据库之批量导入
python操作数据库之批量导入 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的 ...
- 使用Python管理数据库
使用Python管理数据库 这篇文章的主题是如何使用Python语言管理数据库,简化日常运维中频繁的.重复度高的任务,为DBA们腾出更多时间来完成更重要的工作.文章本身只提供一种思路,写的不是很全 ...
随机推荐
- C# invoke和begininvoke的用法
namespace invoke和begininvoke的用法 { public partial class Form1 : Form { public Form1() { InitializeCom ...
- PHP 之CURL请求封装GET、POST、PUT、DELETE
/** * @Description: curl请求 * @Author: Yang * @param $url * @param null $data * @param string $method ...
- Sprinboot优雅配置监听,并记录所有启动事件
在阅读Springboot启动源码的时候,发现Springboot自动启动listeners是通过uopeizhi文件配置的,本文就是采用Springboot方式自动装入listeners. 项目依赖 ...
- 6 个 Linux 运维典型问题,大牛的分析解决思路在这里
作为一名合格的 Linux 运维工程师,一定要有一套清晰.明确的解决故障思路,当问题出现时,才能迅速定位.解决问题,这里给出一个处理问题的一般思路: 重视报错提示信息:每个错误的出现,都是给出错误提示 ...
- SpringBoot启动报jdbc连接池错误
如图,启动报连接池错误 项目中没有使用任何连接池,以为没用连接池的原因,所以配置了druid,一开始可以正常启动,但后来重启项目时仍旧报同样的错.网上找了资料,url中加useSSL=false,显式 ...
- exgcd扩展欧几里得求解的个数
知识储备 扩展欧几里得定理 欧几里得定理 (未掌握的话请移步[扩展欧几里得]) 正题 设存在ax+by=gcd(a,b),求x,y.我们已经知道了用扩欧求解的方法是递归,终止条件是x==1,y==0: ...
- 【Codeforces 522A】Reposts
[链接] 我是链接,点我呀:) [题意] 有人转载官方号的动态. 又有其他人转载其他人转载的动态. 问你最长的一条转载动态的链有多长. [题解] 用map把每个人的英文都转成小写的 然后从map中获取 ...
- 【Codeforces 474D】Flowers
[链接] 我是链接,点我呀:) [题意] 让你吃东西 B食物一次必须要吃连续k个 但是对A食物没有要求 问你有多少种吃n个食物的方法(吃的序列) [题解] 设f[i]表示长度为i的吃的序列且符合要求的 ...
- ansible common modules
##Some common modules[cloud modules] [clustering modules] [command modules]command - executes a comm ...
- Struts2 Action重启偶尔404 偶尔正常
这是一个痛苦的教训 因想懒省事,复制module.action 到product.action 跟user.action 然后修改代码内容 ,最痛苦的是 还用查找替换功能进行全部文字替换 , ...