MySql入门操作

文章介绍了MySQL作为开源关系型数据库的特点,包括可扩展性、可靠性和安全性,并探讨了为何企业倾向于使用MySQL。对比了MyISAM和InnoDB存储引擎的差异,强调了事务处理和锁定机制。同时,概述了ACID事务的四大属性和四种隔离级别。最后,展示了如何进行MySQL数据库的基本操作,如查看连接数、版本信息以及用户权限管理。
摘要由CSDN通过智能技术生成

                                一.前节回顾

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@'%';


 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默o。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值