随笔分类 - 学习笔记-Mysql
摘要:数据库连接池 数据库的连接,执行到释放,过程十分浪费系统资源 所以出现了一种技术叫做:池化技术 池化技术:准备一些预先的资源,过来就连接预先准备好的资源 最小连接数:根据业务来调整,常用连接数在100个左右,最小连接数为100即可 最大连接数:业务最高承载上限 超过了最大连接数就需要排队等待,等别人
阅读全文
摘要:JDBC操作事务 事务的原则:ACID 原子性:全部成功,或全部失败 一致性:事务执行前后数据一致 隔离性:两个事务互不干扰 持久性:一旦提交,不可不可逆,持久化到数据库 隔离性带来的问题 脏读:一个事务读取到了另一个事务没有提交的数据 不可重复度:在一个事务内,多次读取,数据发生变化 幻读(虚读)
阅读全文
摘要:sql注入问题和Preparement sql注入问题 SQL 注入就是在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数据库服务器误认为是正常的 SQL 语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据。 例如: 恶意拼接
阅读全文
摘要:提取工具类 我们去查询数据库时,只有sql代码是核心业务,其他的代码如果每次都写,十分重复,所以我们要将一些重复的代码提取出来,做工具类,每次执行业务,只调用这个工具类即可。 首先把 driver、 url 、username、 password 放到配置文件中,在工具类中将这些读取 driver=
阅读全文
摘要:JDBC 什么是数据库驱动 数据库驱动就是连接应用程序与数据库的 如果没有数据库驱动,应用程序是无法直接到达数据库的,数据库驱动是由数据库厂商来做的 什么是JDBC SUN公司为了简化开发人员对数据库的统一操作,提供了一个(Java操作数据库)规范,成为JDBC 这些规范的实现由具体的厂商去做 对开
阅读全文
摘要:三大范式 为什么要数据规范化? 信息重复 更新、插入、删除异常 三大范式 参考博客:关系型数据库设计:三大范式的通俗理解 - 景寓6号 - 博客园 (cnblogs.com) 第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。 原子性:保证每一列不可再分 图中存在可在分的项如学校信息
阅读全文
摘要:数据库用户管理和备份 用户管理 可视化管理 用navicat可视化管理软件进行用户的添加删除和权限的管理 新建用户 连接用户 sql命令操作 对用户的操作实际上是对 mysql 数据库 中 user表的操作 -- 创建用户 CREATE USER 用户名 IDENTIFIED BY '密码' CRE
阅读全文
摘要:索引 mysql官方对索引的定义为:索引(index)是帮助Mysql高效获取数据的数据结构 ,提取句子主干,就可以得到索引的本质:索引是数据结构。 索引的分类 主键索引 (PRIMARY KEY) 唯一的标识,主键不可重复,只能有一个列作为主键 唯一索引 (UNIQUE KEY) 避免重复的列出现
阅读全文
摘要:事务 什么是事务? 要么都成功,要么都失败 以转账为例: 有两条sql,第一条是A给B转账,第二条是B接收A的转账 这两条语句,必须都成功,或都失败,不能一条成功,一条失败 事务原则:ACID原则 原子性(Atomicity):事务中的操作要么都发生,要么都不发生。 如A给B转账,B收到A的转账,这
阅读全文
摘要:数据库级别的MD5加密 什么是MD5? MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。 MD5的特点:主要增强算法复杂度和不可逆性 所以
阅读全文
摘要:Mysql函数 常用函数 数学运算 SELECT ABS(-100) -- 绝对值 SELECT CEILING(6.5) -- 向上取整 SELECT FLOOR(6.5) -- 向下取整 SELECT RAND() -- 返回浮点型随机数 SELECT SIGN(-96969) -- 返回一个数
阅读全文
摘要:子查询和分组过滤 子查询 子查询就是在where语句中,再嵌套一个查询语句 下面我们以查询学生考试信息为例,列举三种查询方式 查询C语言-1的分数大于20分的学生信息(学号、姓名、考试成绩),分数降序排序 联表查询 SELECT s.studentno,studentname,studentresu
阅读全文
摘要:分页和排序 排序 关键字:ORDER BY 升序:ASC 降序:DESC 我们以学生成绩的升序降序为例,将学生排序 语法:ORDER BY 字段名 DESC/ASC SELECT s.studentno,studentname,subjectname,studentresult FROM stude
阅读全文
摘要:联表查询和自连接 七种join理论 想要在多个表中查询数据的思路: 分析需求,即想要查询哪些字段,以及这些字段来自哪些表 确定使用哪种连接,即七种join中的哪一种 确定交叉点 判断条件:即两个表中相同的字段 我们首先以查询所有学生的学号、姓名、科目、考试成绩,为例 student表是做表,resu
阅读全文
摘要:DQL查询数据 DQL Data Query Language 使用select,查询 是数据库中最核心的语言 使用频率最高的语句 查询指定字段 -- 查询学生表所有信息 SELECT * FROM `student` -- 查询指定字段 SELECT `studentno`,`studentn
阅读全文
摘要:DML语言(添加、修改、删除) 添加 使用insert关键字 -- 插入一条数据,包含多个字段 INSERT INTO `student`(`name`,`age`,`gradeid`) VALUES('张三',10,1001) -- 可以省略字段名,但是后面的值要与表结构一一对应,否则会报错
阅读全文
摘要:数据库外键 方式一:在创建表的时候,添加外键 CREATE TABLE `grade`( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id', `gradename` VARCHAR(10) COMMENT '年级名称', PRIMARY
阅读全文
摘要:InnoDB 和 MYISAM 的区别 InnoDB 和 MYISAM 是 数据库引擎,也就是数据库表的类型 INNODB 现在默认使用 MYISAM 早些年默认使用 INNODB 和 MYISAM 的区别 MYISAM INNODB 事务支持 不支持 支持 数据行锁定 不支持 支持 外键约束 不支
阅读全文
摘要:操作数据库表 创建数据库表 我们以创建学生表为例,里面的字段有:id、姓名、性别、出生日期、email等。 CREATE TABLE `student`( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(20) NO
阅读全文
摘要:数据库的列类型和字段属性 列类型 数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节 bigint 较大的整数 8个字节 float 浮点数 4个字节 double 较大的浮点数 8个字节
阅读全文