MySQL学习笔记

目录

MySQL

1.数据库管理系统(DBMS) 

2.JDBC

3.索引

3.1.索引分类

3.2.创建和删除索引

3.3. 索引的底层原理

3.4.存储过程

4.事务

4.1.什么是事务

4.2.事务的四大特性

4.3.日志的Redo/Undo机制

4.4.脏读、幻读、不可重复读.

4.5.事务四大隔离级别

4.6.事务练习

 

待续...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MySQL:

 

1.数据库管理系统(DBMS)

一、基本概念:

1、数据库:数据库是按照一定的数据结构来组织、存储和管理数据的仓库。

2、数据库管理系统:是一种操作和管理数据库的大型软件,用于建立、使用和维护数据库。

3、数据库系统:由数据库、数据库管理系统和应用程序组成一个体系;

4、数据模型:数据模型有层次模型、网状模型、关系模型,关系型数据库就是建立在关系模型上的数据库。

5、SQL:结构化查询语言DDL数据定义语言:DML:数据管理语言DQL:数据查询语言

二、关系型数据库管理系统:(还有K-V型数据库如Redis)

它是基于关系数据模型的,模型的三要素:

1)结构:结构定义了数据的表示;

2)完整性:是一种对数据的约束,是向数据库输入数据时必须遵守的规则、限制条件;

3)语言:提供访问和操作数据的手段。

三、关系型数据库与表:

1、什么是关系型数据库:

建立在关系型模型下的数据库称为关系型数据库,关系型数据库需满足三大范式;

关系型数据库通常由唯一表名的一张张二维表组成,表由记录行和字段列组成;

 

四、完整性约束:

1、概述:完整性约束有:域约束、主码约束、外码约束;域约束和主码约束涉及一个表,外码约束涉及多个表。所有关系数据库管理系统都支持主码和外码约束,不一定支持域约束。

2、域约束:域约束就是规定字段的取值范围,即字段是哪一类型的值。

3、主码约束:主码也称主键,是表中唯一确定一条记录的字段,可以是一个字段,也可以是多个字段(称复合主键),主键值不能为空(NULL)。

4、外码约束:一个表中的某字段不是该表的主键,但却是另一张表的主键,则这样的字段称为外键,外键是表与表的纽带。

五、数据库范式

1NF:不满足第一范式的数据库不是关系型数据库;1NF表示每一列都是不可分割的具有独立含义的数据项,只能有一个值。简之就是无重复的列。

2NF:2NF必需在1NF基础上,表每个行必需被唯一区分,不能有重复的行。这个可以唯一区分一行的属性称为主键或主码;并且每一列必需和主键有关,若主键为复合键,每一列必需和主键的全部相关,不能只和主键的某一部分相关。也就是消除部分依赖。

3NF:在2NF基础上,3NF规定一个数据库的表中不能包含已在其它表中已包含的非主关键字信息。换言之,3NF就是属性不依赖于其他非主属性。若如此,就需要分表!!消除传递依赖。

关系型数据库的三大范式有效的减少了数据的冗余、提高了数据的有效性检查和数据存储效率。

 

 

 

2.JDBC

一、JDBC概述:

JDBC是Java database Connectivity的简称,是Java访问数据库的一组Java API。通过JDBC,应用程序可以执行SQL语句、获取结果、显示数据、将修改传回数据库等,JDBC主要用来连接数据库、发送SQL语句、处理SQL语句执行的结果。

二、JDBC驱动类型:

1、JDBC-ODBC桥加ODBC驱动程序

2、本地API部分用Java编写的驱动程序

3、JDBC网络协议纯Java驱动程序

4、本地协议纯Java驱动程序

三、相关接口:

1、Drivermanager类:

创建Connection接口的对象;

2、Connection接口:

由Drivermanager类的getConnection()方法来创建该接口对象,

拥有创建SQL语句的方法:

createStatement(String url, String user, String driver) ;

实现事务操作的方法:setAutoCommit()方法、commit()方法、rollback()方法等

3、Statement接口:

该接口对象调用相关方法将SQL语句发送到连接的数据库、执行SQL语句、返回结果;

4、ResultSet接口:

返回的结果集是一个表,这个表是ResultSet的对象,

5、PreparedStatement接口(用于预编译语句)

6、CallableStatement接口(用于存储过程)

7、DatabaseMetaData和ResultSetMetaData接口(获取元数据)

①数据库元数据:就是有关数据库和表结构的信息——数据库的表、表的字段、表的索引、数据类型、对SQL支持程度等;

主要作用:用来获取数据库的信息——库中表名、系统函数 、关键词、数据库产品名、数据库支持的JDBC驱动程序名等。

创建该接口:由于是接口(纯抽象类)不能用new来创建对象,是用Connection接口的getMetaData()方法类创建的,而Connection的对象是由DriverManager类的静态方法getConnection()方法创建的。

接口里的方法(9个常用):

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值