开发工程师必备————【Day09】数据库基础知识与基本SQL语句

今日内容概要

  • 数据存取演变史
  • 数据库软件应用史
  • 数据库的本质
  • 数据库的分类
  • MySQL数据库
  • 基本使用
  • 系统服务制作
  • MyAQL之密码相关操作
  • SQL与NoSQL
  • 数据库重要概念
  • 基本SQL语句

数据存储演变史

1.文本文件
缺点:
(1)文件路径不一致:
C:\a.txt
D:\aaa\b.txt
E:\ccc.txt
(2)数据格式不一致:
jason|123
tony$123
kevin@123
上述两种格式的不同导致了程序的兼容性比较差。

2.软件开发目录规范
(1)规定了数据文件的大致存储位置:db文件夹
(2)针对数据格式还是没有完全统一:比如统一json文件但是内部键值对不同。

3.数据库服务
统一存储位置;也统一了数据格式(完全统一)

数据库软件应用史

1.单级游戏
特点:数据库服务全部在本地完成
不同计算机上的相同程序,缺点是数据无法做到共享;

2.网络游戏
特点:数据库服务单独在网络架设(远程数据库服务)
不同计算机上的相同程序,数据可以共享;

3.数据库集群
需要考虑到的问题:
数据安全性问题;
服务器负载问题。
解决办法:让多台服务器运行相同的数据库服务。

数据库的本质

1.不同角度描述数据库
(1)站在底层原理的角度
数据库指的是专用用于操作数据的进程;
eg:运行在内存中的代码。
(2)站在现实应用的角度
数据库指的是拥有操作界面的应用程序
eg:用于操作进程的界面。

2.数据库本质描述
在非特殊情况下提数据库就是在指数据库软件;
我们也称数据库软件本质是一款cs架构的应用程序;
所有的程序员理论上都可以编写的。

数据库的分类(理论重点)

1.关系型数据库
(1)数据的组织方式有明确的表结构:
eg表里面有固定的字段:id;name;password
关系型数据库存取数据的方式可以看成是表格。
(2)表与表之间可以建立数据库层面的关系:
eg用户表中某条数据与房屋表某条数据有绑定:用户表;房屋表
只要获取到用户表的一条数据,就可以获取到与之相关的其他表数据。
(3)关系型数据库软件:
MySQL、PostgreSQL、MariaDB、Oracle、sqlite、db2、sql server
MySQL:开源,使用最为广泛,数据库学习阶段必须要学的。
PostgreSQL:开源,支持二次开发(支持在原基础上更改功能)。
MariaDB:开源,与MySQL是同一个作者,用法也极其相似。
Oracle:收费,但是安全性极高,主要用与银行及各大重要机关。
sqlite:小型数据库,主要用于本地测试(django框架自带该数据库)

2.非关系型数据库
(1)数据的组织形式没有明确的表结构,是以k:v键值对的形式组织的,并且没有固定键值对。
eg:第一次存:{‘name’:‘jason’}
那么第二次存可以换成{‘username’:‘kevin’,‘pwd’:123}
(2)数据之间无法直接建立数据库层面的关系;
但是可以间接建立(例如用代码实现)。
(3)非关系型数据库软件:
redis、mongoDB、memcache
redis:目前最火的软件,使用频率最高的缓存型数据库。
mongoDB:稳定型数据库,最像关系型的非关系型数据库,主要用于爬虫以及大数据。
memcache:已经被redis淘汰。

MySQL简介

前戏:
虽然数据库很多,但是其底层操作几乎一致,学会一个其他的都可以快速上手。
学了MySQL基本就可以快速上手所有的关系型数据库甚至非关系型数据库。

1.MySQL版本问题
虽然在版本上又区别,但是在操作上几乎没有区别,主要体现在底层运作。
5.6X:前几年使用频率最高的版本
5.7X:最近尝试迁移的版本(频率+)
8.0X:最新版 功能很强大 但是线上环境几乎不用(本地自己用非常好用)

2.下载与安装
(1)访问官网:
https://www.mysql.com/
(2)点击DOWNLOADS
请添加图片描述
(3)点击GPL
请添加图片描述
(4)点击community server
请添加图片描述
(5)点击archives
请添加图片描述
(6)点击download
请添加图片描述

3.解压安装
上述方式下载的压缩包里含有服务端和客户端,支持本地操作。

4.主要文件介绍
请添加图片描述
(1)bin文件夹
mysqld.exe服务端
mysql.exe客户端
(2)data文件夹
存取数据
(3)my-default.ini
默认配置文件

基本使用

