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 库名; # 指定查看某个库的信息

create database 库名;

3.改
alter database 库名 charset='gbk'; # 修改字符编码
4.删
drop database 库名;
操作表的基本SQL语句
1.确定库
表是存放于库下面的,所以操作表之前,应该先确定库 # 1.查看当前在哪个库下 select database(); # 如果是null表示当前没有切换到任何库下 # 2.切换到指定库 use 库名; '''强调我们在操作库、表、记录的时候,MySQL默认自带的都不要动'''

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小白陆禄绯,欢迎各位大佬的指点!!!
