MySQL-数据库、MySQL
1.存取数据的演变史
1.文本文件:
文件路径不固定(导致代码兼容性下降)
数据格式不统一:(max|123, max_123)
2.软件开发目录规范:
1.规定了数据应该保存在db目录下>>>:路径偏向统一(都在db目录下)
2.数据格式没有得到统一>>>:文本、json格式、对象
3.数据库服务:
1.统一了路径
2.统一操作方式
3.降低学习成本,提高开发效率
2.数据库软件应用史
1.单机游戏:数据存储于各个计算机本地,无法共享
2.网络游戏:数据存储于网络中,可以共享
"""
数据库服务集群:提升数控的安全性
"""
3.数据库的本质
1.站在底层原理的角度,数据库指的是操作数据的进程(一堆代码)
2.站在实际应用的角度,数据库指的是可视化操作界面(一些软件)
ps:以后不做特殊说明的情况下讲数据库其实指的是数据库软件
"""
数据库软件本质也是CS架构的程序,意味着所有的程序员都有资格编写出一款数据软件
"""
4.数据库的分类
1.关系型数据库:
1.1.特征:
1.拥有固定的表结构:拥有固定的表结构(类似于wps表格,表头要固定,每个字段都有固定的字段类型):id、name、pwd
2.数据之间可以建立关系(eg:通过身份证号查到籍贯,通过用户信息查到用户房产)
1.2.软件代表:
1.MySQL:开源免费、使用最广、性价比贼高
2.Oracle:收费、使用成本较高但是安全性也最高(银行,但由于成本高昂正被MySQL替代)
3.PostgreSQL:开源免费、支持二次开发、兼容性极高
4.MariaDB:跟MySQL是一个作者 开源免费
5.sqlite:小型数据库 主要用于本地测试
2.非关系型数据库:
2.1特征:
1.没有固定的表结构,数据采用K:V键值对的形式。{'name': 'max', 'pwd': 123}
2.数据之间无法建立数据库层面的关系,仅可以自己编写代码建立逻辑层面的关系
"""数据库层面的关系:比如删除了用户姓名,用户的房产信息等就会被自动的删除。代码层面的关系是指删除了用户姓名,房产等信息需要用户自己手动删除"""
1.redis:目前最火 使用频率最高的非关系型数据库(缓存数据库),虽然缓存数据库是基于内存做数据存取但是拥有持久化的功能(有日志记录,可以永久保存)
'''缓存数据库:数据库存取在内存中速度速度很快,大型软件一般用关系型数据库来做永久存储,非关系型数据库来做数据查询'''
2.mongoDB:文档型数据库 最像关系型数据库的非关系型数据库,主要用在爬虫以及大数据领域
3.memcache已经被redis淘汰
5.MySQL简介
1.版本问题:
8.0:最新版
5.7:使用频率较高
5.6:学习推荐使用
ps:站在开发的角度使用哪个版本学习都没有关系
2.下载流程:
1.访问官网:https://www.mysql.com/
2.点击DOWNLOADS并点击GPL

===

3.点击community server

4.点击Archives(作用是查看以前版本,旧版本很多东西需要人为处理,有利于学习阶段使用,所以采用旧版本)

5.选择对应系统的对应版本下载即可(zip压缩包)

3.主要目录介绍
bin目录:存放启动文件:mysqld.exe(服务端)、mysql.exe(客户端)
data:存储数据
my-default.ini:默认配置文件
readme:软件说明
6.MySQL基本使用
1.cmd建议使用管理员身份打开,用命令行(cmd窗口)启动
2.切换到mysql的bin目录下先启动服务端mysqld
'''出现该提示说明MySQL服务端已经启动,所以该窗口不能关闭'''

3.切换到mysql的bin目录下启动客户端
'''如果出现以下界面说明mysql已经启动成功'''

4.直接使用mysql命令默认是游客模式,权限和功能都很少,不同的账号进去权限不一样。用管理员权限登陆步骤:
1.切换到D盘:D:
2.打开mysql中bin目录:cd mysql-5.6.44-winx64\bin
3.输入管理员用户名和密码,默认密码为空:mysql -uroot -p,Enter password:不用输入内容直接回车

