数据库数据的演变史
数据存储的发展史
数据库的本质
数据库的分类
SQL与nosql的介绍
MySQL的介绍
MySQL的下载与安装
MySQL服务的制作
MySQL如何登录
管理员密码的修改以及忘记密码怎么办
基本的SQL语句(针对库、表、记录的增删改查)
1.把数据都存在了文件中
文件名不规范 kevin|123 kevin@123 kevin.123
2.随着用户的注册量越来越多,文件数也会越来越多,会占用大量的空间,以及查询和存储都不方便,还有速度很慢
3.数据库就能解决以上所有的问题:存储数据的,用起来非常方便
1.单机游戏:本质上是把数据都存在了本地
2.网络游戏:本质上是把数据存在了一个公共的地方,以后不管你在哪都是从这个公共的地方取值
本质上就是一款基于C/S架构编写的软件
既然是cs架构的软件,那就必然会有服务器端和客户端,理论上来说,我们自己也能够开发一款数据库软件,只需要开发一个客户端,一个服务端即可,只不过你开发的数据库软件没人用而已。
这个时候就有一些牛币的程序员,开发了很多款的数据库软件
1.关系型数据库
MySQL、Oracle、PostgreSql、SqlServer、db2、access、MariaDB、sqllite等
MySQL:开源的
Oracle:收费的
MariaDB:和MySQL的作者是一个
2.非关系型数据库
Redis缓存数据库(五大数据类型)
memcache数据库(支持一种字符串类型的k:v键值对) MongoDB数据库(爬虫)
Redis缓存数据库基本上是把memcache数据库淘汰了
关系型数据的特点:具备固定的表结构,表与表之间可以建立关系(Excel表格)
id name age gender
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
非关系型数据:没有表结构,它的存储形式是:K:V键值对的形式
name:kevin
age:20
MySQL数据库为了兼容各个语言,那么就统一规范了格式:
关系型数据库:SQL
非关系型数据库:nosql
1.版本
5.5 之前的都有,哪些版本目前几乎都不用了
MySQL5.6 # 使用较多的,比较稳定的
MySQL5.7 # 使用较多的,比较稳定的
MySQL8.0 # 新版本,对于MySQL来说,版本的更新不变的是SQL语句的书写
2.下载与安装
官网下载:https://www.mysql.com/
#1、下载:MySQL Community Server 5.7.16
http://dev.mysql.com/downloads/mysql/
#2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64
#3、添加环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
#4、初始化
mysqld --initialize-insecure
#5、启动MySQL服务
mysqld # 启动MySQL服务
#6、启动MySQL客户端并连接MySQL服务
mysql -u root -p # 连接MySQL服务器
3.主要文件介绍
bin目录下
mysql.exe 自带的客户端
mysqld.exe 自带的服务端
data:MySQL的数据存储的地方
my-default.ini:这个是MySQL的配置文件
README文件时MySQL的说明文件,类似于是说明书
4.MySQL如何使用
它是一款C/S架构的软件,那必然就会有服务端和客户端,我们需要先启动服务端,然后启动客户端链接
4.1
mysql.exe是服务端,应该先启动这个文件,这里不能双击了,需要通过cmd的方式启动
步骤:
在bin目录下,执行mysqld就是启动服务端的
在bin目录下,执行mysql就是客户端来链接的,输入mysql即可,初次链接默认是没有密码的
停掉MySQL的服务端:ctrl + c
4.2
加入环境变量:bin目录所在的路径加入到环境变量中
4.3 MySQL服务的制作
目的:就是可以把服务端的cmd窗口关闭,只留一个客户端的cmd即可
如何查看服务
1.在任务栏里打开任务管理器------>服务
2.点击此电脑---->管理------>服务
3.win + r ------>servis.msc-----服务
制作MySQL的服务步骤
1.mysqld ---install(需要管理员权限) # Install/Remove of the Service Denied!
mysqld --install(需要管理员权限) # Service successfully installed.
第一次安装成功服务是没有启动的,需要手动启动一次
2.启动服务
(1)直接点击启动----->mysqld------>服务端就不需要再打开cmd启动了----->后台工作
(2)命令启动
net start mysql(启动服务,需要管理员权限)
(3)关闭服务
net stop mysql(停止服务,需要管理员权限)
3.如何卸载服务以及安装服务
“卸载服务的时候一定要先关闭服务”
mysqld --remove
mysqld --install
服务端需要设置密码,然后让客户端通过用户名和密码进行登录
默认情况下,初次安装成功,链接是不需要安装密码的
如何给管理员设置密码
mysqladmin -u 用户名 -p 旧密码 password 新密码 (修改管理员密码也是这个命令)
mysqladmin -u root -p password 123
管理员具备了密码,客户端在链接的时候需要使用密码链接:
mysql -u root -p # 链接的是本地的MySQL
完整的链接命令
mysql -h 127.0.0.1 -p 3306 -u root -p
如果不用root登录就是游客模式,权限比较低,没有root用户的权限高,一般功能受限,就是只能查看,不能操作
初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
设置密码
[root@egon ~]# mysqladmin -uroot password "123" 设置初始密码 由于原密码为空,因此-p可以不用
[root@egon ~]# mysqladmin -uroot -p"123" password "456"
修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
命令格式:
[root@egon ~]# mysql -h172.31.0.2 -uroot -p456
[root@egon ~]# mysql -uroot -p
[root@egon ~]# mysql 以root用户登录本机,密码为空
1.关闭服务端
2.‘跳过授权表’的形式启动服务端
‘跳过授权表’>>>:意味着以后客户端来连接服务端的时候,只需要用户名,不在验证密码
3.如何跳过授权表
mysqld --skip-grant-tables
4.跳过授权表成功之后,修改管理员密码
update mysql.user set password=password('1234') where Host='localhost' and User='root';
#1 关闭mysql
#2 在cmd中执行:mysqld --skip-grant-tables
#3 在cmd中执行:mysql
#4 执行如下sql:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges;
#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新启动mysql
方法二
#1. 关闭mysql,可以用tskill mysqld将其杀死
#2. 在解压目录下,新建mysql配置文件my.ini
#3. my.ini内容,指定
[mysqld]
skip-grant-tables
#4. 启动mysqld
#5. 在cmd里直接输入mysql登录,然后操作
update mysql.user set authentication_string=password('') where user='root and host='localhost';
flush privileges;
#6. 注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
创建库
crate databases db1;
设置库的默认编码
create databases db1 charset='gbk';
查看库
show databases;
查看指定库
show create database db1;
改库
alter database db2 charset='utf8';
删库
drob database db2;
查看当前所在库的名字
select database();
切换到指定库
use database db1;
创建表
create table t1(id int,name char(4));
查看所有表
show tables;
查看指定的表
show create table t1;
查看当前表的详细信息
desc t1;
修改表
alter table t1 modify name char(16);
删除表
drop table t1;
以绝对路径的形式操作不同的库
create table db2.t1(id int);
插入单条数据
insert into t1 values(1,'dream');
插入多条数据
insert into t1 values(1,'dream')(2,'chimeng');
数据的查看
查看全部数据
select * from t1;
根据指定字段查看数据
select name from t1;
数据的更改
以限定调价修改指定字段的数据
update t1 set name='wzc'where id > 1;
删除数据
删除指定字段的数据
delete from t1 where id > 1;
删除指定字段的数据
delete from t1 where name='dream';
清空当前表的所有数据
delete from t1;