数据库
什么是数据库
存放数据的仓库
为什么要使用数据库
传统excle的缺点:
1.管理不了大量的数据 (10W量级的数据)
2.不能并发操作同一个数据表格
数据库的优点:
1.稳定性:任意一台服务所在的机器崩溃了都不会影响数据在另外的服务。
2.数据一致性:所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现不一致的现象。
3.并发:数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket。
4.效率:使用数据库对数据进行增删改查的效率要高于我们自己管理文件很多。
数据库的分类
关系型数据库
对每一列的数据类型会有约束, id(整型), name(字符串类型)
常见的关系型数据库:
maridb,MySQL -----》用的比较多,免费
SqlServer -----》 微软, 大学,政府 (汽车之家)
Oracle -----》甲骨文,收费,金融公司,阿里
sqlite -----》小型的文件数据库,自己玩玩等
非关系型数据库
对每一列的数据类型没有约束,
常见的非关系型数据库:
memcache ----》十年前的产品 (新浪博客)
mongodb ----》文档型数据库
redis ------》微博 使用的是{'keys' : 'values'}方式
关系型数据库与非关系型数据库的区别
关系型数据库,把数据存在硬盘中
非关系型数据库, 把数据存在内存中
MySQL的架构
MySQL的架构类似于socket,有客户端与服务端。
流程:
1.MySQL服务端先启动,监听某一特定的端口(默认是:3306)
2.MySQL客户端连接服务器
3.MySQL客户端可以发送相关的操作命令,去操作服务存储的数据
MySQL的安装
windows安装:
先去官网(https://dev.mysql.com/downloads/mysql/)
#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 ### 创建data目录, 初始化的数据
#5、启动MySQL服务
mysqld # 启动MySQL服务
#6、启动MySQL客户端并连接MySQL服务
mysql -u root -p # 连接MySQL服务器
mysql服务端不会阻塞住
制作windows的服务:
"D:mysql-5.7.28inmysqld" --install
修改mysql的密码:
C:Windowssystem32>mysqladmin -uroot -p "原密码" password "新密码"
出现的错误
C:Windowssystem32>mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
如果出现上述错误,代表密码输入错误
常用参数:(********************************)
-u : user 用户名
-p :password 密码
-h :host 主机名或ip mysql -uroot -p -h 192.168.1.10
-P : port 默认是3306 mysql -uroot -p -h 192.168.1.10 -P 3307
忘记密码,操作方式:
#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
操作数据库
关于数据库的比喻,可以将数据库按照以下来理解。
数据库 ----》 文件夹
数据表 ----》 数据文件
表记录 ----》 数据表内的数据
数据库的命名规范:
1.可以有数字,字母(区分大小写),下划线,特殊符号组成。
2.数据库的名字具有唯一性,不能重复。
3.不能使用关键字。
4.不能使用单独的数字。
5.最长为128位字节。
注意:所有的SQL命令都需要末尾加上 ;
增:create database 数据库名 charset utf-8;
删:drop database 数据库名;
改:删除再添加,如果数据库中有数据的话,直接drop会导致数据库中的数据丢失,在线上环境中,不能够直接删除数据,在删除之前需要进行备份
查:show databases;()查询当前库中的表
show tables;(查询当前库中的表)
使用数据库:user 数据库名;