2024Java笔试真题,MYSQL入门详解

本文详细介绍了MySQL的各种引擎(如ISAM、MyISAM、InnoDB等),重点阐述了InnoDB作为事务型数据库的首选引擎和ACID特性。同时,讲解了MySQL的安装方法(YUM/RPM和源码编译),以及基础的数据库操作,如创建表、事务管理等。
摘要由CSDN通过智能技术生成
  • 无数的行和列组成一张表

  • 若干的表组成一个数据库

Mysql 引擎介绍


  • MYSQL引擎包括:ISAM、MyISAM、InnoDB 、MEMORY、CSV、BLACKHOLE、ARCHIVE、PERFORMANCE_SCHEMA、Berkeley、Merge、Federated、Cluster/NDB等

  • 其中MyISAMInnoDB使用最为广泛,mysql5.5以后默认使用的引擎是Innodb。

  • 数据库事务是指逻辑上对数据的一组操作,这组操作要一次全部成功,如果失败,则全部失败,因为事务是不可分割。

  • 事务管理语句

  • 查询、定义、操纵、控制语句,共9个命令

  • 查询语句:select

  • 定义:create、dorp、alter

  • 操纵:insert、update、delete

  • 控制:grant(授权)、revoke(移出授权)

  • InnoDB事务型数据库的首选引擎支持ACID事务,ACID包括:原子性(不可分割性)(Atomicity)、**一致性**(Consistency)、**隔离性**(Isolation)、**持久性**(Durability),一个支持事务(Transaction)的数据库,必需要具有这四种特性,否则在执行事务过程无法保证数据的正确性。

  • 原子性一个事务中所有的操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚成事务开始前的状态。

  • 一致性在事务开始之前和事务结束以后,数据库的完整性没有被破坏。

隔离性:数据库运行多个并发事务同时对数据进行读写和修改的能力,防止多个事务并发执行由于交叉导致数据的不同。

  • 隔离性不同级别读未提交、读提交、可重复读、串行化。

  • 持久性事务处理完成后,对数据的修改是永久的。

  • MyISAM类型的数据库表强调的是性能,其执行数度比InnoDB类型更快,但不提供事务支持,不支持外键,如果执行大量的SELECT(查询)操作,MyISAM是更好的选择,支持表锁。

Mysql 数据库安装方式


  • MySQL数据库安装方法有两种,一种是yum/rpm通过YUM源在线安装,另外一种是通过源码软件编译安装

  • Cmake一种跨平台的编译工具,比configure更高级,cmake主要编写cmakelists.txt,然后用cmake命令将cmakelists.txt转化成make需要的Makefile文件,最后用make命令编译源码生成的可执行程序。

  • Cmake工具和configure工具,configure二进制程序用来生成Makefile文件,Makefile记录软件需要的环境和要编译的参数。

  • YUM 安装方式

方式1:

yum install –y mysql-server mysql-devel mysql

方式2:

yum install –y mariadb-server mariadb

  • 源码安装方式

方式1:使用mysql 特有的cmake 编译

cmake

make && make install

方式2:使用./configure 编译

./configure

make -j4 && make -j4 install

Mysql 必备命令操作


  • 查看所有数据库

mysql> show databases;

±-------------------+

| Database |

±-------------------+

| information_schema |

| S |

| mysql |

| performance_schema |

| test |

±-------------------+

  • 创建名为 S 的数据库

mysql> create database S default charset utf8 collate utf8_general_ci; utf8 编码

Query OK, 1 row affected (0.00 sec)

mysql>

  • 进入S数据库

mysql> use S;

Database changed

  • 查看数据库里有多少张表

mysql> show tables;

Empty set (0.00 sec)

  • 创建名为 t1 的表,并创建两个个字段 id、name,varchar表示设置数据长度,一个汉字=2个字符=2Bytes

mysql> create table t1(id int(20),name varchar(10));

Query OK, 0 rows affected (0.01 sec)

  • 向表中插入数据

mysql> insert into t1 values(“1”,“liuaoni”);

Query OK, 1 row affected (0.00 sec)

  • 查看t1表的数据内容

mysql> select *from t1;

±-----±--------+

| id | name |

±-----±--------+

| 1 | liuaoni |

±-----±--------+

1 row in set (0.00 sec)

mysql>

  • id、age 多个条件查询

mysql> select *from t1 where id=1 and name=“liuaoni”;

±-----±--------+

| id | name |

±-----±--------+

| 1 | liuaoni |

±-----±--------+

1 row in set (0.00 sec)

mysql>

  • 查看t1b表结构(字段内容)

mysql> desc t1;

±------±-----------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±------±------------±-----±----±--------±------+

| id | int(20) | YES | | NULL | |

| name | varchar(10) | YES | | NULL | |

±------±------------±-----±----±--------±------+

2 rows in set (0.01 sec)

  • 修改name 字段的长度

mysql> alter table t1 modify column name varchar(5);

Query OK, 1 row affected, 1 warning (0.02 sec)

Records: 1 Duplicates: 0 Warnings: 1

MariaDB [hbs]>

  • 修改name字段的内容

mysql> update t1 set name=“nidaye” where id=1;

Query OK, 1 row affected, 1 warning (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 1

MariaDB [hbs]>

  • 刷新权限

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

  • 清空表内容

mysql> delete from t1;

Query OK, 1 row affected (0.00 sec)

  • 删除表

mysql> drop table t1;

Query OK, 0 rows affected (0.00 sec)

  • 删除数据库 hbs

mysql> drop database hbs;

Query OK, 0 rows affected (0.00 sec)

  • 查看数据库字符集

mysql> show variables like ‘%char%’;

±-------------------------±---------------------------+

| Variable_name | Value |

±-------------------------±---------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

±-------------------------±---------------------------+

8 rows in set (0.00 sec)

  • 查看mysql 存储引擎

mysqk> show engines;

  • 查看mysql 默认存储引擎

mysql> show variables like ‘%stroage_engine%’;

Empty set (0.00 sec)

  • 修改mysql t1 表存储引擎

mysql> alter table t1 engine=innodb;

  • 相关授权操作

mysql> show grants; 查看当前授权

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

面试真题

Spring源码笔记

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

[外链图片转存中…(img-mNbVqK8V-1713287968059)]

[外链图片转存中…(img-qG1gSHFu-1713287968059)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值