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 ...
随机推荐
- [Luogu 4245] 任意模数NTT
Description 给定 \(2\) 个多项式 \(F(x), G(x)\),请求出 \(F(x) * G(x)\). 系数对 \(p\) 取模,且不保证 \(p\) 可以分解成 \(p = a ...
- Java 删除ArrayList中重复元素,保持顺序
// 删除ArrayList中重复元素,保持顺序 public static List<Map<String, Object>> removeDuplicat ...
- Celery
在程序的运行过程中,我们经常会碰到一些耗时耗资源的操作,为了避免它们阻塞主程序的运行,我们经常会采用多线程或异步任务.比如,在 Web 开发中,对新用户的注册,我们通常会给他发一封激活邮件,而发邮件是 ...
- 3d
http://jokerwang.com/diy-3d%E6%89%93%E5%8D%B0%E6%9C%BA1-%E7%A1%AC%E4%BB%B6%E7%AF%87/
- HAOI2019+十二省联考 游记
Day1 T1 考前还奶了一口不会考01Trie的,也就没有学,然后60分BOOM T2 不会SAM,告辞,30分滚粗 T3 传统实现题答?2p,2u,2g分别对应素数,莫比乌斯函数,原根?没看出来, ...
- makefile 转载
http://blog.csdn.net/hongfuhaocomon/article/details/51523394 http://blog.csdn.net/lanmanck/article/d ...
- QTcpSever和QTcpSocket实现多线程客户端和服务端;
QTcpServer提供了newConnection信号, 可以通过connect实现连接槽函数,利用nextPendingConnection 函数获取连接的QTcpSocket * :也可以继承Q ...
- BeanUtils 日期转换(本地格式yyyy-MM-dd)转换成date
1.BeanUtils工具的使用 1)beanUtils 可以便于对javaBean的属性进行赋值. 2)beanUtils 可以便于对javaBean的对象进行赋值. 3)beanUtils可以将一 ...
- 1. Ansible 简介
目录 1. Ansible 是什么? 2. Ansible 特性 3. 控制主机需求 4. 被管理节点需求 1. Ansible 是什么? Ansible 是一个配置管理系统(configuratio ...
- mysql数据库 删除某几个字段相同的重复记录并根据另一字段留下一条记录
1.例如Mysql数据库中表a中的记录,id=2,id=6,id=7的记录是重复的(iId,cId等多个字段相同),现在想留下id最小(id=2)或最大(id=7)的一条记录