1028 数据库基础操作
数据库
什么是数据库
用来存储数据的仓库
数据库可以在硬盘以及内存中存储数据
数据库与文件存储数据的区别
数据库本质也是通过文件来存储数据,数据库的概念就是系统的管理存储数据的文件
数据库介绍
数据库服务端: 存放数据库的主机集群
数据库客户端: 可以连接数据库的任意客户端
数据库管理员:DBA
# socket套接字的c/s架构应用
数据库基本概念
库: 多表构建一个数据库,本质就是文件夹
表:多条数据构建一张表,本质就是文件
记录: 存放一条条数据本质就是文件中的一条条数据记录
数据库系统的特点
- 数据结构化
- 数据共享,冗余度低,易扩充.
- 数据独立性高
- 数据由DBMS统一管理和控制
- 数据的安全性保护
- 数据的完整性检查
- 并发控制
- 数据库恢复
数据库分类
关系型数据库
- 有表的概念
- 以表中一条条记录存储数据
mysql,maridb 免费 ,常用
Oracle 甲骨文,收费,金融公司
sqlserver 微软,大学,政府,(汽车之家🚕)
sqlite 小型的文件数据库,自用
access
db2
非关系型数据库
- 没有表的概念
- 通过key-value键值对方式存储数据
MongoDB 文件型数据库
redis 微博
memcache 十年前的产品(新浪博客)
区别
关系型数据库,把数据存在硬盘中
非关系型数据库,把数据存在内存中
mysql数据库
mysql是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,被Oracle(甲骨文公司)收购.MySQL最流行的关系型数据库管理系统.在web应用方面MySQL是最好的RDBMS(关系数据库管理系统)应用软件之一
MySQL的架构
类似于socket的客户端和服务端
流程:
- MySQL服务端先启动,监听在某一个特定的端口(3306)
- MySQL客户端连接服务端
- MySQL客户端就可以发送相关的操作命令,去操作服务端存储的数据
常用参数
-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.下载
https://dev.mysql.com/downloads/mysql/
,下载MySQL Community Server 5.7.16
2.解压
将MySQL压缩包安装在指定目录,将文件夹移动至指定位置
3.添加环境变量
右键计算机 == 属性 == 高级系统设置 == 高级 == 环境变量 == 系统变量 == path == 添加 == 将MySQL的bin目的地址添加即可
都需要手动cd盘符,添加环境变量不需要切换盘符,可以在cmd中直接输入mysql以及mysqld
4.初始化
添加环境变量结束后,再cmd命令行中输入mysqld --initialize-insecure
,即是创建data目录,初始化数据
5.启动MySQL服务端
mysqld
即MySQL服务,cmd命令中输入mysqld
,启动MySQL服务
7.启动MySQL客户端
mysql -u root -p
启动服务,并连接MySQL服务,不要关闭上一个cmd,另打开一个cmd,输入mysql -u root -p
,进行连接MySQL的服务器
-u 是用户名,默认为root ,-p 是密码,默认为空
8.制作Windows的服务
"D:\mysql-5.7.28\bin\mysqld" --install
为了让服务端不阻塞,制作MySQL的Windows服务,在cmd命令中输入"D:\mysql-5.7.28\bin\mysqld" --install
(将MySQL的mysqld的目录放入 + --install ),如果权限不足,使用cmd 的管理员功能运行.
制作服务端的Windows的服务,使得在window中启动mysqld服务端
cmd直接启动mysql客户端,不会等待阻塞,可输入启动客户端命令
9.修改密码
知道旧密码的情况下:
法1 : 登录之前修改密码:
mysqladmin -u root -p 旧密码 password "新密码" (双引号)
法2 : 登录之后修改密码:
set password for root@localhost=password("新密码")
遗忘密码的情况下:
法1 :
- 首先关闭系统服务中已经启动的MySQL服务端
- 绕过授权表启动服务: mysqld --skip-grant-tables;
- 任意密码都可登录root用户 : mysql -uroot -P 任意
- 更新密码: 输入整条命令 :update mysql.user set authentication_string=password('') where user = 'root';
- 刷新权限 : flush privileges;
- 重新启动MySQL服务
法2:
#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,然后就可以以新密码登录了
库的基本操作
前提:连接上数据库
增
创建数据库 :
采用默认编码集 :
create database 数据库名
自定义编码集 :
create database 数据库名 charset = "utf8"
命名规范
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
查
查看数据库全部的信息
- 纵观所有数据库
show databases; # 记得加 ';'
- 详细信息
show create database 数据库名 ;
- 使用数据库
use 数据库名 ;
- 查看当前库中表
show tables;
- 查看当前的数据库
select database();
改
更改数据库的编码集
alter database 数据库名 charset utf8 ;
删
移除数据库
drop database 数据库名 ;