MySQL微讲解
MySQL微讲解
数据演变史
# 1.单独的文本文件
没有固定的存放位置和固定的数据格式,程序彼此无法兼容,没有统一的标准
# 2.软件开发目录规范
按照文件功能的不同规定了相应的位置,文件查找变得统一,但是并没有解决格式问题
# 3.数据库应用
解决了存放位置和数据格式问题,将数据处理部分统一了起来
数据库应用发展史
# 1.初始阶段
初级阶段就象单机游戏一样,数据只能各自保存在各自的计算机上,无法实现远程共享
# 2.高级阶段
高级阶段就象联网游戏一样,数据统一基于网络保存到某个固定的服务器上,实现数据共享
# 集群
如果所有的数据全部存储到一台远程服务器上,那么数据的安全性会降低,服务器的压力也会上升,所以就会增加远程服务器的数量,数据同步保存,任务均匀分担,具有相同功能的多个服务器组合到一起,就可以称之为是集群。
数据库的本质
# 数据库简介
1.微观层面:运行在计算机上专门处理数据的进程
2.宏观层面:提供给操作者一个简单快捷的操作进程的软件
数据库分类
1.关系型数据库
# 简介
1.有固定的表结构(最主要的特征)
2.表与表之间可以建立代码层面的关系
# 常见关系型数据库名称及简介
1.MySQL:关系型数据库的代表,开源免费,使用频率极高
2.Oracle:安全性极高,但是使用和维护要收费,使用成本较高
3.PostgreSQL:支持二次开发(自己嫁接、扩展功能)
4.MariaDB:与MySQL是同一个作者
5.sqlite:小型数据库,携带方便,但是功能较少,主要用于本地测试使用
6.sql server:老牌数据库,目前主流不用
2.非关系型数据库
# 简介
1.没有固定的表结构,数据采取k:v键值对的形式(最主要的特征)
2.表与表之间无法建立代码层面的关系
# 常见非关系型数据库名称及简介
1.Redis:目前最火的非关系型数据库,数据类型丰富,功能强大
2.MongoDB:最象关系型数据库的非关系型数据库,主要用于爬虫和大数据
3.Memcache:被redis取代了
SQL与NoSQL
# SQL
与关系型数据库交互的语言,有时候用来表示关系型数据库,有时候表示SQL语句
# NoSQL
与非关系型数据库交互的语言,有时候用来表示非关系型数据库,有时候表示NoSQL语句
MySQL简介
# 1.版本问题
(1)5.6X:使用最为广泛的稳定版本
(2)5.7X:目前正在逐步过渡使用的版本
(3)8.0X:最新版本,暂时不投入正常生产环境使用
# 2.下载
1.官网:https://www.mysql.com/
2.进入官网之后点击:DOMNLOADS-->MySQL Community (GPL) Downloads-->MySQL Community Server-->Archives-->在这里选择版本号和系统
# 3.目录结构
1.bin文件夹:
mysqld.exe:服务端
mysql.exe:客户端
2.data文件夹:存放数据
基本使用
必须先要启动服务端,在启动客户端链接
# 1.启动服务端
以管理员身份运行cmd,然后切换到mysql文件的bin文件路径下,然后输入'mysqld',注意'维持cmd窗口不要关闭,重新打开一个新的cmd窗口用于打开客户端'
# 2.启动客户端链接服务端
打开一个新的cmd窗口,不用管理员身份打开,打开之后切换到bin文件路径下,然后直接输入'mysql'即可登录服务端,这里登录的只是游客模式,不带用户名和密码
系统服务
# 1.添加环境变量
把bin文件路径添加到系统环境变量中,这样我们就不用切换路径,直接输入服务命令即可
# 2.设置服务开机自起
1.先关掉刚刚测试的服务端窗口(确保关闭)
2.重新以管理员身份打开一个cmd窗口,然后输入命令'mysqld --install',如果结果有'... successfully'即为成功,初次启动需要人为干预,输入命令'net start mysql'
3.关闭所有的cmd窗口,随意打开一个cmd窗口,输入mysql即可链接到服务端
# 3.移除系统服务
1.先停止服务端
net stop mysql # 管理员身份运行cmd
2.移除系统服务
mysqld --remove
修改密码
# 1.游客模式
直接输入mysql登录默认是游客模式,没有太多的操作权限,没有用户名和密码
# 2.用户名和密码的方式登录
1.管理员账号登录
mysql -uroot -p # 直接回车,然后会提醒你输入密码
# 3.修改密码
1.在cmd窗口下直接修改(不要登录进去)
mysqladmin -uroot -p原密码 password 新密码 # 第一次登录没有密码的话p后面不用跟即可
2.登录状态下修改当前用户密码(先登录)
set password=PASSWORD('新密码');
# 4.如何区分是否是游客模式
执行show database; # 如果输出的信息里面至于两条就是游客模式,如果有四条及以上就是用户
重要概念
1.库:类似于文件夹
2.表:类似于文件夹中的文件
3.记录:类似于文件中的一行行数据
'''SQL语句使用分号作为结束符'''
操作库的基本SQL语句
1.查
show databases; # 查看所有库的名称
show create database 库名; # 指定查看某个库的信息
### 2.增
create database 库名;
3.改
alter database 库名 charset='gbk'; # 修改字符编码
4.删
drop database 库名;
操作表的基本SQL语句
1.确定库
表是存放于库下面的,所以操作表之前,应该先确定库
# 1.查看当前在哪个库下
select database(); # 如果是null表示当前没有切换到任何库下
# 2.切换到指定库
use 库名;
'''强调我们在操作库、表、记录的时候,MySQL默认自带的都不要动'''
### 2.查
show tables; # 查看当前库下所有的表名称
show crate table 表名; # 指定查看某个表的信息
describe 表名; # 指定查看表的字段信息,简写 desc 表名;
3.增
create table 表名(
字段名称 字段类型,
字段名称 字段类型,
);
4.改
alter table 表名 rename 新表名; # 修改表名
5.删
drop table 表名;
操作记录的基本SQL语句
要想操作记录,必须要先有库和表
1.查
select * from 表名; # 查看表里面所有的数据
select * from 库名.表名; # 查看指定库下面的指定表里面的所有数据
"""
有些表里面的字段太多,展示的时候会错乱,可以考虑逐行展示
select * from 库名.表名\G;
"""
select Host,User from mysql.user # 查看指定字段
2.增
insert into 表名 values(值1,值2); # 单条数据
insert into 表名 values(值1,值2),(值3,值4); # 多条数据
3.改
update 表名 set 字段=新值 where 筛选条件;
4.删
delete from 表名 where 筛选条件; # 如果不加筛选条件就是删除所有数据
这里是IT小白陆禄绯,欢迎各位大佬的指点!!!