1.先启动服务端
可能会报错:拷贝关键信息去百度

2.查找mysqld文件位置
mysqld
cmd窗口就是服务端,一定不要关闭!!!
请添加图片描述

3.再次开启新的cmd窗口
mysql
直接回车会以游客模式进入,功能很少。
请添加图片描述

4.用户名密码登录
mysql -u用户名 -p密码
mysql默认管理员账号,用户名是root ,密码是空。
请添加图片描述

5.退出
exit
请添加图片描述
quit
请添加图片描述

系统服务制作

1.如何解决每次都需要切换路径查找文件的缺陷:
添加环境变量:
将D:\mysql-5.6.44-winx64\bin(mysql下bin文件路径)添加到环境变量path中。

2.将mysql服务端制作成系统服务(随着计算机的开启而启动,关闭而结束)
(1)以管理员身份打开cmd窗口
(2)执行系统服务命令:mysqld --install

(3)启动服务端(两种方式)
方式一:右键直接点启动
方式二:命令启动: net start mysql
请添加图片描述

(4)服务端配置完成请添加图片描述

3.补充命令
(1)查看系统服务的命令:services.msc
(2)关闭mysql服务端:net stop mysql
(3)移除系统服务(首先确保服务已经关闭,其次执行移除命令):mysqld --remove

MyAQL之密码相关操作

1.修改密码
方式一(通用的修改方式):
mysqladmin命令:
mysqladmin -u用户名 -p原密码 password 新密码
第一次修改密码:mysqladmin -uroot -p password 123
第二次修改密码:mysqladmin -uroot -p123 password 000000
方式二(偏门方式):
需要先登录,并且有些版本无法使用!!!
命令:set password=PASSWORD(新密码);

2.忘记密码
方式一:
直接重装MySQL
方式二:
拷贝对应文件
先关闭服务端,然后以不需要校验用户身份的方式启动。再修改,最后再安装正常方式启动。
1.net stop mysql
2.mysqld --skip-grant-tables
3.mysql -uroot -p
4.update mysql.user set password=password(123) where Host=‘localhost’ and User=‘root’;
5.net stop mysql
6.net start mysql

SQL与NoSQL

1.数据库的服务端支持各种语言充当客户端
eg:以MySQL服务端为例:
MySQL客户端、python代码编写的客户端、java代码编写的客户端
为了能够兼容所有类型的客户端,有两种策略:
(1)服务端兼容
不太合理,消耗数据库服务端资源!!!
(2)制定统一标准
SQL语句;NoSQL语句

2.SQL与NoSQL
SQL语句的意思是操作关系型数据库的语法
NoSQL语句的意思操作非关系型数据库的语法
需要强调:SQL有时候也用来表示关系型数据库,NoSQL也用来表示非关系型数据库.

数据库重要概念

1.一些概念
库————>文件夹
表————>文件夹里面的文件
记录————>文件里一行行的数据
一些命令:
show databases; 查看所有的数据库
show tables; 查看所有的表
select * from mysql.user; 查看user表里面所有的记录

2.补充
(1)SQL语句结束符是分号
;
(2)取消SQL语句的执行
\c

基本SQL语句

1.针对库的基本SQL语句
(1)增

creat database 库名;

(2)查

show databases;
show creat database 库名;

(3)改

# 改编码(采用gbk编码)
alter database 库名 charset='gbk';

(4)删

drop database 库名;

2.针对表的基本SQL语句
前提条件:首先了解自己当前在哪个库里面操作表!!!
命令一(查看当前所在的库名):select database();
如果没有切换指定的库 那么默认是NULL,如图所示.
请添加图片描述
命令二(切换库名):use 库名;
请添加图片描述
(1)增

create table 表名(字段名 字段类型,字段名 字段类型,字段名 字段类型);

(2)查

show tables;
show create table 表名;
describe 表名;  
desc 表名;

(3)改

# 改表名
alter table 旧表名 rename 新表名; 

(4)删

drop table 表名;

3.针对记录的基本SQL语句
前提条件:既然想操作记录,那么肯定的先有库和表!!!
(1)增

insert into 表名 values(数据,数据);
insert into 表名 values(数据,数据),(数据,数据),(数据,数据);

(2)查

ps:如果表中字段较多出现了错乱 可以结尾写\G
# *表示查看所有字段
select * from 表名;  
select 字段1,字段2 from 表名;

(3)改

update 表名 set 字段名=新数据 where 筛选条件;

(4)删

delete from 表名;  # 删除表中所有的数据
delete from 表名 where 筛选条件  # 按照条件删除数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值