目录
一、基本概念
1、数据库相关概念
-
数据库:存储数据的仓库,数据是有组织的进行存储,简称DataBase (DB)
-
数据库管理系统:操作和管理数据库的大型软件,简称DataBase Management System (DBMS)
-
SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准。简称Structured Query Language (SQL)
2、主流数据库
- 关系型数据库:SQL(Structured Query Language)
-
MySQL、Oracle、Sql Server、DB2、SQLlite
-
通过表和表之间,行和列之间的关系进行数据的存储
-
通过外键关联来建立表与表之间的关系
-
- 非关系型数据库:NoSQL(Not Only SQL)
-
Redis、MongoDB
-
指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
-
3、数据模型
二、使用docker快速完成学习环境搭建
虚拟机系统:ubuntu-20.04,在虚拟机中安装docker,运行MySQL容器
1、拉取镜像
docker pull mysql
2、启动容器
docker run -itd --name mysql -e MYSQL_ROOT_PASSWORD=admin123 -p 13306:3306 mysql
3、验证
docker exec -it mysql bash
进入容器后,查看MySQL版本
mysqladmin --version
输出:
mysqladmin Ver 9.0.1 for Linux on x86_64 (MySQL Community Server - GPL)
登录数据库:
mysql -u root -p
输入密码 admin123,回车
登录成功后,输入一条简单的命令(别忘记行尾的分号):
SHOW DATABASES;
输出:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.03 sec)
退出:
exit
完成
三、MySQL图形化界面-DataGrip
常用的MySQL图形化界面:
-
Sqlyog
-
Navicat
-
DataGrip
因为我的MySQL是在docker容器内,要实现远程访问,要执行以下两步操作:
- 开放端口
- 为mysql的root用户分配远程访问权限
启动容器时:
run -itd --name mysql -e MYSQL_ROOT_PASSWORD=admin123 -p 13306:3306 mysql
进入容器:
docker exec -it mysql bash
登录数据库
mysql -u root -p
MySQL的用户及权限信息保存在mysql数据库中,所以要切换到mysql数据库,对用户权限进行修改:
USE mysql;
查看数据库访问权限信息
SELECT User,authentication_string,Host from user;
设置访问权限,这条语句的意思是为'root'@'%'用户授予最高权限,@'%'表示root用户可以在任何地点登录。(版本不同,语法可能不同)
GRANT ALL ON *.* TO 'root'@'%';
刷新缓存
flush privileges;
完成配置后,DataGrip新建工程,与数据库建立连接。
使用图形化界面,也可以使用在Console中用SQL语句进行数据库操作。很好用!
连接数据库时,IP使用虚拟机IP地址,端口使用的是13306(默认端口为3306),因为我的MySQL运行在容器中,启动容器时,将容器的3306端口被映射到了虚拟机的13306端口了。
DataGrip的上手资料很多,用几次就熟悉了。