数据库类型:
关系型数据库:
mysql 5.7 免费/mariadb 10.0
mysql 8.0 收费 (与mysql 5.7版本的人员不同)
oracle 收费
mongodb
sqlite
MSSQL (微软的数据库 MicroSoft 图形化数据库)
缓存数据库:
memcache
redis
DBA
数据库与excel区别:
- 数据库可以存两种数据:文本和数字
- excel可以存多种(以链接方式存放)
关系型数据库介绍
数据结构模型
- 层次模型
- 网状模型
- 关系模型(二维关系:row,column)
数据库管理系统:DBMS
关系行数据库:Relational,RDBMS
数据库结构设计:DBA
RDBMS专业名词
常见的关系型数据库管理系统:
- MySQL:MySQL,MariaDB,Percona-Server
- PostgreSQL:简称为pgsql
- Oracle
- MSSQL
SQL:Structure Query Language,结构化查询语言
约束:constraint,向数据表提供的数据要遵守的限制
实例:
#在数据库中,行叫记录,列叫字段
表一:
ID(不能重复) NAME AGE (列头为字段)
1 harry 20 (行为记录)
2 tom 21
表二:
ID salary(工资)
1 10000
2 8000
- 主键约束:表一中ID不能重复,例如我们的身份证不能重复,保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的
- 惟一键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。允许为空(NULL)一个表上可以放置多个唯一性约束
- 外键约束:表一与表二相约束,例如表一中21岁的tom需要查看工资,则需要在表二去查询
- 检查性约束
索引:将表中的一个或多个字段中的数据复制一份另存,并且这些数据需要按特定次序排序存储
关系型数据库的常见组件
关系型数据库的常见组件有:
数据库:database
表:table,由行(row)和列(column)组成
数据:
索引:index
视图:view000
权限:privilege
存储过程:procedure
存储函数:function
触发器:trigger
事件调度器:event scheduler
SQL语句
三种类型:
- DDL:Data Defination Language,数据定义语言
- DML:Data Manipulation Language,数据操纵语言
- DCL:Data Control Language,数据控制语言
类型 | 对应操作 |
---|---|
DDL | CREATE:创建 DROP:删除 ALTER:修改 |
DML | INSERT:向表中插入数据 DELETE:删除表中数据 UPDATE:更新表中数据 SELECT:查询表中数据 |
DCL | GRANT:授权 REVOKE:移除授权 |
mysql安装与配置
mysql安装
mysql安装方式有三种:
-
源代码:编译安装
-
二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
-
程序包管理器管理的程序包:
3.1 rpm有两种:
OS Vendor:操作系统发行商提供的 项目官方提供的
3.2 deb
实例:
#安装mysql
[root@apache yum.repos.d]# yum -y install mariadb mariadb-server
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:11:57 前,执行于 2021年08月23日 星期一 14时55分52秒。
软件包 mariadb-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64 已安装。
软件包 mariadb-server-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
mysql配置
实例:
[root@apache ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
#查看进程号是否运行
[root@apache ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 80 0.0.0.0:3306 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 5 [::1]:631 [::]:*
#由于下载的是mariadb,所以mysql是没有密码的,需要手动配置
[root@apache ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> set password = password("pass123!");
Query OK, 0 rows affected (0.016 sec)
MariaDB [(none)]> exit
Bye
#由于设置好了密码,则需要通过账号密码进入,否则进不去
[root@apache ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@apache ~]# mysql -uroot -ppass123!
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye
#若不想查询出来则可以使用另一种方式:
[root@apache ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql的程序组成
客户端
- mysql:CLI交互式客户端程序
- mysql_secure_installation:安全初始化(建议安装完以后执行此命令)
- mysqldump:mysql备份工具
- mysqladmin
服务器端
- mysqld
mysql工具使用
语法:mysql [OPTIONS] [database]
常用的OPTIONS:
-uUSERNAME //指定用户名,默认为root
-hHOST //指定服务器主机,默认为localhost,推荐使用ip地址
-pPASSWORD //指定用户的密码
-P# //指定数据库监听的端口,这里的#需用实际的端口号代替,如-P3307
-V //查看当前使用的mysql版本
-e //不登录mysql执行sql语句后退出,常用于脚本
实例:
#查看当前使用的mysql版本
[root@apache ~]# mysql -V
mysql Ver 15.1 Distrib 10.3.28-MariaDB, for Linux (x86_64) using readline 5.1
#指定用户名及指定服务器主机,默认为localhost,推荐使用ip地址
[root@apache ~]# mysql -uroot -ppass123! -h127.0.0.1
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
#不登录mysql执行sql语句后退出,常用于脚本
[root@apache ~]# mysql -uroot -p -h127.0.0.1 -e 'SHOW DATABASES;'
Enter password:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
mysql客户端工具:
mysql
navicat 商业的,收费,支持中英文
workbench 官方的,免费,英文版
navicat官方文档:
https://www.navicat.com.cn
下面进行navicat安装及使用操作:
- 打开文档点击产品找到需要下载的mysql页面:
-
是什么系统对应下载什么系统就行(步骤省略)
-
安装操作:
- 连接mysql之前给用户登录授权
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected (0.004 sec)
- 连接mysql
- 查看是否成功