今日内容概要
-  数据库数据的演变史 
-  数据存储的发展史 
-  数据库的本质 
-  数据库的分类 
-  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
         
SQL与nosql的介绍
MySQL数据库为了兼容各个语言,那么就统一规范了格式:
 关系型数据库:SQL
 非关系型数据库:nosql
MySQL数据库的介绍
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
  
MySQL如何登录
服务端需要设置密码,然后让客户端通过用户名和密码进行登录
 默认情况下,初次安装成功,链接是不需要安装密码的
如何给管理员设置密码
 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,然后就可以以新密码登录了基本SQL语句的使用
针对库的增删改查
创建库
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;