它是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL本质就是一个基于socke编写的C/S架构的软件
客户软件
MySQL自带:如MySQL命令,mysqldump命令等
Python模块:如pymysql
1.MySQL 是开放源代码的数据库
MySQL 是一款可以自由使用的数据库。MySQL 是开放源代码的数据库,任何人都可以获取该数据库的源代码。
2.MySQL 的跨平台性
MySQL 不仅可以在 Windows 系列的操作系统上运行,还可以在 UNIX、Linux 和 Mac OS 等操作系统上运行。因为很多网站都选择 UNIX、Linux 作为网站的服务器,所以 MySQL 的跨平台性保证了其在 Web 应用方面的优势。虽然微软公司的 SQL Server 数据库是一款很优秀的商业数据库,但是其只能在 Windows 系列的操作系统上运行。因此,MySQL 数据库的跨平台性是一个很大的优势。
3.功能强大且使用方便
MySQL 是一个真正的多用户、 多线程 SQL 数据库服务器。它能够快速、有效和安全的处理大量的数据。相对于 Oracle 等数据库来说,MySQL 的使用是非常简单的。MySQL 主要目标是快速、健壮和易用。
5.5 之前的都有,哪些版本目前几乎都不用了
MySQL5.6 # 使用较多的,比较稳定的
MySQL5.7 # 使用较多的,比较稳定的
MySQL8.0 # 新版本,对于MySQL来说,版本的更新不变的是SQL语句的书写
我目前使用5.7,当然我建议最好不要是新版本,尤其是8.0的版本,线上环境最好不要使用新版本
数据库软件它是需要下载和安装的,如果你的电脑上已经装过了,如果有这种情况:你之前装过,但是卸载的时候,方法不对,就会出现残留文件,你会发现在此装新的时候,就装不上了,装上了启动不起来。
这个时候就可以借助于一些杀毒软件,检测出来一些残留文件,把这个检测出来的残留文件给删掉就可以了
官网下载:https://www.mysql.com/
1.访问官网
2.点击DOWNLOADS并点击GPL
3.点击community server (选择社区版本–免费)
4.点击Archives选择下载的版本号
5.选择对应的系统的对应版本下载即可(zip压缩包解压即可使用),简易不要放下C盘下,放在任意盘的更路径
6.添加到环境变量
bin
mysql.exe # 自带的客户端
mysqld.exe # 自带的服务端
data:MySQL的数据存储的地方
my-default.ini:这个是MySQL的配置文件
README文件是MySQL的说明文件,类似于是说明书
所有在cmd端打开MySQL,建议使用管理员身份打开。
1.切换到mysql的bin目录下先启动服务端
mysqld
2.保持窗口不关闭 重新打开一个新的cmd窗口
3.切换到mysql的bin目录下启动客户端
mysql
4.第一次以管理员身份登录是没有密码的 直接回车即可
mysql -uroot -p
5.直接使用mysql命令默认的游客模式,权限和功能都很少
mysql -u用户名 -p密码
1.打开客户端mysql和服务端mysqld
游客登录和管理员登录的权限不同:
3.查看当前所有的库名称
show databases;
4.取消当前的命令
Ctrl+C
5.退出客户端
exit;
遇到电脑启动服务算就报错的情况,如何解决?
拷贝报错信息,然后百度搜索“mysql启动 + 报错粘贴错误信息 ”
清空之前打开的cmd窗口,一定要把之前用cmd启动的服务端关闭(ctrl+c)
1.如何查看系统服务
Win+R>>>输入services.msc回车
2.以管理员身份打开cmd窗口
输入:mysqld --install
命令启动:net start mysql
先关闭服务: net stop mysql
移除系统服务:mysqld --remove
services.mac
1.方式一:直接在cmd窗口内借助于mysqladmin命令
mysqladmin -u用户名 -p原密码 password 新密码
mysqladmin -u root -p password 123
2.方式二:直接修改存储用户数据的表
3.方式三:冷门操作,有些版本可能还不支持
set password=password(‘新密码’) # 修改当前登录用户的密码
1.卸载重装
2.把data目录删除,拷贝同桌的目录
3.小把戏操作
3.1关闭正常的服务端mysql
net stop mysql
3.2以跳过授权表的方式重启服务端(不校验密码)
mysqld --skip-grant-table
重新打开一个cmd
mysql -uroot -p # 验证密码直接回车
查看当前数据库(存储密码表)
select * from mysql.user\G;
3.3以管理员身份进入然后修改mysql.user表数据即可
mysql -uroot -p
update mysql.user set password=password('123') where Host= 'localhost' and User='root';
update mysql.user set password=password(123) where user="root" and host="localhost"; # 修改对应用户的密码
3.4关闭服务器,然后以正常方式启动即可
3.5密码修改成功以正常方式启动
net start mysql
引入SQL语句
就是操作数据库软件的命令
1.是因为数据库能够支持的语言非常的多 为了避免识别问题 发明了SQL语句 规定只要想使用数据库就统一使用SQL语句操作
2.数据库的服务端为了能够兼容不同类型的客户端实现数据交互 所以规定了统一的交互方式
关系型数据库>>>:SQL语句
非关系型数据库>>>:NoSQL语句
数据库服务端是可以服务多种类型的客户端,客户端可以是自己开发的,也可以是python代码编写,也可以是java代码编写。
SQL:操作关系型数据库的语言。有时SQL也称关系型数据库。
NoSQL:操作非关系型数据库的语言。有时NoSQL也称非关系型数据库。
1.SQL语句必须以分号结尾
2.SQL语句编写错误之后,可以直接执行报错即可
查看所有的库
show databases;
查看所有的表名称
show tables;
查看所有的记录
select * from mysql.user;
1.创建库
create database 库名;
2.查看库
show databases; # 查看所有的库名称
show create database 库名; # 查看指定库信息
3.编辑库
alter database 库名 charset='utf8'; # 将数据库的编码格式设置为utf8格式
4.删除库
drop database 库名;
操作表之前需要先确定库
create database db1;
切换操作库
use db1
1.创建表
create table 表名(字段名 字段类型,字段名 字段类型);
eg:create table test(usename varchar(32),password char(32));
2.查看表
show tables; # 查看库下所有的表名称
show create table 表名; # 查看指定表信息
describe 表名; # 查看表结构
desc 表名;
如果想跨库操作其他表,只需要在表名前加库名
desc mysql.user;
3.编辑表
alter table 表名 rename 新表名;
4.删除表
drop table 表;
1.修改表名
alter table 表名 rename 新表名
eg: alter table work rename worker;
2.添加字段
alter table 表名 add 字段名 字段类型(数字)约束条件;
eg:alter table worker add hobby varchar(32);
3.在已有的字段后面添加字段
alter table 表名 add 字段名 字段类型(数据)约束条件 after 已有字段;
eg:alter table worker add hobby varchar(32);
4.添加主键
alter table 表名 add 字段名 字段类型(数据)约束条件 first;
5.修改字段名和类型
alter table 表名 change 旧字段名 新字段名 字段类型(数字) 约束条件;
alter table t1 change name username char(32);
alter table t1 change pwd pwd varchar(32); # 原本pwd int
eg:alter table worker change name username ;
alter table worker change name username ;
6.修改字段类型
alter table 表名 modify 字段名 新字段类型(数字) 约束条件;
alter table t1 modify age tinyint; # 原本 age int
eg: alter table worker change name username ;
7.删除字段
alter table 表名 drop 字段名;
eg: alter table worker change name username ;
1.插入数据
insert into 表名 values(数据值1,数据值2);
eg:insert into new_test values(kimi,123);
2.查询数据
select * from 表名; # 查询表中所有的数据
3.编辑数据
update 表名 set 字段名=新数据 where 筛选条件;
4.删除数据
delete from 表名;
delete from 表名 where id=2;