7.系统服务制作
"""
上述操作我们打开mysql客户端之前还要打开服务端,较为麻烦。我们可以进行系统服务制作,将mysql服务端设置成计算机的守护进程。苹果系统出厂时已进行如下设置,wins系统设置步骤如下:
"""
1.将bin目录添加到系统环境变量(设置成功之后重启cmd窗口)
2.将mysql添加到系统服务中
2.1如何查看系统服务:
方法1:进入任务管理器,点击服务

方法2:在cmd窗口输入services.msc回车

2.2以管理员身份打开cmd窗口(搜索终端>>>右键以管理员身份运行,可以看到管理员界面的cmd窗口和普通的略有差别)
2.3输入mysqld --install回车,此时就已将mysql添加到系统服务中

2.4此时我们看到mysql已经在系统服务中,但是首次添加还没有启动

2.5启动mysql。方法1:右键>>>启动;方法2:命令行启动:终端管路员窗口输入 net start mysql。此后可以不用再管了。

===

3.此后启动mysql可以不用先启动服务端,直接启动服务端就可以

"""
如果想写在重新安装,如下操作应在终端>>>以管理员身份运行 中进行:
1.先关闭客户端:net stop mysql
2.移除系统服务:net start mysql
"""

8.密码相关操作
知道原密码情况下改密码:
1.在终端输入mysqladmin -uroot -p原密码 password 新密码

===

忘记密码
方式1:卸载重新装
方式2:把data目录删除 拷贝同桌的目录
方式3:小把戏操作
1.关闭正常的服务端
2.以跳过授权表的方式重启服务端(不校验密码)
3.以管理员身份进入然后修改mysql.user表数据即可
net stop mysql
mysqld --skip-grant-table
mysql -uroot -p
update mysql.user set password=password('123') where Host='localhost' and User='root';
4.关闭服务端 然后以正常方式启动即可
9.SQL与NoSQL
数据库服务端是可以服务多种类型的客户端,客户端可以是自己开发的,也可以是python代码编写,也可以是java代码编写
SQL:操作关系型数据库的语言
NoSQL:操作非关系型数据库语言
"""
想要跟数据库交互就必须使用数据库指定的语言。SQL可能指的是语言,也可能指的是SQL数据库。NoSQL也可能指的是非关系型数据库
"""
10.数据库概念
"""
强调:小白阶段为了更加方便的理解 做了以下比喻 本质其实有一点点的区别
"""
库:相当于是文件夹
表:相当于是文件夹里面的文件
记录:相当于是文件夹里面文件的一行行数据
验证:
1.查看所有库的名称:show databases;发现显示的结果和mysql中data目录内所有文件夹的名字一样,这就是所有库的集合。information_schema是内存当中的临时数据库,不在硬盘上所以文件夹中找不到。

===

2.查看所有表名称:show tables;use就相当于鼠标双击后面的文件夹,查看表名之前要用use+库名选中库。

===

3.查看所有记录:select * from musql.user/G;

11.基本SQL语句
1.sql语句必须以分号结尾
2.sql语句编写错误之后不用担心可以直接执行报错即可,或者用\c,此行就不会执行
3.基于库的增删改查:
3.1创建库:create database 库名,可以看到库在data目录中以文件夹的形式存在

===

3.2查看库:
查看全部库:show databases;
查看指定库信息:show create database 库名
3.3编辑库:alter database 库名 charset='utf8'

3.4删除库:drop database 库名

===

4.基于表的增删改查:
操作表之前需要先确定库:create database db1
切换操作库:use db1
4.1创建表:create table 表名(字段名 字段类型)
4.2查看库下所有表名称:show tables;
查看指定表信息:show create table 表名

4.3查看表信息:describe 表名;简写:desc 表名
'''如果查看其它库中的表,只需在表明前加上库名.就可以'''

4.4表名重命名:alter table 原表名 rename 新表名

4.5删除表:drop table 表名

12.基于记录的基本SQL语句
1.插入数据:insert into 表名 values(数据值)
2.查看数据:select * from 表名

3.查看表指定字段数据:select 字段名 from 表名

