【MySQL入门篇 第一节】MySQL简介

一、数据库和SQL介绍

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。数据库保存起来数据,然后在别的地方去使用,因此:数据库技术的根本目标是为了解决数据共享的问题

结构化查询语言(Structured Query Language)简称SQL,是上世纪70年代由IBM公司开发,用于对数据库进行操作的语言。更详细地说,SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

二、MySQL背景介绍

MySQL是一个关系型数据库管理系统,目前属于 Oracle 旗下产品。虽然单机性能比不上oracle,但免费开源,单机成本低且借助于分布式集群所以受到互联网公司的青睐,是互联网公司的主流数据库。

三、MySQL关键术语

  • 数据库(database):保存有组织数据的容器
  • 表(table):某种特定类型数据的结构化清单
  • 模式(schema):关于数据库和表的布局和特性的信息。
  • 列(column):表中的一个字段,所有表都是由一个或者多个列组成的。
  • 行(row):表中的一个记录。
  • 主键(primary key):能够唯一地区分表中的每个行
    任意两行都不具有相同的主键值
    每个行都必须具有一个主键值(不允许NULL值)
  • 外键(foreign key):外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系。
  • 触发器:MySQL响应以下任何语句自动执行的一条SQL语句(或位于BEGIN和END之间的一条语句)。
    DELETE
    INSERT
    UPDATE
  • 游标(cursor):是一个存储在MYSQL数据库上的数据库查询,它不是一个SELECT语句,而是被该语句检索出来的结果集。
  • 视图(View):视图为虚拟的表,它们包含的不是数据而是根据需要检索出来的查询,视图提供了一种MYSQL语句层次的封装,可以用来简化数据处理,重新定义格式和保护基础数据。
  • 索引(index):如果没有索引,执行查询时 mysql 必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,mysql 可以直接从索引集中的数据开始查找。也就是说索引可以大大减少DBMS查找数据的时间。
  • 范式:关系模型R(U,F),U为属性,F为属性U上的一组数据依赖。
    关系数据库的关系是要满足一定要求的,满足不同程度要求的为不同范式。

四、MySQL的安装

下面介绍使用Docker 安装mysql的方式。

docker pull mysql:5.7.27
docker run --name mymysql -e MYSQL_ROOT_PASSWORD =admin -d -p 3306:3306 mysql:5.7.27
  • 其中,MYSQL_ROOT_PASSWORD =admin用于设置root用户的初始密码
# 查看mymysql 的tag
docker ps -s
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                            NAMES               SIZE
abd50bd79a59        mysql:5.7.27        "docker-entrypoint.s…"   5 seconds ago       Up 3 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp                                                                mymysql             0B (virtual 373MB)
0a3b89c25329        zookeeper           "/docker-entrypoint.…"   8 minutes ago       Up 8 minutes        0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp, 0.0.0.0:8080->8080/tcp   myzk                38.1kB (virtual 252MB)
4be98db9c9e4        redis               "docker-entrypoint.s…"   2 hours ago         Up 2 hours          0.0.0.0:6379->6379/tcp                                                                           myredis             14B (virtual 104MB)

# 进入容器:
docker exec -it 62349aa31687 /bin/bash

#进入mysql:
mysql -uroot -p

#授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';

#刷新权限:
mysql> flush privileges;

# 更新加密规则:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin' PASSWORD EXPIRE NEVER;

#更新root用户密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'admin';

#刷新权限:
mysql> flush privileges;

使用navicat连接:


【MySQL入门篇 第一节】MySQL简介_第1张图片
image.png

你可能感兴趣的:(【MySQL入门篇 第一节】MySQL简介)