Mysql

1. 简介

1.1 定义

MySQL是一个关系型数据库管理系统,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件,它是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,MySQL 是最流行的关系型数据库管理系统中的一个。

1.2 地位

最流行的关系型数据库管理系统之一

1.3 特点

  • 开源免费
  • 支持大型数据库,处理拥有上千万条记录的大型数据库。
  • 支持SQL通用语言
  • 支持多种编程语言的接口和多种操作系统
  • 数据存储在磁盘
  • 读取速度慢,但能永久保存

2. 安装

  • MySQL数据库服务端软件的安装
  • MySQL数据库客户端软件的安装

2.1 MySQL数据库服务端软件的安装

在Ubuntu中打开终端,输入下面的命令:

sudo apt-get install mysql-server

说明:

显示MySQL服务端安装包信息效果图:

apt-cache show mysql-server

MySQL服务端安装包信息
查看MySQL服务效果图:

ps -aux | grep mysql

MySQL服务端安装包信息
ps说明

  • ps 查看当前系统中的进程
  • -a 表示所有用户
  • -u 表示显示用户名
  • -x 表示显示所有的执行程序
    查看MySQL服务状态:
sudo service mysql status

停止MySQL服务:

sudo service mysql stop

启动MySQL服务:

sudo service mysql start

重启MySQL服务:

sudo service mysql restart

MySQL配置文件的介绍:

配置文件路径为: /etc/mysql/mysql.conf.d/mysqld.cnf

查看MySQL配置文件效果图:

vim mysqld.cnf

查看mysql配置文件

主要配置信息说明:

port表示端口号,默认为3306

bind-address表示服务器绑定的ip,默认为127.0.0.1

datadir表示数据库保存路径,默认为/var/lib/mysql

log_error表示错误日志,默认为/var/log/mysql/error.log

2.2 MySQL数据库客户端软件的安装

客户端是程序员或者dba使用的软件,通过socket方式与服务端程序通信。

常用的MySQL数据库客户端软件有

  • 图形化界面客户端Navicat
  • 命令行客户端mysql

1. 图形化界面客户端Navicat的使用

tar zxvf navicat112_mysql_cs_x64.tar.gz

./start_navicat

启动效果图:
Navicat启动效果图
说明:

点击两次“取消”按钮, 不需要进行安装。

试用效果图
启动后效果图
Navicat试用效果图
Navicat试用效果图

试用过期的解决办法:

当过期后,删除用户主目录下的.navicat64目录,继续再使用14天。

cd ~
rm -r .navicat64

2. 命令行客户端mysql的安装

在Ubuntu中打开终端,输入下面的命令:

sudo apt-get install mysql-client

显示MySQL客户端安装包信息效果图:

apt-cache show mysql-client

MySQL客户端安装包信息
mysql命令的使用帮助:

mysql --help

MySQL客户端的使用:

MySQL客户端连接MySQL服务端命令

mysql -uroot -p

连接效果图:
mysql连接操作
说明:

  • -u: 表示MySQL服务端的用户名
  • -p: 表示MySQL服务端的密码
  • quit 或者 exit 或者 ctr + d 表示退出

3. 使用

3.1 分开使用

1. 数据库客户端软件
  1. 图形化界面客户端Navicat
  • 解压:tar -zxvf navicat112_mysql_cs_x64.tar.gz
  • 启动:./start_navicat
    在这里插入图片描述
  1. 命令行客户端MySQL
2. 数据库服务器端软件

3.2 合并使用

数据库编程

1. 定义

使用程序代码连接数据库,对数据进行操作

2. 作用

方便快捷,提高编程效率

3. 工具

pymysql

4. 流程
  1. 创建连接对象: conn=connect(host,port,user,passwd,database,charset)

  2. 获取游标对象
    作用:执行SQL语句,完成对数据库的操作
    使用:

  • 创建游标对象:cur = conn.cursor()
  • 构建参数表:params=[]
  • 指定SQL语句,返回受影响的行数:row_count=execute(operation[parameters],params)
    防止SQL注入
    定义:用户提交的恶意输入和sql语句使用字符串拼接后,改变了原来的sql语义,泄露了数据
    增删改:
    conn.rollback();
    conn.commit();
    查询:
    获取查询结果集汇总的一条数据(行):cur.fetchone();
    获取查询结构集中的所有数据(行):cur.fetchall()
  1. 关闭游标:cur.close();
  2. 关闭连接:conn.close();

4. 命令

在这里插入图片描述

5. 操作

5.1 数据库

在这里插入图片描述

5.2 数据表

在这里插入图片描述

5.3 数据项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 库/表数据的存储引擎

6.1 定义

库/表数据的存储机制,一种算法

6.2 作用

提供不同的存储机制,创建表

6.3 分类

1. InnoDB

  • 支持事务和外键
1.1 定义

一系列SQL语句打包在一起,要么完全执行,要么完全不执行,是不可分割的最小单位

1.2 作用

保证操作(一系列SQL语句)打包执行

1.3 应用

银行转账

1.4 特性
  1. 原子性:一系列SQL语句打包执行
  2. 一致性:事务执行过程中状态要么完全执行,要么完全不执行
  3. 隔离性:事务修改后在提交之前对其他事务是不可见的,且其他事务能不能修改,有级别
    当事务提交后,其他事务操作也会执行(缓存)
    在这里插入图片描述
  4. 持久性:事务提交之后不可修改,永久保存在数据库
1.5 操作
  1. 开启事务:
begin:事务会在MySQL服务端产生一个缓存文件
start transaction
  1. 提交事务:
autocommit:默认是自动提交事务
set autocommit = 0:数会提交到MySQL服务端的缓存文件中
commit:缓存文件中的数据提交到物理表中,实现数据修改
  1. 回滚事务:
rollback:放弃缓存文件中的数据,回到开始事务之前的状态

2. MySAM

  • 不支持事务和外键,访问速度快,insert,selsct操作多的可以使用

6.4 操作

  1. 查看
show create table goods
show engines
  1. 修改
alter table 表名 engines=""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值