安装后环境变量的配置
int 数值类型 不指定长度 默认长度就会是11位
表的默认字符集会跟着数据库的默认字符集来走
#引擎 myisam 支持全局索引可以用作搜索系统的 innodb 支持事务功能 也就是支持增删改查的
记录最大的主键值,然后自己加1
删除数据不会影响主键的自增
事务:是数据库操作系统中一个非常重要的概念。
事务是一个原子操作,是由一条或多条sql语句组成了一个不可分割的整体,是一个最小执行单元。要么就全部成功,要么就全部失败。有一个sql语句执行失败,整个事务都执行失败,没有中间的操作。
而事务就是在中间加一个缓冲区回滚段,开启事务时,会先将多个sql语句的dml语句执行结果保存在缓冲区中。
每一个dml语句都会自动开启事务和提交事务。
mysql默认会为每一条dml语句,自动开启事务和提交事务。
事务回滚的机制
就是在开启事务时,就会开辟出一个缓冲区,在数据库和硬盘之间,里面保存着事务里面所有dml语句操作的结果,如果没有提交就会一直保存在缓冲区里面,当所有语句都成功执行时,才会把缓冲区里面的数据全部保存在硬盘中,对数据库中的数据造成永久性的影响。而要是有一条sql语句执行失败的话,就会将缓冲区里面的保存到结果删除掉,因为还没有保存影响到硬盘上的数据,所以就都一直还是硬盘上没有被修改的数据,也就是事务开启前的状态,这个就是事务回滚的机制。
事务四大机制
a(原子性)
表示一个事务里面的所有操作都是一个整体,不可分割的多步操作,是一个最小的执行单元。执行事务要么全部失败,要么全都成功。
c(一致性)
在事务提交或回滚的前后,也会使得数据库从一个一致性状态变换到另一个一致性状态,也就是在事务完成的前后,数据是保持一致的。
i(隔离性)
就是一个事务无法查看另一个事务操作中中的数据表的状态。因为已经是被隔离开了,无法查看在操作表数据时数据所处的状态。要么另一个并发事务查看或者修改它事务之前的状态,要么就是另一个并发事务查看或修改它事务之后的状态,不会查看到正在事务操作时或者说中间状态的数据。
d(持久性)
就是数据库在完成事务操作后,数据从缓冲区保存到了硬盘中,对系统的影响是永久性的。
要是插入了一次报错的数据,主键已经生成了,但因为数据没有正常插入,但是主键值也受到了影响。
所以等下一次插入正确的数据,主键值会根据上一次生成的最大主键值接着下去,就会出现跳数的情况。
也可以给它设置开始的自增列
mysql java对照表
预编译就是先预编写好sql语句再出传给数据库,就可以让数据库不用再直接编译直接可以拿来运行。
preperstatement的预编译方式就是先用?占位符占住要插入参数的位置,然后就根据问好的位置逐一添加位置,但是在没添加之前的时候就对sql语句的值进行预编译,把它编译为执行函数,然后设置进去的值,首先会对它进行敏感字符的转义然后再传入?号所占的参数位置,传入的数据不参与sql的编译。
数据库的去重操作 也可以用分组来做,效率更高
对于distinct与group by的使用:
1.当对系统的性能高并且数据量大时使用group by
2.当对系统的性能不高时或者使用数据量少时两者借口
3.尽量使用group by
url常用后缀
url=jdbc:mysql://localhost:3306/teacher?useUnicode=true&characterEncoding=utf8&useSSL=true