什么是数据库 (DataBase, 简称 DB)
用来存储数据的仓库
数据库可以在硬盘及内存中存储数据
数据库服务器端: 存放数据库的主机集群
数据库客户端: 可以连接数据库的任意客户端
数据库管理员: DBA
为啥使用数据库
之前使用的是 Excel 来进行管理数据,
Excel 的缺点:
1. 管理不了大量的数据 (10W 量级的数据)
2. 并发操作同一个数据表格
3. 数据支持高级的操作, 比如: 分组, 连表等
数据库的分类
数据库管理系统 (DataBase Management System 简称 DBMS)
如 MySQL,Oracle,SQLite,Access,MS SQL Server.
- 关系型数据库
有表的概念, 以表中一条条记录存储数据
对每一列的数据类型会有约束, id(整型), name(字符串类型)
maridb,MySQL -----》用的比较多, 免费, 开源, 目前是甲骨文公司的产品
SqlServer -----》 微软, 大学, 政府 (汽车之家)
Oracle -----》甲骨文, 收费, 金融公司, 阿里
SQLite -----》小型的文件数据库, 自己玩玩等
- 非关系型数据库
没有表的概念, 通过 key-value 键值对方式存储数据
memcache ----》十年前的产品 (新浪博客)
MongoDB ----》文档型数据库
Redis ------》微博
- {
- "name":'zekai'
- }
- {
- "name":12
- }
- {
- "name":[]
- }
- {
- "name":{
- }
- }
两者最大区别:
关系型数据库, 把数据存在硬盘中
非关系型数据库, 把数据存在内存中
MySQL 的框架
流程:
1. MySQL 服务端先启动, 监听在某一个特定的端口 (3306)
2. MySQL 客户端连接服务端
3. MySQL 客户端就可以发送相关的操作命令, 去操作服务端存储的数据
MySQL 的安装 (Windows)
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 服务端不会阻塞住
注意:--install 前, 必须用 MySQL 启动命令的绝对路径
- # 制作 MySQL 的 Windows 服务, 在终端执行此命令:
- "c:\mysql-5.7.16-winx64\bin\mysqld" --install
- # 移除 MySQL 的 Windows 服务, 在终端执行此命令:
- "c:\mysql-5.7.16-winx64\bin\mysqld" --remove
注册成服务之后, 以后再启动和关闭 MySQL 服务时, 仅需执行如下命令:
- # 启动 MySQL 服务
- net start MySQL
- # 关闭 MySQL 服务
- net stop MySQL
将 MySQL 服务制作成 Windows 服务
修改 MySQL 的密码
C:\Windows\system32>mysqladmin -uroot -p "原密码" password "新密码"
C:\Windows\system32>mysqladmin -uroot password "123" 设置初始密码 由于原密码为空, 因此 - p 可以不用
出现的错误
- C:\Windows\system32>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 的服务
net stop MySQL 或者 taskkill -f /PID 进程号
tasklist |findstr 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
SQL 指令
- 操作数据库 (***************************************************************)
增
create database 数据库名称 charset utf8;
命名规范:
可以由字母, 数字, 下划线,@,#,$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长 128 位
show create database 数据库名;
删
drop database 数据库名称;
改
删除再添加
如果数据库中有数据的话, 直接 drop 会导致数据库中的数据丢失
在线上环境, 不能够直接删除数据, 在删除之前, 需要进行备份
查 show databases;
使用数据库:
use 数据库名;
来源: http://www.bubuko.com/infodetail-3262950.html