Python之MySQL基础
一、存储引擎
1.1 什么是存储引擎
MySQL中的数据通过不同的技术存储再文件或者内存中,每种技术有不同的存储机制,索引技巧,锁定水平,并且提供不同的能力,而实现这些技术的我们就称之为存储引擎
1.2 都有哪些存储引擎
- InnoDB 最常用 支持事务,行级锁定
- MyISAM 不支持事务,表记锁定
- MEMORY 所有的数据都保存再内存中
1.3 Mysql的工作流程
- 第一层:连接处理,授权认证,安全
- 第二层:包含大多数核心功能,如查询解析、分析、优化、缓存以及所有的内置函数等,所有的跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等
- 第三层:存储引擎,负载数据的存储和提取,各个存储引擎之间没有通信
- 第四层:文件系统,数据,日志等都会以文件的形式存储再硬盘上
二、事务
ACID
原子
三、索引和键
3.1、主键
特点
- 一个表只能有一个主键
- 主键列非空且唯一
四、数据类型
4.1 数字类型
4.11、tinyint
4.12、int
4.13、bigint
4.14、FLOAT
4.15、DOUBLE
4.16、decimal
- 精确的浮点数
decimal(num1,num2) 是指总共10位,其中5位数小数点以后的位置,即小数点之前为5位,小数点后面位5位
4.2、字符串类型
4.2.1 char
- 固定长度,如果数据没有填满,则使用其他填充符号填充
- 速度快
4.2.2 varchar
- 不定长,数据多少就存多少
- 速度比char慢
4.2.3 text
- 存储大小比较大的字符串
- 如果存储文件或者图片时,将文件和图片放到服务器磁盘上,DB里面存储文件和图片的路径
4.3 时间类型
- 最常用的是datetime类型,有年月日,时分秒记录
4.4 enum
4.5 set
自增列
- 如果一列为自增列,有10行数据,删掉了后5行,再次插入数据时,自增列时从11开始的
- 如果我们自定义自增的开始值可以通过 alter table user_info auto_increment = 10; 设置自增开始值
# 创建一个user_info表,uid自增
CREATE TABLE user_info(
uid INT AUTO_INCREMENT PRIMARY KEY,
uname VARCHAR(20)
)ENGINE = INNODB DEFAULT CHARSET = utf8;
# 表内插入3条数据
INSERT INTO user_info(uname) VALUES('老赵');
INSERT INTO user_info(uname) VALUES('老李');
INSERT INTO user_info(uname) VALUES('老王'); SELECT * FROM user_info; # 删除第二条和第三条数据
DELETE FROM user_info WHERE uid = 2 OR uid = 3; # 再次插入一条数据
INSERT INTO user_info(uname) VALUES('老李');
# 再次查看uid为4
SELECT * FROM user_info;
之所以这样是因为这个表里uid是auto_increatment,每次新增数据,该值会随着发生变化,当有新增数据时,会将该值作为下一个uid的值插入
Python之MySQL基础的更多相关文章
- python操作mysql基础一
python操作mysql基础一 使用Python操作MySQL的一些基本方法 前奏 为了能操作数据库, 首先我们要有一个数据库, 所以要首先安装Mysql, 然后创建一个测试数据库python_te ...
- python 操作 mysql基础补充
前言 本篇的主要内容为整理mysql的基础内容,分享的同时方便日后查阅,同时结合python的学习整理python操作mysql的方法以及python的ORM. 一.数据库初探 在开始mysql之前先 ...
- python操作Mysql基础
import pymysql #不修改数据 def no_data_change(): db=pymysql.connect('host','user','pw','db_name') #host,u ...
- MySQL基础语句与其在Python中的使用
一.MySQL基础语句 $ mysql -u root -p (有密码时) $ mysql -u root (无密码时) QUIT (or \q) 退出 查看当前所有数据库 show dat ...
- python进阶08 MySQL基础补充
python进阶08 MySQL基础补充 本次课程都是基于三张表格的使用 一.子查询 #如何找到‘张三’的成绩 #思路:先找到张三的学号,在拿这个张三的学号到成绩表里面去匹配,得出成绩 #如何用一条查 ...
- python学习之-- Mysql 基础知识
数据库介绍及MYSQL基础操作了解 关系型数据库(RDBMS)是按照数据结构来组织,存储和管理数据的仓库.特点:1:数据以表格的形式出现2:每行为各种记录名称3:每列为记录名称所对应的数据域4:许多的 ...
- 使用 python 管理 mysql 开发工具箱 - 1
Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...
- python使用mysql数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- Python自动化 【第十二篇】:Python进阶-MySQL和ORM
本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 外键 增删改查表 权限 事务 索引 python 操作mysql ORM sql ...
随机推荐
- sql server查看表是否死锁
1,查看那个表死锁 select object_name(resource_associated_entity_id) as tableName, request_session_id as pid ...
- 硬盘安装Kali
网上找到一些用EasyBCD硬盘安装的方式,可能对Kali Linux 1.0 .2.0等较老版本有用.目前的最新的Kali Linux 2016.2 用EasyBCD可以进入 Live,但是进入li ...
- <TCP/IP原理> (一)
1.协议和标准 2.标准化组织 3.Internet标准:RFC 4.Internet的管理机构 一.协议和标准 1.协议(Protocol) 一组控制数据通信的规则 三要素:语法(syntax).语 ...
- JavaScript - proxy
Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等). 来看看常用的方法 handler.get() let o = { name: 'liwenchi', age: 1 ...
- 清理Windows Serer Backup备份数据生成的卷影副本(DiskShadow命令)
DiskShadow基本命令: 1.进入DiskShadow命令行: C:\>diskshadow 2.列出所有的卷影副本: DISKSHADOW> list shadows all 3. ...
- 如何快速上手Mac
网络上关于Mac的教程很多,大部分问题通过百度和谷歌就能搞定了.对于技巧的细节,我将不再过多的重复,看了我的参考资料基本就能够全部了解,他们也比我讲得详细得很多.我这篇文章想做的,是以一个普通的win ...
- Mac 上 Apache Apollo 的安装与运行,和官方下载文件中 Python 实例的演示
前不久我在 Mac 上成功安装了 mosquitto,这次我又试了试安装另一个热门的 broker —— Apache Apollo.对在 Mac 上安装 mosquitto 感兴趣的可以点击查看我的 ...
- ArcGis——好好的属性表,咋就乱码了呢?
我就瞎说一下,反正你也不懂. ——见到许多ArcGis属性表乱码的问题,也见过各种哭笑不得的解说 目录 第一节 字符编码那些事儿→字符编码简述 第二节 都是编码惹的祸→ArcGis属性表出错原因 第三 ...
- 【codeforces 983E】NN country
Description In the NN country, there are n cities, numbered from 1 to n, and n−1 roads, connecting t ...
- Swift 之cannot load module 'main' as 'Swift'
如果建立一个Project, 选Command Line程序,语言选Swift, 完成之后会有一个main.swift文件.这个文件用来练算法最好了,因为playground会有各种限制而且bug多多 ...