随笔分类 -  数据库编程

摘要:什么是索引 在关系数据库中,索引是一种单独、物理的对数据库表中一列或多列的值进行排序的存储结构;也被称之为key。 索引相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 为什么需要索引 ,对数据的读操作会更加频繁,比例在10:1左右,也就是说对数据库的查询操作是非常频繁的。 随着时间的推移 阅读全文
posted @ 2018-11-27 18:04 msjaxuexi 阅读(149) 评论(0) 推荐(0)
摘要:if语句的使用 if 条件 then 语句; end if; 第二种 if elseif if 条件 then 语句1; elseif 条件 then 语句2; else 语句3; end if; 案例:编写过程 实现 输入一个整数type 范围 1 - 2 输出 type=1 or type=2 阅读全文
posted @ 2018-11-26 19:44 msjaxuexi 阅读(325) 评论(0) 推荐(0)
摘要:使用mysqldump程序进行备份 cmd 命令 可以选择要备份哪些表 如果不指定代表 全部备份 使用 mysql 进行恢复 1.退出数据库后 mysql -u -p < filename.sql; 需要在sql文件中指定使用库 2.不用退出数据库 ​ 2.1 创建空数据库 ​ 2.2选择数据库 ​ 阅读全文
posted @ 2018-11-26 19:40 msjaxuexi 阅读(181) 评论(0) 推荐(0)
摘要:内置函数 一、数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。 二、聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COU 阅读全文
posted @ 2018-11-26 19:25 msjaxuexi 阅读(111) 评论(0) 推荐(0)
摘要:什么是存储过程 存储过程是一组任意的sql语句集合,存储在mysql中,调用存储过程时将会执行其包含的所有sql语句;与python中函数类似; 为什么使用存储过程 回顾触发器与视图都是为了简化应用程序中sql语句的书写,但是还是需要编写,而存储过程中可以包含任何的sql语句,包括视图,事务,流程控 阅读全文
posted @ 2018-11-26 19:05 msjaxuexi 阅读(413) 评论(0) 推荐(0)
摘要:什么是事务 事务是逻辑上的一组操作,要么都成功,要么都失败 为什么需要事务 很多时候一个数据操作,不是一个sql语句就完成的,可能有很多个sql语句,如果部分sql执行成功而部分sql执行失败将导致数据错乱! 例如转账操作, 1.从原有账户减去转账金额 2.给目标账户加上转账金额 若中间突然断电了或 阅读全文
posted @ 2018-11-26 18:11 msjaxuexi 阅读(132) 评论(0) 推荐(0)
摘要:触发器 使用触发器可以定制用户对表进行【增,删,改】操作时前后的行为。 当我们想要在一个表记录被更新时做一些操作时就可以使用触发器 但是我们完全可以在python中来完成这个事情,因为python的扩展性更强,语法更简单 创建触发器 支持的时间点(t_time):时间发生前和发生后 before|a 阅读全文
posted @ 2018-11-26 17:05 msjaxuexi 阅读(774) 评论(0) 推荐(0)
摘要:为什么使用视图 当我们在使用多表查询时, 我们的sql语句可能会非常的复杂,如果每次都编写一遍sql'的话无疑是一件麻烦的事情,这时候就可以使用视图来避免多次编写sql的问题; 简答的说可以帮我们节省sql的编写, 视图的另一个作用是,可以不同的视图来展示开放不同数据的访问 例如,同一张工资表,老板 阅读全文
posted @ 2018-11-26 15:28 msjaxuexi 阅读(171) 评论(0) 推荐(0)
摘要:后期开发中都是用框架代替pymysql 为什么使用pymysql 因为我们需要在程序去连接数据库进行增删改查 阅读全文
posted @ 2018-11-23 20:19 msjaxuexi 阅读(97) 评论(0) 推荐(0)
摘要:mysql中 将于用户相关的数据放在mysql库 user - > db - > tables_priv -> columns_priv 如果用户拥有对所有库的访问权 则存储在 user中 如果用户拥有对部分库的使用权 db 如果用户拥有对部分表的使用权 tables; 如果用户拥有对表中某些字段的 阅读全文
posted @ 2018-11-23 20:04 msjaxuexi 阅读(140) 评论(0) 推荐(0)
摘要:1.笛卡尔积查询 select *from 表1,表n 查询结果是 将坐标中的每条记录 与右表中的每条记录都关联一遍 因为 他不知道什么样的对应关系是正确 只能帮你都对一遍 a表有m条记录 b表有n条记录 笛卡尔积结果为m * n 记录 笛卡尔积的形式 + + + + + + +| id | nam 阅读全文
posted @ 2018-11-22 20:11 msjaxuexi 阅读(169) 评论(0) 推荐(0)
摘要:1.记录的详细增加方式 insert into 表名[(字段1,字段2,~)] values (值1,值2,~), (值1,值2,~) into可以省略。表名后的字段可选 如果写了表名后的字段名,后面values 中必须与表名的字段一一对应。 如果没有写,后面的values中的值必须与表的所有字段一 阅读全文
posted @ 2018-11-22 18:35 msjaxuexi 阅读(255) 评论(0) 推荐(0)
摘要:mysql> create table class (id int primary key auto_increment,caption char(10)); mysql> insert into class(caption) values ("三年级二班"),("一年级三班"),("三年级一班") 阅读全文
posted @ 2018-11-21 18:12 msjaxuexi 阅读(134) 评论(0) 推荐(0)
摘要:修改表 add alter table 表名 add 字段名 类型[(长度),约束条件]; drop alter table 表名 drop 字段名; change alter table 表名 change 原字段名 新字段名 类型[(长度),约束条件]; modify alter table 表 阅读全文
posted @ 2018-11-21 16:43 msjaxuexi 阅读(138) 评论(0) 推荐(0)
摘要:为什么建立分表 只使用一个表的话: 1.重复数据,浪费空间 2.数据结构混乱 3.扩展性差 什么时候分表 当出现大量重复数据时 当一条记录中的数据 不属于同一类时 分表之后,几个表之间存在内在的关系,就需要联合在一起,就会存在:多对多,一对多,一对一的关系。 必须找到一种方法,可以在物理层面建立关联 阅读全文
posted @ 2018-11-21 16:32 msjaxuexi 阅读(467) 评论(0) 推荐(0)
摘要:1.int(10) 该数据类型占几个字节,10的含义是什么? int 占四个字节,显示十进制的可以显示的宽度。 2.总结char 和varchar的区别以及优缺点: char是不可变长的字符串,varchar是可变长的字符串。char特点:读取速度快,比较浪费存储空间;varchar特点:读取速度慢 阅读全文
posted @ 2018-11-20 19:51 msjaxuexi 阅读(141) 评论(0) 推荐(0)
摘要:详细的建表语句 create table 表名(字段名 数据类型[(长度) 约束条件] []代表可选 为什么需要给数据数据分类? 1.表述数据更加正确 2.节省内存空间 数据类型 整形类型 默认是有符号的, 设置为无符号 1.create table t2 (age tinyint unsigned 阅读全文
posted @ 2018-11-20 18:31 msjaxuexi 阅读(934) 评论(0) 推荐(0)
摘要:针对库的相关操作 增 create database 库名称 删 drop database 库名称 改 alter database 库名称 要改的属性名称 alter database db1 DEFAULT CHARACTER SET utf8; alter database db1 CHAR 阅读全文
posted @ 2018-11-19 16:04 msjaxuexi 阅读(182) 评论(0) 推荐(0)
摘要:1.代码界面 傻瓜式安装 记住密码 2.绿色解压版 1. 5.7以后的版本需要先初始化 mysqld --initialize-insecure 2.启动需要先进入安装目录 比较麻烦 需要添加到环境变量 打开环境变量 将mysql安装目录下的bin加入path变量 3.将mysqld 加入到wind 阅读全文
posted @ 2018-11-19 15:58 msjaxuexi 阅读(1061) 评论(0) 推荐(0)