-
无数的行和列组成一张表
-
若干的表组成一个数据库
-
MYSQL引擎包括:
ISAM、MyISAM、InnoDB 、MEMORY、CSV、BLACKHOLE、ARCHIVE、PERFORMANCE_SCHEMA、Berkeley、Merge、Federated、Cluster/NDB等
-
其中
MyISAM
、InnoDB
使用最为广泛,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数据库安装方法有两种,
一种是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> 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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
!**
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了
[外链图片转存中…(img-mNbVqK8V-1713287968059)]
[外链图片转存中…(img-qG1gSHFu-1713287968059)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!