【基础学习-MySQL】
MySQL
我一直在流浪
这个作者很懒,什么都没留下…
展开
-
MySQL 数据库索引数据结构的选择
文章目录1. MySQL 数据库索引的数据结构选择1.1 Hash索引1.2 二叉搜索树 & 平衡二叉树1.3 B 树(多路平衡搜索树)1.4 B + 树2. 聚簇索引和非聚簇索引2.1 利用聚集索引查找数据2.2 利用非聚集索引查找数据3. 主键索引和非主键索引4. MySQl存储引擎1. MySQL 数据库索引的数据结构选择1.1 Hash索引哈希索引就是采用一定的哈希算法,将键值通过hash(key)算法转化为数组的桶下标(比如John Smith转换为152,LisaSmith转化为原创 2020-08-11 14:45:14 · 728 阅读 · 0 评论 -
MySQL基础查询
这种基础的东西,学的时间久了就容易忘,脑子太不好使了。。。文章目录MySQL中SQl基本语法1、数据库基本操作DML、DDL2、数据库DQL(重点)1、简单查询2、条件查询3、排序查询4、分组函数与去重5、分组查询6、SQL编写和解析顺序7、连接查询8、子查询9、limit 分页查询3、MySQL 20道练习题MySQL中SQl基本语法1、数据库基本操作DML、DDL1、DQL:查询语句,凡是select语句都是DQL2、DML:insert delete update:对表中的数据进行增删改查原创 2020-05-15 17:33:29 · 891 阅读 · 0 评论 -
MySQL高级-06:MySQL锁问题
文章目录一、MySQL锁问题1. 锁分类2. MySQL锁3. MyISAM 表锁3.1 如何加表锁3.2 读锁案例一、MySQL锁问题锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据...原创 2020-03-24 23:25:29 · 263 阅读 · 0 评论 -
MySQL高级-05:应用优化_MySQL中查询缓存优化_内存管理及优化_并发参数调整
文章目录一、 应用优化1. 使用连接池2. 减少对MySQL的访问3. 负载均衡二、Mysql中查询缓存优化1. 查询缓存配置2. 开启查询缓存3. 查询缓存SELECT选项4. 查询缓存失效的情况三、Mysql内存管理及优化1. 内存优化原则2. MyISAM 内存优化2. InnoDB 内存优化四、Mysql并发参数调整一、 应用优化1. 使用连接池对于访问数据库来说,建立连接的代价是比...原创 2020-03-24 16:59:10 · 355 阅读 · 0 评论 -
MySQl高级-04:索引使用_SQL优化
文章目录一、索引的使用1. 环境准备2. 避免索引失效3. 查看索引使用情况二、SQL优化1. 大批量插入数据2. 优化insert语句3. 优化order by语句4. 优化group by 语句5. 优化嵌套查询6. 优化OR条件7. 优化分页查询一、索引的使用索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题。1. 环境准备...原创 2020-03-24 14:51:21 · 492 阅读 · 0 评论 -
MySQL高级-03:存储引擎_SQL优化步骤
文章目录一、存储引擎1. InnoDB2. MyISAM二、优化SQL步骤1. 查看SQL执行频率2. 定位低效率执行SQL3. explain分析执行计划4. show profile分析SQL5. trace分析优化器执行计划一、存储引擎和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。存储引擎就是存储数据,建立索引,更新查询数据等等...原创 2020-03-24 09:59:06 · 254 阅读 · 0 评论 -
MySQL高级-02:存储过程和函数_触发器
文章目录一、存储过程和函数1、创建存储过程2、调用存储过程3、查看存储过程4、删除存储过程5、语法1. 变量2. if条件判断3. 传递参数4. case结构5. while循环6. repeat循环一、存储过程和函数存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据...原创 2020-03-23 21:46:05 · 262 阅读 · 0 评论 -
MySQL高级-01:索引_视图
文章目录一、索引1. 索引概述2. 索引结构1. BTree结构一、索引1. 索引概述MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示 :左边是数据表,一共有...原创 2020-03-23 16:13:10 · 238 阅读 · 0 评论 -
JDBC工具类
JDBCUtils工具类import javax.swing.text.SimpleAttributeSet;import java.sql.*;//JDBC工具类public class JDBCUtils { /* 工具类中的构造方法都是私有的 因为工具类的方法都是私有的,不用new对象 只能通过类名来调用 */ private JD...原创 2019-10-16 17:10:50 · 340 阅读 · 0 评论 -
JDBC操作MySQL中事务
drop table if exists t_act; create table t_act( actno bigint, balance double(7,2) ...原创 2019-10-16 16:37:13 · 198 阅读 · 0 评论 -
MySQL演示事务隔离级别
1.演示读未提交(read uncommitted)退出以后重新开启这两个事务:2.演示读已提交(read committed)3.演示可重复读(repeatable read)原创 2019-10-16 15:08:29 · 270 阅读 · 0 评论 -
MySQL事务的rollback和commit
1.事务概述2.演示事务MySQL的事务只要执行一条DML语句就会自动提交:可以选择手动提交来关闭自动提交:如果只是回滚rollback但是没有提交的话,不会改变硬盘中的数据,所以回滚以后查询不出来两条结果下面演示提交之后查询的数据:...原创 2019-10-16 13:34:47 · 1458 阅读 · 0 评论 -
MySQL存储引擎
建表的时候可以使用存储引擎,也可以指定字符集MySQL默认的存储引擎方式为InnoDB默认的字符集为 utf8常用的三种存储引擎:表的不同的存储方式InnoDB:支持事务,外键,行级锁,最安全*************************** 1. row ***************************Engine: InnoDBSupport: DEFAULT...原创 2019-10-16 11:34:01 · 174 阅读 · 0 评论 -
MySQL建表的约束
文章目录1.非空约束2.唯一性约束3.主键约束4.主键自增5.外键约束1.非空约束2.唯一性约束以后无论是表级约束还是列级约束尽量用表级约束,即第二种方式非空约束只用列级约束3.主键约束任何一张表都要有主键,并且只能有一个列级约束:表级约束:4.主键自增5.外键约束drop table if exists t_student;drop table...原创 2019-10-16 11:11:34 · 571 阅读 · 0 评论 -
MySQL表中数据的操作(增删改)
文章目录1.建表2.向表中插入数据1.建表2.向表中插入数据原创 2019-10-16 09:16:05 · 224 阅读 · 0 评论 -
MySQL中where,from,select后面嵌套子查询
1.找出高于平均薪资的员工信息2.找出每个部门平均薪水的薪资等级3.找出每个部门平均的薪水等级注意::::下面如果把查询出来的结果当做一张临时表就是错误的,比如我下面的做法因为效率会降低.正确的做法:...原创 2019-10-15 21:36:07 · 11798 阅读 · 1 评论 -
MSQL中三张以上表的连接
1.找出每个员工的部门名称和工资等级2.找出每个员工的员工名称,部门名称,工资等级及上级领导名称原创 2019-10-15 20:36:56 · 3408 阅读 · 0 评论 -
MySQL多表查询的外连接
文章目录1.找出每个员工的上级领导2.找出哪个部门没有员工1.找出每个员工的上级领导2.找出哪个部门没有员工原创 2019-10-15 20:00:13 · 641 阅读 · 0 评论 -
MySQL多表查询的内连接
1.找出每一个员工的部门名称,要求显示员工名和部门名2.找出每个员工的工资等级,显示员工名,工资,工资等级3.找出每个员工的上级领导,要求显示员工名和对应的领导名...原创 2019-10-15 19:27:40 · 587 阅读 · 0 评论 -
MySQL中的group by和having
文章目录1.找出每个工作岗位的最高薪资2.用group by时select后面只能跟参加分组的字段以及分组函数3.找出每个工作岗位的平均薪资4.找出每个部门不同工作岗位的的最高薪资5.找出每个部门的最高薪资,显示薪资大于3000的数据:where6.找出每个部门的平均薪资,显示薪资大于2000的数据:having1.找出每个工作岗位的最高薪资2.用group by时select后面只能跟参...原创 2019-10-15 17:19:49 · 1185 阅读 · 0 评论 -
MySQL分组函数
文章目录1.单行处理函数:ifnull()2.找出工资总和,最低工资,最高工资,平均工资3.找出总人数4.分组函数自动忽略null5.分组函数不可以直接使用在where子句中6.count(*)与count(具体字段)的区别1.单行处理函数:ifnull()2.找出工资总和,最低工资,最高工资,平均工资3.找出总人数4.分组函数自动忽略null5.分组函数不可以直接使用在wh...原创 2019-10-15 15:42:47 · 171 阅读 · 0 评论 -
MySQL数据排序(order by)
1.按照工资升序和降序排序,找出员工名和薪资2.按照工资的降序排列,工资相同时,按照名字的升序排列3.找出工作岗位是SALESMAN的员工,并且按照工资降序排列...原创 2019-10-15 14:25:14 · 454 阅读 · 0 评论 -
MySQL模糊查询语句
文章目录1.找出名字中含有o的:`'%o%'`2.找出名字中第二个字母是A的:`'_A%'`3.找出名字中第三个字母是A的:`'_ _A%'`4.找出名字中有下划线的:`'%/_%'`6.找出名字中最后一个字母为T的:`'%T'`1.找出名字中含有o的:'%o%'2.找出名字中第二个字母是A的:'_A%'3.找出名字中第三个字母是A的:'_ _A%'4.找出名字中有下划线的:'%/...原创 2019-10-15 14:05:19 · 686 阅读 · 0 评论 -
MySQl条件查询语句
文章目录1.查询工资等于5000的员工姓名:=2.查询SMITH的工资:=3.查询工资大于3000的员工:>4.找出工资不等于3000的员工:<>,!=5.找出工资在1100-3000之间的员工,包括两端:between6.找出哪些人没有津贴:is null7.找出哪些人有津贴:is not null8.找出工作岗位是SALESMAN和MANAGER的员工:or,in9.找出薪资...原创 2019-10-15 13:43:21 · 1819 阅读 · 0 评论 -
MySQl简单查询语句
文章目录1.查询多个字段:2.查询的字段可以参与数学运算:3.查询字段后重命名:4.查询所有字段:1.查询多个字段:2.查询的字段可以参与数学运算:3.查询字段后重命名:4.查询所有字段:...原创 2019-10-15 12:58:06 · 415 阅读 · 0 评论 -
MySQL常用的命令
1.数据库的定义: DQL:查询语句,凡是select语句都是DQL DML:insert delete update,对表中的数据进行增删改查 DDL:create drop alter,对表的结构进行增删改 TCL:commit提交事务,rollback回滚事务 DCL:grant授权,revoke撤销查询2.导入初始化数据流程:3.查看表的结构及表中的数据:...原创 2019-10-15 12:45:01 · 156 阅读 · 0 评论 -
MySQL5.7.27的安装与配置
第一步解压文件夹:第二步:配置环境变量C:\Program Files\Java\jdk1.8.0_181\bin;C:\Program Files\Java\jdk1.8.0_181\jre\bin;原创 2019-10-14 12:38:14 · 524 阅读 · 0 评论 -
JDBC使用PreparedStatement对象增删改数据库数据
文章目录向数据库添加数据删除数据库中数据更新数据库中数据向数据库添加数据package 添加;import java.sql.*;public class JDBCTest09 { public static void main(String[] args) { Connection conn = null; PreparedStatement p...原创 2019-10-11 14:51:55 · 579 阅读 · 0 评论 -
JDBC完成登录功能
package JDBC;import com.sun.javafx.collections.MappingChange;import java.sql.*;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class JDBCTest07 { public sta...原创 2019-10-11 14:09:33 · 599 阅读 · 0 评论 -
JDBC处理查询结果集
下面改用循环的方式处理查询结果集:package 处理查询结果集06;import java.sql.*;public class JDBCTest06 { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ...原创 2019-10-11 09:30:36 · 2322 阅读 · 0 评论 -
JDBC编程六步(背)
第一步:注册驱动(告诉java程序将要连接哪个品牌的数据库)第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了)第三步:获取数据库操作对象(专门执行sql语句的对象)第四步:执行Sql语句第五步:处理查询结果集(只有第四步执行的是select语句时才存在)第六步:释放资源(java和数据库属于进程之间的通信,开启之后一定要关闭)所以注册驱动为:...原创 2019-10-11 08:40:55 · 249 阅读 · 0 评论 -
JDBC将连接数据库的信息配置到配置文件中
jdbc.properties文件:driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3366/bjpowernodeuser=rootpassword=123package 连接数据库的信息配置到配置文件;import java.sql.Connection;import java.sql.DriverManager...原创 2019-10-10 22:00:20 · 1052 阅读 · 0 评论 -
JDBC使用类加载的方式注册驱动
Driver.class中的Driver接口的具体实现类:package 类加载的方式注册驱动;import java.sql.DriverManager;import java.sql.SQLException;public class JDBCTest04 { public static void main(String[] args) { try {...原创 2019-10-10 21:38:58 · 463 阅读 · 0 评论 -
JDBC执行数据库的删除和更新语句
文章目录JDBC执行删除语句JDBC执行更新语句JDBC执行删除语句package 执行删除与更新;import java.sql.*;public class JDBCTest02 { public static void main(String[] args) { Connection conn = null; Statement stmt...原创 2019-10-10 21:00:28 · 2987 阅读 · 0 评论 -
JDBC原理(sun公司制定的一套接口)
1.面向接口编程解耦合:降低程序的耦合度,提高程序的扩展力多态机制就是典型的面向接口编程Animal a = new Cat;Animal a = new Dog();2.模拟JDBC本质JDBC接口:/** * sun公司制定的接口 */public interface JDBC { /** * 连接数据库的方法 */ void getC...原创 2019-10-10 17:11:43 · 371 阅读 · 0 评论 -
【JDBC】数据库连接池(C3p0,Druid,JDBCTemplate)
文章目录1.C3p0数据库连接池2.Druid数据库连接池3.Druid工具类4.JdbcTemplate概述5.JdbcTemplate执行DML和DQL语句1.C3p0数据库连接池1.导入jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar2.定义配置文件: c3p0.properties或者c3p0-config.xml,将文件...原创 2019-09-09 09:33:59 · 461 阅读 · 0 评论 -
【MySQL】Access denied for user 'root'@'localhost' (using password:YES)报错
好长时间没有使用数据库了,今天用到数据库突然报了一个错误,刚开始我以为是程序写错了,反复检查发现没什么问题,最后发现原来是数据库的问题,但是为什么长时间不用数据库会出现这个问题,我也不明白,下面是解决的方法。具体来讲就是在忘记数据库的登录名和用户密码的情况下来重...原创 2019-09-08 20:45:41 · 414 阅读 · 0 评论 -
【JDBC-1】jdbc深入详解
文章目录1.注册驱动的第二种方式2.IO流读取配置文件3.注册案例4.登录案例5.使用预编译的数据库操作对象6.模糊查询1.注册驱动的第二种方式我们知道静态代码块随着类的加载而加载,而当调用Class类中的forName()方法时就会加载相应的类,执行里面的静态代码块。package ghh1.jdbc进阶;import java.sql.Driver;import java.sql....原创 2019-08-04 22:20:31 · 262 阅读 · 0 评论 -
【JDBC-1】jdbc编程六大步骤
jdbc编程步骤jdbc编程6步: 1.注册驱动 2.获取连接 3.获取数据库操作对象 4.执行sql 5.处理查询结果集 6.释放资源1.注册驱动注册驱动的作用:告诉jdbc程序,我们即将连接的是哪一种数据库package ghh1.jdbc编程6步;import java.sql.Driver;import java.sql.DriverManager;imp...原创 2019-08-04 17:18:13 · 15919 阅读 · 6 评论 -
【JDBC-1】jdbc的本质
文章目录1. 接口的作用2. JDBC的本质1. 接口的作用接口是个不好理解的概念,可以把它看成一个特殊的抽象类,里面所有的方法都是抽象的,一个具体的类如果想实现接口就要实现里面所有的抽象方法,那么问题来了,如果接口中的方法很多怎么办呢?难道每次都要把里面的所有的接口都实现一遍?事实上不是的,任何一个接口都有调用方和实现方,实现方用来实现接口中的方法,调用方只需要调用接口中的方法就可以。示例...原创 2019-08-04 13:09:43 · 581 阅读 · 1 评论