MYSQL入门详解

网友投稿 424 2022-05-29

文章目录

Mysql 服务器企业实战

数据库入门简介

Mysql 引擎介绍

Mysql 数据库安装方式

Mysql 必备命令操作

Mysql 字符集设置

MySQL数据库配置并发优化

总结

Mysql 作业

Mysql 源码搭建教程

Mysql 服务器企业实战

数据库入门简介

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle旗下公司。

MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

(RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle、SQL Server等。)

RDBMS的特点:

数据以表格的形式出现

每行记录数据的实内容

每列记录数据真实内容的数据域

无数的行和列组成一张表

若干的表组成一个数据库

Mysql 引擎介绍

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 数据库安装方式

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

2

3

4

5

源码安装方式

方式1:使用mysql 特有的cmake 编译 cmake make && make install 方式2:使用./configure 编译 ./configure make -j4 && make -j4 install

1

2

3

4

5

6

7

Mysql 必备命令操作

查看所有数据库

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | S | | mysql | | performance_schema | | test | +--------------------+

1

2

3

4

5

6

7

8

9

10

创建名为 S 的数据库

mysql> create database S default charset utf8 collate utf8_general_ci; utf8 编码 Query OK, 1 row affected (0.00 sec) mysql>

1

MYSQL入门详解

2

3

4

进入S数据库

mysql> use S; Database changed

1

2

3

查看数据库里有多少张表

mysql> show tables; Empty set (0.00 sec)

1

2

3

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

mysql> create table t1(id int(20),name varchar(10)); Query OK, 0 rows affected (0.01 sec)

1

2

向表中插入数据

mysql> insert into t1 values("1","liuaoni"); Query OK, 1 row affected (0.00 sec)

1

2

查看t1表的数据内容

mysql> select *from t1; +------+---------+ | id | name | +------+---------+ | 1 | liuaoni | +------+---------+ 1 row in set (0.00 sec) mysql>

1

2

3

4

5

6

7

8

9

id、age 多个条件查询

mysql> select *from t1 where id=1 and name="liuaoni"; +------+---------+ | id | name | +------+---------+ | 1 | liuaoni | +------+---------+ 1 row in set (0.00 sec) mysql>

1

2

3

4

5

6

7

8

9

查看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)

1

2

3

4

5

6

7

8

修改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]>

1

2

3

4

5

6

修改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]>

1

2

3

4

5

刷新权限

mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

1

2

清空表内容

mysql> delete from t1; Query OK, 1 row affected (0.00 sec)

1

2

删除表

mysql> drop table t1; Query OK, 0 rows affected (0.00 sec)

1

2

删除数据库 hbs

mysql> drop database hbs; Query OK, 0 rows affected (0.00 sec)

1

2

查看数据库字符集

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)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

查看mysql 存储引擎

mysqk> show engines;

1

查看mysql 默认存储引擎

mysql> show variables like '%stroage_engine%'; Empty set (0.00 sec)

1

2

修改mysql t1 表存储引擎

mysql> alter table t1 engine=innodb;

1

相关授权操作

mysql> show grants; 查看当前授权 +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+ 2 rows in set (0.00 sec)

1

2

3

4

5

6

7

8

创建用户

用户登录数据库 [root@localhost ~]# mysql -uhe -phe123! -h192.168.10.11 mysql> create user 'he'@'192.168.10.11' identified by 'he123!'; 创建用户he,密码为he123! mysql> drop user 'he'@'192.168.10.11'; 删除数据用户he Query OK, 0 rows affected (0.00 sec)

1

2

3

4

5

6

7

8

9

Mysql 字符集设置

计算机中储存的信息都是用二进制数方式来表示的,读者每天看到屏幕显示的英文、汉字等字符是二进制数转换之后的结果。通俗的说,将汉字按照某种字符集编码存储在计算机中,称为"编码"。将存储在计算机中的二进制数解析显示出来,称为"解码",在解码过程中,如果使用了错误的解码规则,会导致显示乱码。

编辑vim /etc/my.cnf配置文件,在相应段中加入相应的参数字符集修改完毕,重启MySQL服务即可。

[client]字段里加入:default-character-set=utf8 [mysqld]字段里加入: character-set-server=utf8 [mysql]字段里加入 : default-character-set=utf8

1

2

3

MYSQL 命令行里运行以下命令:

show variables like 'char%' SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8;

1

2

3

4

MySQL数据库配置并发优化

Mysql优化是一项非常重要的工作,而且是一项长期的工作,曾经有一个为位DBA前辈说过:mysql的优化,三分配置的优化,七分sql语句的优化。

Mysql的优化:一般分为配置的优化、sql语句的优化、表结构的优化、索引的优化,而配置的优化:一般包括系统内核优化、mysql本身配置文件的优化。

MySQL常见的优化参数详解:

硬件上的优化:增加内存和提高磁盘读写速度,都可以提高MySQL数据库的查询,更新的速度。另一种提高MySQL性能的方式是使用多块磁盘来存储数据。因为可以从多块磁盘上并行读取数据,这样可以提高读取数据的速度。

MySQL参数的优化:内存中会为MySQL保留部分的缓冲区。这些缓冲区可以提高MySQL的速度。缓冲区的大小都是在MySQL的配置文件中进行设置的。

下面对几个重要的参数进行详细介绍:

key_buffer_size: 表示索引缓存的大小。这个值越大,使用索引进行查询的速度就越快。 table_cache: 表示同时打开的表的个数。这个值越大,能同时打开的表的个数就越多。这个值不是越大越好,因为同时打开的表过多会影响操作系统的性能。 query_cache_size: 表示查询缓冲区的大小。使用查询缓存区可以提高查询的速度。这个方式只使用与修改操作少且经常执行相同的查询操作的情况;默认值是0。 Query_cache_type: 表示查询缓存区的开启状态。0表示关闭,1表示开启。 Max_connections: 表示数据库的最大连接数。这个连接数不是越大越好,因为连接会浪费内存的资源。 sort_buffer_size: 排序缓存区的大小,这个值越大,排序就越快。 Innodb_buffer_pool_size: 表示InnoDB类型的表和索引的最大缓存。这个值越大,查询的速度就会越快。这个值太大了就会影响操作系统的性能。 当然了Mysql是一个长期的优化过程,所以在日常的运维工作中,需要不断去总结和学习。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

总结

Mysql 作业

点我查看

Mysql 源码搭建教程

mysql源码安装详解

二进制安装mysql5.7.20

MySQL 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:拍案惊奇——软件调试实战训练营
下一篇:计算机网络练习题——一起肥学
相关文章