MySql教程

mysql基础

本文主要是介绍mysql基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 关系型数据库介绍

1.1 数据结构模型

数据结构模型主要有:

  • 层次模型
  • 网状结构
  • 关系模型

关系模型:
二维关系:row(行),column(列)

数据库管理系统:DBMS
关系:Relational,RDBMS

1.2 RDBMS专业名词

常见的关系型数据库管理系统:

  • MySQL:MySQL,MariaDB,Percona-Server
  • PostgreSQL:简称为pgsql
  • Oracle
  • MSSQL

SQL:Structure Query Language,结构化查询语言

      存放方式:结构化数据                                    数据库里存放的数据二维关系云里存放的数据

                        半结构化数据                                 文本文件里面放的都是文字或者数字

                        非结构化数据                                  文件,视频等

约束:constraint,向数据表提供的数据要遵守的限制

  • 主键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。且必须提供数据,不能为空(NOT NULL)。
    • 一个表只能存在一个
  • 惟一键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。允许为空(NULL)
    • 一个表可以存在多个
  • 外键约束:一个表中的某字段可填入数据取决于另一个表的主键已有的数据
  • 检查性约束

索引:将表中的一个或多个字段中的数据复制一份另存,并且这些数据需要按特定次序排序存储

1.3 关系型数据库的常见组件

关系型数据库的常见组件有:

  • 数据库:database
  • 表:table,由行(row)和列(column)组成
  • 索引:index
  • 视图:view
  • 用户:user
  • 权限:privilege
  • 存储过程:procedure
  • 存储函数:function
  • 触发器:trigger
  • 事件调度器:event scheduler

1.4 SQL语句

SQL语句有三种类型:

  • DDL:Data Defination Language,数据定义语言
  • DML:Data Manipulation Language,数据操纵语言
  • DCL:Data Control Language,数据控制语言

 

 

 

SQL语句类型对应操作
DDL CREATE:创建
DROP:删除
ALTER:修改
DML INSERT:向表中插入数据
DELETE:删除表中数据
UPDATE:更新表中数据
SELECT:查询表中数据
DCL GRANT:授权
REVOKE:移除授权

 

2. mysql安装与配置

2.1 mysql安装

