一.前节回顾
1.web项目环境配置
2.通用增删改,通用查询方法
3.前台,后台代码显示效果
所有你都理解了吗?
二.Mysql数据库介绍
1.什么是MySQL?
MySQL是一种开源的关系型数据库管理系统。它是目前最流行和广泛使用的数据库之一,被许多应用程序和网站用作后端数据库。
MySQL具有许多重要特性,包括:
1. 可扩展性:MySQL能够处理大规模的数据集和高并发请求,可以根据需求进行水平扩展和垂直扩展。
2. 可靠性:MySQL具有稳定性和可靠性,支持事务处理,保证数据的一致性和完整性。
3. 性安全:MySQL提供了许多安全特性,如用户认证、访问控制和数据加密等,以保护数据库中的数据安全。
4. 灵活性:MySQL支持多种存储引擎,如InnoDB、MyISAM等,使用户可以根据具体需求选择不同的引擎进行存储和查询。
5. 兼容性:MySQL与许多编程语言和平台兼容,如Java、Python、PHP等,使开发人员可以方便地集成和使用。使用MySQL可以进行数据的存储、查询和管理,通过编写SQL语句可以实现对数据的增删改查操作。除了基本的数据库操作,MySQL还提供了许多高级功能和工具,如复制、分区、备份和恢复等,以满足各种复杂的需求。
需要注意的是,MySQL在使用过程中也有一些限制和注意事项,如并发性能、索引优化、数据备份和故障恢复等。因此,在使用MySQL时,建议了解和掌握相关的最佳实践和性能优化技巧,以提高系统的效率和可靠性。
2.为什么大多数企业使用MySQL数据库?
大多数企业选择使用MySQL数据库的原因有以下几点:
1. 开源和成本效益:MySQL是开源的,它可以在没有任何费用的情况下获取和使用。与商业数据库相比,它的成本更低,可以节省企业的开支。
2. 可靠性和稳定性:MySQL是一个经过广泛测试和使用的数据库,具有良好的稳定性和可靠性。它可以处理大规模的数据集和高并发请求,并且已被许多大型企业和互联网公司广泛采用。
3. 可扩展性:MySQL具有良好的可扩展性,可以满足企业在数据量和用户访问上的不断增长。它支持水平扩展和垂直扩展,可以根据需求进行容量的扩展。
4. 多平台兼容性:MySQL可以在多种操作系统上运行,如Windows、Linux、macOS等。这种跨平台的兼容性使企业能够在不同环境中轻松部署和运行MySQL。
5. 丰富的功能和工具支持:MySQL提供了许多丰富的功能和工具,如存储过程、触发器、视图、复制、备份和恢复等。这些功能使得MySQL可以满足各种复杂的业务要求。
6. 社区支持和生态系统:MySQL拥有庞大的全球开发者社区,可以分享经验和解决问题。此外,有许多第三方工具和框架与MySQL集成,形成了完整的MySQL生态系统。
需要注意的是,MySQL也有一些限制和一些特定场景下可能不适用的情况。对于一些特别大型或对事务支持要求非常高的企业,可能需要考虑使用其他商业数据库或分布式数据库。但对于大多数中小型企业和一般业务场景,MySQL提供了足够的功能和性能来满足需求,并具有良好的成本效益。
3.myisam 和 innodb区别!(面试题)
3.1自我理解
自我理解:
默认innodb 支持事务 ,myisam 不支持事务
myisam (表锁)无法对表格进行操作 ,但是查询效率高! 适用于表格长时间不操作
比如:系统参数表
3.2官方回答
MyISAM和InnoDB是MySQL中两种常用的存储引擎,它们在功能和性能方面有一些区别。
1. 事务支持:
- MyISAM:MyISAM不支持事务处理,这意味着在使用MyISAM引擎时,无法进行事务的回滚和提交操作。如果在操作过程中出现异常或错误,数据可能会处于不一致的状态。
- InnoDB:InnoDB支持事务处理,可以使用BEGIN、ROLLBACK和COMMIT等命令进行操作。这使得InnoDB引擎更适合处理要求数据一致性和事务处理的应用程序。2. 锁定机制:
- MyISAM:MyISAM使用表级锁定机制,即在进行数据修改时,会锁定整个数据表。这会导致并发性能较差,在高并发环境下容易出现锁冲突。
- InnoDB:InnoDB使用行级锁定机制,即只锁定所操作的行。这样可以提高并发性能,减少锁冲突的可能性,允许多个事务并发地访问和修改数据。3. 外键支持:
- MyISAM:MyISAM不支持外键约束,这意味着无法通过外键关系来保持数据的完整性。
- InnoDB:InnoDB支持外键约束,可以定义外键关系来确保数据的一致性和完整性。4. 崩溃恢复:
- MyISAM:MyISAM对于崩溃恢复的支持较弱,当数据库发生崩溃时,需要进行修复操作,可能会导致数据丢失或损坏。
- InnoDB:InnoDB具有较好的崩溃恢复能力,支持事务的持久性和原子性,可以通过重做日志和回滚日志来确保数据的一致性和可恢复性。根据应用场景的不同,选择适合的存储引擎是很重要的。一般来说,如果应用程序需要支持事务、并发性能较高以及数据完整性的要求,推荐使用InnoDB引擎。而如果对事务支持没有特殊需求,更倾向于对读操作较多的应用,可以考虑使用MyISAM引擎。另外,MySQL还提供了其他存储引擎,如MEMORY、CSV、ARCHIVE等,可以根据具体需求选择合适的引擎。
4.ACID事务介绍
4.1自我理解
原子性:就是在执行某些操作时一定要等待那个操作完成时才能进行操作
一致性:在进行操作时,要么完成,要么完成,没有二者一起存在的情况
隔离性:在进行一个操作时,在进行其他操作时并不会影响前一个操作
持久性:某些操作一旦执行,就会保留
4.2官方回答
ACID是指数据库事务在保证数据一致性和完整性方面应遵循的一组属性。ACID是数据库管理系统用来确保事务正确执行的核心原则:
1.原子性(Atomicity):事务是一个不可分割的工作单位,要么全部执行成功,要么全部失败回滚。如果一个事务中的某个操作失败,系统会撤销已经执行的所有操作,将数据库恢复到事务前的状态。
2. 一致性(Consistency):事务的执行不能破坏数据库的完整性约束,如主键约束、外键约束等。当事务完成时,数据库会从一个一致的状态转换到另一个一致的状态。3. 隔离性(Isolation):对于并发的事务操作,每个事务的执行都应该与其他事务隔离开来,使每个事务都感觉不到其他事务的存在。这样可以避免并发操作引发的数据冲突和不一致性。
4. 持久性(Durability):一旦事务成功提交,其所做的更改将永久保存在数据库中,即使在系统崩溃或断电后也不会丢失。系统会将事务的更改持久地写入磁盘或其他非易失性存储介质。
ACID事务的实现需要数据库管理系统对事务进行严格的控制和管理。事务开始时,数据库会为事务分配资源,并在事务结束时进行提交或回滚。数据库管理系统通过锁机制、并发控制和日志记录等手段来确保事务的原子性、一致性、隔离性和持久性。
ACID事务在许多应用场景中都非常重要,特别是对于需要确保数据一致性和事务完整性的业务逻辑。因此,在设计和开发数据库应用程序时,需要合理地使用事务,并根据具体业务要求配置事务的隔离级别,以提供可靠和持久的数据处理。
5.四种隔离级别
在关系型数据库中,常见的四种隔离级别是:
1. 读未提交(Read Uncommitted):最低的隔离级别,事务可以读取其他事务尚未提交的数据。这种隔离级别可能导致脏读(Dirty Read),即读取到了未提交的数据,可能会引发数据不一致的问题。
2. 读已提交(Read Committed):事务只能读取其他已经提交的数据,保证了数据的一致性。在这个级别中,不会出现脏读的情况,但是可能会有不可重复读(Non-Repeatable Read)的问题,即同一个事务内多次查询同一数据可能得到不同结果。
3. 可重复读(Repeatable Read):在可重复读隔离级别下,事务启动时对数据进行一致性读取,并且在整个事务过程中都使用这个一致性视图。这意味着其他事务的提交对当前事务的查询结果不会产生影响。可重复读可以解决不可重复读的问题,但是可能会出现幻读(Phantom Read),即在同一个事务内多次查询时,得到的结果集合数量可能不同。
4. 串行化(Serializable):最高的隔离级别,事务会被序列化执行,保证了最高的数据一致性和隔离性。在这个级别下,事务之间完全隔离,不会出现脏读、不可重复读和幻读等问题。但是串行化会对并发性能产生较大的影响,因为它强制事务按照顺序执行,可能会导致较低的并发度。
不同的隔离级别在保证数据一致性和并发性方面存在权衡。在设计和选择隔离级别时,需要根据应用的需求和性能要求进行权衡。一般来说,读已提交或可重复读是常用的隔离级别,可根据具体情况选择适当的级别。
三.MySQL数据库操作
1.查看当前数据库连接数
select *from USER
1.1图片效果:
注意:划线地方必须变成mysql,这四个用户都市MySQL数据库自带的
2.查看MySQL版本
select VERSION()
2.1效果图:
3.增加一个用户只有当前数据库使用权限
1.增加用户
create user lz;
2.设置密码
ALTER USER 'lz'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4.用户授权和增加授权
grant ALL on xx表名.* to lz@'%';
grant ALL on mybatis_ssm.* to lz@'%';
5.删除用户
drop user lz
6.收回部分权限
revoke all on mybatis_ssm.* from lz@'%';