day40

数据库前期准备

"""
什么是数据库?

文件


软件开发目录
bin    
core
conf
db
lib
log => 数据库 => elasticsearch elk 全文搜索引擎
interface

MySQL数据库


# 单机游戏

优化:
网络游戏

"""

数据库的分类

"""
数据库本质其实是一个c/s架构,那就必须有服务端和客户端。


分类:
1.关系型数据库
有固定的表结构, 可以建立表与表之间的关系
常见数据库: MySQL Oracle sqllite SQLserver access db2
2.非关系型数据库
没有固定的表结构, 没有关系了
常见非关系型数据库: redis(字符串,无序集合,有序集合,哈希类型,列表类型) mongodb(爬虫) memcache(只支持字符串)
存储格式:k:v键值对‘



      
      
面试题:   redis和memcache的区别?

1、Redis和Memcache都是将数据存放在内存中,memcache还可用于缓存其他东西,例如图片、视频等等,但最大只能缓存1M。Redis最大缓存可达512M。

2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。

3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘。

4、存储数据安全及容灾–memcache挂掉后,数据没了不可恢复;redis可以定期保存到磁盘(持久化),数据丢失后可以通过aof恢复。

5、Redis支持数据的备份,即master-slave模式的数据备份。

6、Redis是单线程的的IO复用模型,对于单存只有IO操作来说,单线程可以将速度优势发挥到最大,但对于一些计算功能单线程模型会影响整体的吞吐量。memcache是多线程的,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,多线程可以发挥多核优势,但加锁带来了性能损耗。



"""

MySQL简介

"""
MySQL本质是通过网络传输获取数据

只要是通过网络传输的底层都是socket


1.服务端
MySQL也是有服务端
2.客户端
MySQL也是有客户端
"""

书写规范​
mysql
MySQL  Python Java


"""
什么是SQL?

什么是json?

"""

documention


MySQL的版本:
5.5  稳定
   5.6  稳定
   5.7
   8.0
   
"""
教学使用5.6

每个版本唯一不变的是SQL语句

"""

MySQL的下载与安装

"""
官网下载

1.下载下来是zip的压缩包,
2. 解压,得到文件夹
3. 进入到bin目录下,
mysql.exe mysql的客户端
mysqld.exe mysql的服务端  
4. 要先启动服务端,在启动客户端取连接
5. 进入到bin目录,执行mysqld启动服务端
6. 服务端启动之后,该窗口不要动,在另起一个cmd窗口,进入bin目录,执行mysql.exe 客户端,连接mysql
7. 添加环境变量
把bin目录路径添加到环境变量中, 这样做的目的是不用每次都进入到bin目录中执行了
8. 制作服务
1. 以管理员身份进入到cmd中
2. mysqld --install 添加服务
3. mysqld --remove 删除服务
4. 默认情况是未启动状态,需要手动点击启动
5. 如何查看服务?
1.
2.services.msc
3.我的电脑 -》 右键 -》 管理 -》 服务和应用程序


"""

MySQL用户登录

"""
默认情况
mysql不需要用户名和密码 -》

sql语句必须以;结尾
"""
用户名  密码
-u 用户名
-p 密码
mysql 登录的命令:mysql -u root -p123

需求:修改一下管理员的密码?
强调一点:该命令要在mysql之外执行
mysqladmin  -uroot -p password 新密码

       
忘记密码:
执行的位置:必须进入到mysql中,必须登录
update user set password=password(111) where user='root' and host='localhost';
   
   
退出命令:exit

重要概念介绍


"""
mysql的组成:
-》 文件夹
-》 文件
记录 -》 文件中的数据
字段 -》 文件的表头
"""

MySQL的配置文件

"""
只要修改了mysql的配置文件, 必须重启服务(*********)
"""

针对库的增删改查

"""
1. 查看所有的数据库
show databases;
2. 创建数据库:
create database 数据库名称;
3. 删除数据库
drop database 数据库名称;

4.查看当前所在库
select database();
5. 切换数据库
use 数据库名称;

"""

表的增删改查

"""
1. 查看表
show tables;
show create table 表名;
2. 创建表
create table t1 (id int, name varchar(4), age int);
3. 查看表结构
desc 表名;
4. 修改表名
alter table t1 rename t2;
5. 修改字段类型
alter table t1 modify name varchar(32);
6. 删除表
drop table 表名;

记录的增删改查
"""
1. 查询记录
select * from table;
select id, name from table;
2. 查看所有表
show tables;
3. 增
insert into t1 (id, name, age) values (1, 'egon', 18);
insert into t2 (id, name, age) values (1, 'egon', 18),(2, 'egon', 18),(3, 'egon', 18);

4. 修改
update 表名 set name='egon' where id=1;
5. 删除记录
delete from table where id = 1;

"""

 面试题:

  如何给已经存有100w的数据,增加一个字段?

    

    ① 创建一个临时的新表,首先复制旧表的结构(包含索引)
    1 create table new_table like old_table;
    ② 给新表加上新增的字段
    ③ 把旧表的数据复制过来
    1 insert into new_table(filed1,filed2…) select filed1,filed2,… from old_table
    ④ 删除旧表,重命名新表的名字为旧表的名字

 

上线流程:

  1、准备你的sql语句

  2、把你的代码提交到git仓库中

  3、注意:上线之前一定要先上表, 再上代码。

posted @ 2021-07-26 17:47  Gnomeshghy  阅读(46)  评论(0)    收藏  举报