4.编辑数据:update 表名 set 字段名=指定数据 where 字段名=指定数据

5.删除数据:delete from 表名 where 字段=指定字符
删除全部数据:delete * from 表名

MySQL-数据库、MySQL的更多相关文章
- 第二百八十六节,MySQL数据库-MySQL事务操作(回滚)
MySQL数据库-MySQL事务操作(回滚) 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 举例:有这样一张表 从表里可以看出张 ...
- 第二百八十五节,MySQL数据库-MySQL函数
MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函 ...
- 第二百八十四节,MySQL数据库-MySQL触发器
MySQL数据库-MySQL触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 1.创建触发器基本语法 ...
- 第二百八十三节,MySQL数据库-MySQL存储过程
MySQL数据库-MySQL存储过程 MySQL存储过程,也就是有点像MySQL函数,但是他与MySQL函数是有区别的,后面会讲到函数,所以注意区分 注意:函数与存储过程的区别 存储过程是:CREAT ...
- 第二百八十二节,MySQL数据库-MySQL视图
MySQL数据库-MySQL视图 1.视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 2.也 ...
- MySQL数据库”mysql SQL Error:1146,SQLState:42S02 “解决方法
项目在开发的时候在Mac平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决. ...
- Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数
mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...
- 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原
MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...
- Django 配置MySQL数据库 mysql
Django 配置MySQL数据库 在settings.py中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # ...
- MySQL数据库 | MySQL调优|MySQL底层原理|MySQL零基础新手教程
MySQL数据库安装 一.Windows 环境下安装 A.下载 MySQL Select Operating System: Microsoft Windows 快捷下载:mysql-8.0.22-w ...
随机推荐
- Linux备份文件加“时间”命令
好记性不如烂笔头,好用. date命令用于显示及设置系统的时间或日期,如何设置时间此处不再多说. date命令非常强大,可以将数据备份命令与date命令结合在一起使用,可以便捷的分辨出每个文件的备份时 ...
- Java反应式编程(1)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 前面把Java函数式编程的由来和最主要的核心知识点讲完了.包括比较难懂的Lambda表达式是怎么演变而来的也全部都撸了一遍.Lambda表达式这 ...
- perl chmod
chmod函数改变一列文件的权限.列表的第一个元素必须是数字模式.chmod函数返回成功改变了的文件的数目.如: $cnt = chmod 0755, 'file1', 'file2'; 其中最前面 ...
- Kubernetes专栏 | 安装部署(一)
--随着云原生概念的普及,许多企业的业务纷纷上云,为了追求可靠性,稳定性,和弹性伸缩,提升资源利用率等需求.Kubernetes这个谷歌开源的容器编排平台已日益流行,被大家熟知和使用. 通常来说,Ku ...
- 【每日一题】【回溯】2021年12月29日-93. 复原 IP 地址
有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201" 和 "192.1 ...
- vulnhub靶场之DIGITALWORLD.LOCAL: FALL
准备: 攻击机:虚拟机kali.本机win10. 靶机:digitalworld.local: FALL,下载地址:https://download.vulnhub.com/digitalworld/ ...
- L1-050 倒数第N个字符串 (15分)
L1-050 倒数第N个字符串 (15分) 给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时, ...
- Django框架:1、手撸web框架、Django框架简介、安装与使用和小白必会三板斧
Django框架 目录 Django框架 一.Django推导流程 1.纯手撸web框架 2.基于wsgire模块 3.代码封装优化 4.动静态网页 5.jinja2模块 6.前端.后端.数据库三者联 ...
- LeetCode HOT 100:组合总和
题目:39. 组合总和 题目描述: 给你一个没有重复元素的数组,和一个target目标值,返回数组中可以使数字和为目标数target的所有不同组合.什么叫组合?组合就是数组中任意数字组成的集合,不需要 ...
- 记一次 .NET 某安全生产信息系统 CPU爆高分析
一:背景 1.讲故事 今天是的第四天,头终于不巨疼了,写文章已经没什么问题,赶紧爬起来写. 这个月初有位朋友找到我,说他的程序出现了CPU爆高,让我帮忙看下怎么回事,简单分析了下有两点比较有意思. 这 ...