一、DB 与 DBMS
1.DB(DataBase):数据库,存储已经组织好的数据的容器
2.DBMS(DataBase Manage System):通过数据库管理系统,对数据库及数据库中的数据进行操作
注:我们平时所说的 Oracle、Mysql、MariaDB 指的都是数据库管理系统(DBMS)
二、数据库中存放的数据1.表(table):表是结构化的文件,用来存储特定类型的数据 ( 比如 工作人员户籍信息、工作人员婚姻信息等特定类型 )
注:一个数据库中,表的名字是唯一的
三、表的结构
1.框架(Schema):关于数据库和表布局以及属性信息。
2.列(column):表中的一个字段,表由一列或多列构成,列中存储 表的一部分信息。每一列存储一条特定信息。
注:数据库中每一列都有相应的数据类型,数据类型定义了该列可以存储哪种类型的数据。
3.行(row):表中的一条记录注:NULL:空值
4.主键(primary key):唯一标识表中每一行的列(或者多列的集合)
注:任意两行不具有相同的主键值(主键列中的每行数据不能相同)
主键列不能包含空值(NULL)
![](https://file.jishuzhan.net/article/1777365545096581122/ee658b91b9dd3ac243d2d1e4a9331f65.webp)
四、SQL 语句
1.定义:结构化查询语言(Structured Query Language)
2.分类:
1)数据 查询 语言(DQL:Data Query Language):
功能:从数据库中查询相关信息或记录
主要的关键字:SELECT,WHERE,ORDER BY,GROUP BY 和 HAVING
2)数据 操作 语言(DML:Data Manipulation Language):
功能:对数据库中的表的内容进行相关操作
主要的关键字:INSERT,UPDATE 和 DELETE
3)事务处理语言(TPL):功能:对事务进行相关操作
主要的关键字:BEGIN,TRANSACTION,COMMIT 和 ROLLBACK。
4)数据控制语言(DCL) ( data control language ) :功能:对权限进行相关操作
主要的关键字:GRANT 或 REVOKE
5)数据定义语言(DDL):
功能:对数据库、表等进行相关操作
主要的关键字:CREATE 和 DROP
6)指针控制语言(CCL):功能:对指针进行相关操作
主要的关键字:DECLARE CURSOR,FETCH INTO 和 UPDATE WHERE CURRENT
五、MariaDB
1. 概念 :是一个基于 Mysql 的 DBMS,完成了存储,获取,管理以及操作数据库的工作。Oracle二次开发
2.DBMS 的分类:一类是基于共享文件系统的 DBMS,另一类是基于客户端/服务器的 DBMS。
前者适用于桌面应用,一般不用来进行较高端或者更苛刻的应用。
注:基于客户端/服务器的 DMBS 中,客户端与服务器的关系
1)用户使用客户端,向服务器发送数据库操作的指令
2)服务器接受到来自客户端的指令,根据指令对数据库或数据库中的数据进行相关操作
3)服务器将操作完成后的结果返回给客户端供用户查看注:经常使用的客户端
<1>mysql 命令行
<2>MySQL Workbench 图形化
六、关系型数据库与非关系型数据库
1.关系型数据库:按照关系模型来组织存储数据
如:Oracle MySQL MariaDB DB2
同时查询多个表,各个表之间有关系。不适合存储特别多的数据
2.非关系型数据库:NoSQL(Not only SQL)
如:mongoDB
适合存储大量数据,其中有四种
1)以行为基础的
2)以文本为基础
3)存储图片
七、MariaDB 的安装及初始化
1.配置好本地 yum 源
2.安装 MairaDB 的服务器端和客户端
yum groups install mariadb ( 服务器 ) mariadb-client ( 客户端 ) -y
3.开启 mariadb 服务
systemctl start mariadb
systemctl enable mariadb
![](https://file.jishuzhan.net/article/1777365545096581122/5942ce1f8eb01aad44f95df52146f383.webp)
注:可以查看服务状态 systemctl status -l mariadb
netstat -lantu |grep 3306
![](https://file.jishuzhan.net/article/1777365545096581122/1c5d8d9e680669c2f186c772964fa6ec.webp)
4、初始化 MariaDB
mysql_secure_installation
![](https://file.jishuzhan.net/article/1777365545096581122/e572edcd70053ef221f81ebdffac2f04.webp)
八、登录 MariaDB
- mysql -u root -p 1103
- mysql -u root -p
回车之后输入密码 1103
![](https://file.jishuzhan.net/article/1777365545096581122/1140c6505bc6e84ce9c6ca16ac721691.webp)
或:mysql -u 用户名 -p 密码 登录到的数据库的名字
2.查看当前 DBMS 下管理的所有的数据库
show databases ; (;结尾)
![](https://file.jishuzhan.net/article/1777365545096581122/db0f7c53b766237c289408835ced6617.webp)
3.创建数据库 create database test;
craate database 数据库名 ; 一定要以";"结尾
![](https://file.jishuzhan.net/article/1777365545096581122/fc8fbb867fd0ed92b5725d3a526a733b.webp)
4.使用数据库 use test;
use 数据库名;
![](https://file.jishuzhan.net/article/1777365545096581122/2f48e6687a380b6eea0f69508b9a61b2.webp)
5.查看 当前数据库内 的所有表 show tables;
![](https://file.jishuzhan.net/article/1777365545096581122/289fd34a2aa9bdf7f42e1fd5ace7b11b.webp)
6.通过脚本来创建表和想表内填充数据
1)将 create.sql 与 populate.sql 上传至数据库服务器注:create.sql 用于创建表
populate.sql 用于向表内填充数据
![](https://file.jishuzhan.net/article/1777365545096581122/be2c815fe275b42fbc62fea323a413aa.webp)
2)运行 sql 脚本在数据库内 或在虚拟机没运行
在数据库内:
\. /root/create.sql
![](https://file.jishuzhan.net/article/1777365545096581122/8fd296942ed3cb7a6b5c7141b765c151.webp)
![](https://file.jishuzhan.net/article/1777365545096581122/c3cc93c4f191e38684d324282b67f3ac.webp)
\. /root/populate.sql
![](https://file.jishuzhan.net/article/1777365545096581122/be5b40eb9912f5f54e3e59c223ce8ec2.webp)
\. 脚本所在绝对路径
在虚拟机执行增加表的脚本
![](https://file.jishuzhan.net/article/1777365545096581122/43b2ca5c1a1920d735e888f0616ab149.webp)
7.查看表的结构 describe orders; describe 表名;
![](https://file.jishuzhan.net/article/1777365545096581122/43b2ca5c1a1920d735e888f0616ab149.webp)
- 检索表中所有字段(查看表中所有列/查看表的全部内容)
select * from orders;
select 查询的字段 from 表名;
![](https://file.jishuzhan.net/article/1777365545096581122/58a174a59bc0a4ea9107430f0dfbe7a8.webp)
9.显示当前服务器状态 show status;
注:查询的结果是变量名和变量的具体值
![](https://file.jishuzhan.net/article/1777365545096581122/58a174a59bc0a4ea9107430f0dfbe7a8.webp)
10.显示创建数据库/表所使用的命令
![](https://file.jishuzhan.net/article/1777365545096581122/8bd8525ca36bb0550ddf287f34ca3218.webp)
创建数据库的命令:show create database test;
show create database 数据库名;
![](https://file.jishuzhan.net/article/1777365545096581122/8bd8525ca36bb0550ddf287f34ca3218.webp)
创建表的命令:show create table orders;
show create table 表名;
![](https://file.jishuzhan.net/article/1777365545096581122/5732c7eaa71e823edeb4b162283edc84.webp)
11.显示当前登录账户的权限
show grants;
![](https://file.jishuzhan.net/article/1777365545096581122/be6edad51d9a72c460daf4776ae667dd.webp)
12.显示错误/警告信息
show errors;
show warnings;
注:只有当 sql 语句出现问题报错时使用上述命令查询才可以得到结果
13.显示 show 命令的帮助信息
help show;
注:可以使用 help 命令来查看相关命令的帮助
如:help create;
help drop; help 命令;
14.关键的大小写问题一般来说,为了保证 sql 语句的可读性和规范性,
关键字需要大写
如:SELECT * FROM orders;
注:MariaDB 不区分大小写
15.MariaDB 软件的相关信息
1)MariaDB 配置文件: /etc/my.cnf.d
2)MariaDB 配置文件模板:/usr/share/mysql
3)MariaDB 日志:/var/log/mariadb
4)MariaDB 数据库:/var/lib/mysql
16.退出当前登录的数据库
ex it 或 quit