数据库简介与MySQL简介
MySQL简介
数据存取演变史
起源······文本文件
- 在最开始使用计算机都没有相应的规范我们的数据一般都是自己起一个名字然后就根据这个路径存储数据并且存储数据的格式也都五花八门就产生了很多奇奇怪怪的方式
- 文件路径C:xxx.txt,D:xxx.txt, E:xxx.txt, F:xxx.txt等
- 数据存储格式:joseph|321, Alice¥520等
发展······软件开发目录规范
- 我们渐渐的创造出一些默认的软件开发目录规范,让存储数据不再变得那么难以查找,并且一看某些文件夹就知道内部文件大概是什么,但是针对数据的存储格式还是没有完全统一
- 规定了文件存储大概位置:db文件夹内
- 数据存储格式:json格式和picket格式等存储格式还是繁多
现阶段·····数据库服务
- 针对上方的情况我们也搞出了解决方法既然大家存储格式都不太一样那么我就发明一种足够吸引你使用的存储格式和地方,然后大家就一起使用统一的存储格式那么就方便互相之间的交互
- 统一了存取位置和数据与格式
数据库软件应用史
- 单机模式
- 在不同计算机上的相同程序,数据无法共享因为数据库的存储服务全是在本机上完成也就是本地存储,无法分享,满足个人需求
- 联机交互模式
- 不同计算机上的相同程序,数据可以共享,数据库并不存储在本地而是存储在网络架构上方的远程数据库上,我们只需要联网就可以去那个地方拿取到我们自己的数据
- 远程数据库
- 数据库服务是构建一个数据库集群,但是为了我们的数据的安全性和服务器的负载效率我们一般让数据存储分备份存储在不同地方以防出现数据丢失或者物理丢失的情况,所以就有了一句话,贵州山脉服务器集群,水冷设备降温除虫。远离病虫害。(自己瞎编的)
数据库的本质
- 数据库的表达角度
- 站在底层原理的角度来说数据库是指专用于操作数据的进程,就是指运行在内存中的代码
- 而站在显示应用的角度来说,数据库其实本质上就是一种拥有操作界面的应用程序
- 数据库的本质
- 其实数据库本质上来说就是一款应用程序,理论上我们是个程序员都可以自己编写数据库应用程序,他其实也是一款CS架构的应用程序。
数据库的分类
关系型数据库
- 数据的组织方式有明确的表结构,甚至我们可以将他直接看成是存储在表格中
id name password 1 joseph 123 2 jason 520 - 表与表之间可以建立数据库层面的关系,只需要获取到用户表中的一条数据那么我们就可以获取到与之相关的其他表的数据
SQL 形态 介绍 MySQL 开源 使用最为广泛,数据库学习必学,现在安全程度也变得越来越高 PsotgreSQL 开源 支持二次开发 MariaDB 开源 与MySQL是同一个作者,用法也极其相似,名称是以自己女儿名字命名 Oracle 收费 安全性极高,各大银行和重要机关使用 sqlite 小型数据库 主要是用于本地测试在django中自带的一个数据库 db2 开源 转为中型和大型商业机构设计开发 sql server 开源 使用集成的商业智能(BI)工具提供了企业级的数据管理 非关系型数据库
数据结构没有明确的表的形式去表述,一般是以字典的K:V键值对的形式去组织存储
{'name':'jsoeph'}{'username':'Alice','password':'520'}
数据之间无法直接建立数据库层面的关系
SQL 形态 介绍 redis 目前来说最火的非关系数据库 使用频率最好的缓存型数据库 mongoDB 稳定型数据库 最像是关系型数据库的非关系数据库,有Java那味了 memcache GG GG
MySQL简介
- 前言
- 虽然说数据库类型也是繁多复杂的但是就底层操作来收几乎都差不多,只要学会一个的话那么学别的就会特别快,MySQl一般来说都是第一个学习使用的数据库
- 版本
- 5.6.x 前几年使用频率最高的版本
- 5.7.x 最近几年在迁移的版本使用频率正在逐步上升
- 8.0.x 最新版本,功能非常强大,但是线上环境也就是公司中一般不会去使用这个版本,因为公司宁可使用十多年前的版本也要追求稳定性,否则一旦出事很难收拾,我们自己在个人使用的时候开源尝试使用8.0.x
- 版本之间虽然有所不同但是操作上基本没有什么改变
- 下载及其安装详情
- 访问官网 https://www.mysql.com/
- 点击DOWNLOADS https://www.mysql.com/downloads/
- 在下方点击GPL MySQL Community (GPL) Downloads »
- 点击community server https://dev.mysql.com/downloads/mysql/
- 点击archives https://downloads.mysql.com/archives/community/
- 点击download 一般选择64位的即可
- 安装使用管理员安装和登录并且设置自己的密码即可
- 重要文件介绍
- bin文件夹
- mysqld.exe 服务端
- mysql.exe 客户端
- data文件夹
- 存储数据
- my-default.ini
- 默认的配置文件
- bin文件夹
MySQL基本使用
- 先启动服务器
- 可能会有两种报错:寻找关键信息到浏览器寻找解决方式,一般为缺失文件,下个补丁应该就可以了
- 查找MySQL文件位置
- 打开一个cmd窗口输入 cd+文件路径 进入登录然后保持这个状态不动充当服务端即可
- 再次打开新的cmd窗口
- 进入MySQL直接回车就可以进入阉割的游客模式,但是功能很少
- 用户登录
- 输入mysql -u用户名 -p密码 ;就可以登录了
- 一般第一次的话直接输默认的账号密码即可 mysql -uroot 空密码即可登录
- 退出
- quit 退出
- exit 退出
系统服务制作
- 添加环境变量
- 找到我们系统的环境变量然后点击path将我们的mysql的bin文件夹的绝对路径添加进去即可
- 讲MySQL服务端设置成自动启动
- 以管理员身份进入cmd窗口,执行mysqld --install命令
- 然后有两种方式一种是使用系统服务命令 services.msc 调出系统设置找到MySQL然后启动
- 另一种方法是使用命令的方式 net start mysql
- 关闭服务器和移除系统服务
- 关闭服务器 net stop mysql
- 先确保服务已经关闭然后执行移除命令 mysqld --remove
密码相关操作
修改密码
mysqladmin命令
通用命令:
mysqladmin -u用户名 -p原密码 password 新密码
第一次修改
mysqladmin -uroot -p(这里为空就好因为默认密码为空,如果安装时你已经设置密码那么直接输你密码即可) password xxx
低版本修改简便方式: # 但是需要先登录
set password=PASSWORD(新密码)即可
忘记密码
把系统内存储你密码的那三个文件删除然后让你朋友将他的三个文件发你粘贴到那三个文件的地址上你用他的账号密码登录,然后你再更改
先关闭服务器,然后就不需要校验用户身份及逆行启动,再去修改安装正常方式启动
1.net stop mysql
2.mysqld --skip-grant-tabes
3.mysql -uroot -p
4.update mysql.user set password=password(xxx) where HOST='localhost' and User='root'
5.net stop mysql
6.net start mysql
SQL和NoSQL
- 兼容性
- 由于数据库是为了支持各种语言充当客户端,但是各种语言的区别有很大为了解决这个问题我们就像如何做到让所有的语言都可以使用我们的数据库那么就出现了两种方式
- 一种是服务端也就是数据库进行兼容所有语言,但是那样就会使服务端变得臃肿所以我们就应该使用另一种方式
- 自己制定一套标准所有的都遵循我的标准来执行那么就可以做到我的服务器又好用,还快,但是就是需要学一下我的简单语句就可以使用SQL语句和NoSQL语句两种
- 由于数据库是为了支持各种语言充当客户端,但是各种语言的区别有很大为了解决这个问题我们就像如何做到让所有的语言都可以使用我们的数据库那么就出现了两种方式
- 语法区别
- SQL语句的意思就是操作关系型数据库的语法
- NoSQL则是操作非关系型数据库
- 所以有时候SQL也被指为关系型数据库而NoSQL则指为非关系型数据库
数据库的重要概念
数据库 | 操作 | 作用 | 帮助理解 |
---|---|---|---|
库 | show databases; | 查看所有的数据库 | 文件夹 |
表 | show tables; | 查看所有的表 | 文件夹中的文件 |
记录 | select * from mysql.user; | 查看user表中的所有记录 | 文件中的数据 |
数据库补充知识
符号 | 作用 |
---|---|
;(分号) | SQL语句中的结束符 |
\c | 取消SQL语句执行 |
针对库的基本SQL语句
操作 | 代码 | 作用 |
---|---|---|
增 | create database 库名; | 增加一个新的库 |
查 | show databases; |show create database 库名; | 查询这个库下的数据 |
该 | alter database 库名 charset='gbk'; | 更改这个库下的数据 |
删 | drop database 库名; | 删除这个库 |
查看所在库名 | select database(库名); use 库名; | 如果没有的话默认为NULL |
针对表的基本SQL语句
操作 | 代码 | 作用 |
---|---|---|
增 | create table 表名(字段名 字段类型) | 增加表内数据 |
查 | show tables;|show create table 表名; |descrlbe 表名;|desc 表名; | 查看表内的内容 |
改 | alter table 旧表名 rename 新表名; | 改表名 |
删 | drop table 表名; | 删除表 |
针对记录的基本SQL语句
操作 | 代码 | 作用 |
---|---|---|
增 | insert into 表名 values(数据,数据); |insert into 表名 values(数据,数据); | 增加表内的数据 |
查 | select * from 表名; |select 字段1,字段2 from 表名; | 查看表内的所有字段 |
改 | updata 表名 set 字段名=新数据 where 筛选条件; | 修改表内的数据 |
删 | defete from 表名;|defete from 表名 where 筛选条件; | 删除表中所有数据和按条件删除数据 |
数据库简介与MySQL简介的更多相关文章
- mysql由浅入深探究(一)----数据库简介与mysql安装
mysql简介: 首先谈到mysql,我们要知道这是一个开源的数据库,与开源对应的就是free,但这并不意味着其性能会比很差,mysql同样能支持千万级以上的大数据量,甚至更多.同时mysql还支持许 ...
- 01--数据库MySQL:【数据库DB】和【数据库管理系统DBMS】 简介
1.数据库DB 数据库:DB(DataBase) 按照一定规则存储在计算机的内部存储设备上被各种用户或者应用共享的数据集合 2.数据库管理系统DBMS 1)数据库管理系统DBMS:DBMS(DataB ...
- MySQL数据库笔记一:简介及简单操作
一.初识MySQL数据库 1.数据库的概述 <1>数据库:Database 长期存储在计算机内的,有组织的,可共享的数据集合. 存储数据的仓库.(文件) <2>数据库管理系统: ...
- 第一章 Mysql 简介及安装和配置
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...
- mysql基础篇-----mysql简介
2017-04-19 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 ...
- MySQL(一)之MySQL简介与安装
大家可能都在用MySQL,其实我也是在用MySQL的,但是你知道吗?大部分人都是在windows中使用,这里将介绍一下在windows中的安装分为安装包安装与MSI包安装,以及在linux中的在线安装 ...
- PHP MySQL 简介
PHP MySQL 简介 通过 PHP,您可以连接和操作数据库. MySQL 是跟 PHP 配套使用的最流行的开源数据库系统. 如果想学习更多 MySQL 知识可以查看本站MySQL 教程. MySQ ...
- MySQL简介及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...
- mysql -> 简介&体系结构_01
数据库简介 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 所谓“数据库”系以一定方式储存在一起.能予多个用户共享.具有尽可能小的 ...
随机推荐
- 48. ResNet为什么能训练出1000层的模型
先回顾一下resnet怎么处理它的梯度消失,使得能处理训练1000层:
- python爬虫之JS逆向某易云音乐
Python爬虫之JS逆向采集某易云音乐网站 在获取音乐的详情信息时,遇到请求参数全为加密的情况,现解解决方案整理如下: JS逆向有两种思路: 一种是整理出js文件在Python中直接使用execjs ...
- 『忘了再学』Shell基础 — 32、Shell中test测试命令详解
目录 1.test测试命令 (1)test命令介绍 (2)test命令使用方式 (3)示例 2.按照文件类型进行判断 3.按照文件权限进行判断 4.两个文件之间进行比较 5.两个整数之间比较 6.字符 ...
- JavaScript中动态生成表格
动态生成表格,首先需要输入并获取动态的数字,html中结构代码如下:行:<input type="text" id="row" value="5 ...
- 论文解读(LG2AR)《Learning Graph Augmentations to Learn Graph Representations》
论文信息 论文标题:Learning Graph Augmentations to Learn Graph Representations论文作者:Kaveh Hassani, Amir Hosein ...
- .NET6接入Skywalking链路追踪完整流程
一.Skywalking介绍 Skywalking是一款分布式链路追踪组件,什么是链路追踪? 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软 ...
- RPA 微信财务报销机器人 竹间智能
1.首先通过微信对话机器人收集报销信息及内容 2.上传发票并进行OCR识别 3.收集相关的出差信息,支持对话中修改内容 4.完成信息收集后,后台RPA机器人执行报销操作,并发送确认邮件 5.收到邮件后 ...
- InheritableThreadLocal 在线程池中进行父子线程间消息传递出现消息丢失的解析
在日常研发过程中,我们经常面临着需要在线程内,线程间进行消息传递,比如在修改一些开源组件源码的过程中,需要将外部参数透传到内部,如果进行方法参数重载,则涉及到的改动量过大,这样,我们可以依赖Threa ...
- IntelliJ IDEA 项目文件旁边都有0%classes,0% lines covered
IntelliJ IDEA 项目文件旁边都有0%classes,0% lines covered,解决方法:http://yayihouse.com/yayishuwu/chapter/2247
- System类的常用方法和StringBuilder的原理
System类的常用方法1.currentTimeMillis方法2.arraycopy方法 java.lang.System 类中提供大量的静态方法,可以获取与系统相关的信息或系统级操作,在Syst ...