数据库
一.数据库是什么?
字面意思:存数据的仓库。
二. 为啥使用数据库?(***)
之前使用的是Excel来进行管理数据。
Excel的缺点:
1.管理不了大量的数据(10w量级的数据)
2.并发操作同一个数据表格。
3.数据支持高级的操作,比如:分组,连表等
三.数据库的分类。
关系型数据库
对买一列的数据类型会有约束,id(整型),name(字符串类型)
MYSQL,maridb---》用的比较多,因为是免费的
SqServer,-----》 微软,大学, 政府 (汽车之家)
Oracle,-----》甲骨文,收费。一般金融公司用得多。
sqlite,-----》自己理解,随便玩玩。
等
非关系型数据库
memcache -----》 十年前的产品(新浪微博)
mongodb-----》文档型数据库
redis -----》 微博
redis分布式缓存,微博。以key,values的形式存储。
最大区别:
关系型数据库,把数据存在硬盘中。
非关系型数据库,把数据存在内存中。mongodb,redis解决了内存断电消失的问题。
四.mysql的架构。
类似于 socket 的客户端和服务端。
流程:
1.mysql服务端先启动,监听在某一个特定的端口(3306)
2.MySQL客户端连接数据库服务端
3.MySQL客户端就可以发送相关的操作命令,去操作服务端存储数据。
五.mysql的安装(windows)
windows安装:
1.先去官网(https://dev.mysq.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服务器
安装
常用的参数:(************************************)
-u :user 用户名
-p:password 密码
-h:host 主机名或ip mysql -u root -p -h 192.168.1.10
-P:port 默认是3306 mysql -u root -p -h 192.168.1.10 -P 3307
登录,设置密码:
初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
设置密码
[在cmd中执行]# mysqladmin -uroot password "123" 设置初始密码 由于原密码为空,因此-p可以不用
[在cmd中执行]# mysqladmin -uroot -p"123" password "456" 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
命令格式:
[在cmd中执行]# mysql -h172.31.0.2 -uroot -p456
[在cmd中执行]# mysql -uroot -p
[在cmd中执行]# mysql 以root用户登录本机,密码为空
忘记密码:
#1 关闭mysqld的服务
#2 在cmd中执行:mysqld --skip-grant-tables ===》 不用密码就可以登录,绕过密码验证的权限
#3 在cmd中执行:mysql ===》 mysql -uroot -p
#4 执行如下sql指令:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges; (一定要操作)
#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新启动mysql服务
六.初始mysql
操作数据库
增:
create + database + 数据库名称 + 类似于socket +分号 ;
命名规范:
- 具有描述意义
- 只能由数字/字母/下划线组成,不能以数字开头
- 不能用python关键字
删:
drop database 数据库名称 + 分号 ;
改:
删除在添加
如果数据库中有数据的话,直接drop会导致数据库中的数据丢失
在线上环境,不能够直接删除数据,在删除之前
查:
show databases + 分号;