mysql安装方式有三种:

  • 源代码:编译安装
  • 二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
  • 程序包管理器管理的程序包:
    • rpm:有两种
      • OS Vendor:操作系统发行商提供的
      • 项目官方提供的
    • deb
    •  
      配置mysql的yum源
      [root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
      [root@localhost ~]# ls
      anaconda-ks.cfg  mysql57-community-release-el7-10.noarch.rpm  mysql80-community-release-el8-3.noarch.rpm
      [root@localhost ~]# rpm -ivh mysql57-community-release-el7-10.noarch.rpm     安装
      [root@localhost ~]# dnf clean all
      33 文件已删除
      [root@localhost ~]# dnf makecache  建立缓存

      下载mysql的5个软件包并安装

    •  1 [root@localhost ~]# wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-client-5.7.37-1.el7.x86_64.rpm 
       2 http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-common-5.7.37-1.el7.x86_64.rpm      
       3 http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-devel-5.7.37-1.el7.x86_64.rpm 
       4 http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-libs-5.7.37-1.el7.x86_64.rpm 
       5 http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-server-5.7.37-1.el7.x86_64.rpm
       6    下载5个包
       7 [root@localhost ~]# ls
       8 anaconda-ks.cfg                                 mysql-community-common-5.7.37-1.el7.x86_64.rpm  mysql-community-libs-5.7.37-1.el7.x86_64.rpm
       9 mysql-community-client-5.7.37-1.el7.x86_64.rpm  mysql-community-devel-5.7.37-1.el7.x86_64.rpm   mysql-community-server-5.7.37-1.el7.x86_64.rpm
      10 [root@localhost ~]# dnf -y install *.rpm    安装

      2.2 mysql配置

    • 启动
    •  1 [root@localhost ~]# systemctl status mysqld  
       2 [root@localhost ~]# systemctl enable --now mysqld 立马启动
       3 [root@localhost ~]# systemctl status mysqld
       4 ● mysqld.service - MySQL Server
       5    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       6    Active: active (running) since Mon 2022-04-18 21:39:24 CST; 1min 14s ago
       7      Docs: man:mysqld(8)
       8            http://dev.mysql.com/doc/refman/en/using-systemd.html
       9   Process: 13448 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
      10   Process: 13398 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
      11  Main PID: 13450 (mysqld)
      12     Tasks: 27 (limit: 11175)
      13    Memory: 284.7M
      14    CGroup: /system.slice/mysqld.service
      15            └─13450 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
      16 
      17 4月 18 21:39:18 localhost.localdomain systemd[1]: Starting MySQL Server...
      18 4月 18 21:39:24 localhost.localdomain systemd[1]: Started MySQL Server.    启动以后端口号默认是3306
      19 [root@localhost ~]# ss -antl
      20 State             Recv-Q            Send-Q                       Local Address:Port                       Peer Address:Port            Process            
      21 LISTEN            0                 128                                0.0.0.0:22                              0.0.0.0:*                                  
      22 LISTEN            0                 128                                   [::]:22                                 [::]:*                                  
      23 LISTEN            0                 80                                       *:3306                                  *:*    

      设置密码

    • 1 [root@localhost ~]# grep 'password' /var/log/mysqld.log 
      2 2022-04-18T13:39:20.651583Z 1 [Note] A temporary password is generated for root@localhost: Cl)*gE<si9G/   把临时密码过滤出来
      3 [root@localhost ~]# mysql -uroot -p'Cl)*gE<si9G/'-u指定用户名-p指定密码不用空格直接跟
      4 mysql> set password = password('RunTime123!');
      5 Query OK, 0 rows affected, 1 warning (0.00 sec)
      6 设置新密码要有大小写,特殊字符,数字
      7 为避免mysql自动升级,这里需要卸载最开始安装的yum源
      8 [root@localhost ~]# rpm -e mysql57-community-release
      9 [root@localhost ~]# re -f /etc/yum.repos.d/mysql-community.repo.rpmsave

      3. mysql的程序组成

      • 客户端
        • mysql:CLI交互式客户端程序
        • mysql_secure_installation:安全初始化,强烈建议安装完以后执行此命令
        • mysqldump:mysql备份工具
        • mysqladmin
      • 服务器端
        • mysqld
        • 3.1 mysql工具使用

        •  1 关闭防火墙
           2 [root@localhost ~]# systemctl disable --now firewalld
           3 Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
           4 Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
           5 [root@localhost ~]# setenforce 0
           6 [root@localhost ~]# vi /etc/selinux/config
           7 [root@localhost ~]# mysql -uroot -p'RunTime123!'
           8 mysql> GRANT all ON *.* TO 'root'@'192.168.149.131' IDENTIFIED BY 'RunTime123!';授权
           9 Query OK, 0 rows affected, 1 warning (0.00 sec)
          10 
          11 mysql> flush privileges;
          12 Query OK, 0 rows affected (0.00 sec)
          13 [root@localhost ~]# mysql -V
          14 mysql  Ver 14.14 Distrib 5.7.37, for Linux (x86_64) using  EditLine wrapper   -V显示版本号
          15 
          16 [root@localhost ~]# mysql -uroot -p'RunTime123!' -e 'SHOW DATABASES;'          
          17 mysql: [Warning] Using a password on the command line interface can be insecure. 
          18 +--------------------+
          19 | Database           |
          20 +--------------------+
          21 | information_schema |
          22 | mysql              |
          23 | performance_schema |
          24 | sys                |
          25 +--------------------+   -e不进入查看数据库

          用Navicat连接数据库

           

           

           

这篇关于mysql基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!