随笔分类 - MySQL
摘要:DBUtils 是一套 Python 数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。 一、安装 pip install DBUtils 二、导入模块 # 针对不同版本,可能导入方式存在差别 try: from dbutils.pooled_db import PooledDB fr
阅读全文
摘要:一、表结构一致 允许插入重复数据 insert into 表1 select * from 表2; 不允许插入重复数据 insert into 表1 select * from 表2 where NOT EXISTS (select * from 表1 where 字段1 = 表2.字段1); 二、
阅读全文
摘要:使用连接查询来实现: update a inner join b on a.num = b.num set a.num_id = b.id; a表中的num字段和b中的num字段值相等,就将b表的id值写入a表的num_id字段
阅读全文
摘要:我们测试下3种插入操作方式的性能情况(以10000次为例): 1、每条数据都进行execute和commit 2、多次执行exectue,最后commit 3、使用executemany执行1次,然后commit1次 示例: # coding:utf-8 import time import pym
阅读全文
摘要:一、环境安装及运行 安装(ubuntu系统) sudo apt-get install mysql-server mysql-client 根据提示,设置root用户的密码 管理服务 sudo service mysql start #开启 sudo service mysql stop #关闭 s
阅读全文
摘要:1.安装引入模块 安装mysql模块 pip install PyMySQL; 文件中引入模块 import pymysql 2.认识Connection对象 用于建立与数据库的连接 创建对象:调用connect()方法 conn = pymysql.connect(host="主机",port=3
阅读全文
摘要:1.索引: 针对数据库中现有的数据,整理出一块物理存储下来的用于快速查找数据用的的东西。 数据库中实际数据的存储会按照某种索引,默认是按照主键(特殊的索引),并且数据物理结构上的存储顺序也是按照主键的顺序。 索引的创建会增大物理上的开销。 2.创建索引时如何选择列的数据类型? 数据类型小:越小的数据
阅读全文
摘要:事务: 当一个业务需要多个操作步骤(insert ino | update | delete from)时,只有所有步骤都完成才算完成,如果其中某条sql语句出错,则整个操作都退回。 使用事务可以完成退回的功能,从而保证业务逻辑的正确性。 事务的本质是:上锁 事务的四大特性(简称ACID): 原子性
阅读全文
摘要:1.视图是什么? 视图的本质就是对复杂的查询语句进行封装,相当于生成了一个新的表,它的用途就是查询。 2.为什么要创建视图? 对于复杂的查询,在多次使用后维护起来比较麻烦,我们可以通过定义视图的方式来解决。 3.视图如何使用? 创建视图 create view 视图名 as select语句; 通常
阅读全文
摘要:自关联: 表中的某一列,通过外键引用了本表的另外一列(主键),但是它们的业务逻辑含义又是不一样的,这就是自关联 物理上一张表,逻辑上是多张表,必须通过取别名来区分,能够节省表的开销 自关联的应用场景: 我们设计了省(provinces)信息的表结构(id,ptitle)和市(cities)信息的表结
阅读全文
摘要:当查询的结果来源于有关系的多张表时,需要使用到连接查询 连接查询分类: 内连接(inner join):表A inner join 表B,表A和表B都匹配的行出现在结果集当中(不区分两个表的先后顺序) 左连接(left join):表A left join 表B,表A与表B都匹配的行会出现在结果中,
阅读全文
摘要:1.认识外键; 在存储关系的表中添加字段,为该字段创建外键来引用另一个表的主键,从而建立关系 通过外键约束进行数据的有效性验证,当添加或修改的数据不是引用另一个表的主键时,则报错 2.外键约束如何创建? 方式1:创建表时可以直接创建约束 create table 表名( 字段 类型..., ...
阅读全文
摘要:一、聚合 聚合能够快速得到统计数据,以下提供了5个聚合函数: count(*):表示计算总行数,等同于 count(列) max(列):表示求此列的最大值 min(列):表示求此列的最小值 sum(列):表示求此列的和 avg(列):表示求此列的平均值 例: 查询学生总数 select count(
阅读全文
摘要:使用where子句对表中的数据筛选,结果为true的行会出现在结果集中,语法如下: select * from 表名 where 条件; where后面的筛选条件有以下5种: 1.比较运算符 等于:= 大于:> 大于等于:>= 小于:< 小于等于:<= 不等于:!= 通过以下几个例子来加深理解: 查
阅读全文
摘要:一、数据库操作 创建数据库 create database 数据库名 charset=utf8; 删除数据库 drop database 数据库名; 切换数据库 use 数据库名; 查看当前选择的数据库 select database(); 二、表操作 查看当前数据库中所有表 show tables
阅读全文
摘要:一、数据库备份 1.进入超级管理员 sudo -s 2.进入mysql库目录 cd /var/lib/mysql 3.运行mysqldump命令 mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;#(路径自定义) 按照提示输入root账号密码 二、数据库恢复
阅读全文
摘要:1.通过root账号登陆数据库 mysql -uroot -p 然后输入root账号密码 2.创建新用户,并授权该用户可以操作的数据库和表 grant all privileges on 数据库名.表名 to '用户名'@'主机名' identified by '密码' with grant opt
阅读全文
摘要:1.安装 sudo apt-get install mysql-server mysql-client 然后根据提示设置root用户的密码 2.管理服务 开启 sudo service mysql start 关闭 sudo service mysql stop 重启 sudo service my
阅读全文