MySQL简单介绍

信息化社会,无处不在都是数据
数据:

  • 数据的存储

    • TXT
    • EXCEL
    • 数据库
  • 数据的计算
    各种编程语言可以归纳为数据的计算一类

数据库的层级:
库->表->数据

常见的数据库软件:

  • ORACLE甲骨文
  • MySQL
  • SQLServer
  • PostgreSQL
  • SQLite

数据库是用来存储数据的,在这个过程中,会涉及到:

  • 数据的新增
  • 数据的删除
  • 数据的修改
  • 数据的查询
  • 数据库、数据表的管理

SQL语言,就是一种对数据库、数据进行操作、管理、查询的工具

MySQL的安装

MySQL的版本

  • MySQL community Serve
    社区版本,免费,MySQL不提供官方支持
  • MySQL Cluster
    集群版,开源免费,可将几个MySQL Server封装成一个Server
  • MySQL Enterprise Edition
    商业版本,可以试用30天,官方提供技术支持
  • MySQL Cluster CGE
    商业高级集群版

MySQL官方下载地址

archlinux安装MySQL

安装:

1
sudo pacman -S mysql

初始化:

1
sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql

输出如下:

1
2
3
4
5
6
7
2025-01-06T13:34:02.143764Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-01-06T13:34:02.145102Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2025-01-06T13:34:02.145179Z 0 [System] [MY-013169] [Server] /usr/bin/mysqld (mysqld 9.0.1) initializing of server in progress as process 22381
2025-01-06T13:34:02.152460Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-01-06T13:34:02.477142Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-01-06T13:34:04.130768Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ZLXk4ud6(X-G
2025-01-06T13:34:06.406113Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.

查看输出结果:

  1. 默认创建了一个SQL用户
  2. 用户名:root@localhost
  3. 密码:ZLXk4ud6(X-G

开机自启动:

1
2
sudo systemctl start mysqld.service
systemctl status mysqld.service

链接数据库:

1
mysql -uroot -p

修改密码:

1
alter user 'root'@'localhost' identified by '123';

上述示例可以123替换为你自己的设置的密码

MySQL的入门使用

在命令行提示符使用MySQL:

  • show databases:查看有哪些数据库
  • use 数据库名:使用某个数据库
  • show tables:查看数据库内有哪些表
  • exit:退出MySQL的命令行环境

SQL:structured Query Language,结构化查询语言,用于访问和处理数据库的标准的计算机语言

基于SQL的功能,可以划分4类

  • 数据定义:DDL
    库的创建、表的创建删除等
  • 数据操纵:DML
    新增数据、删除数据、修改数据等
  • 数据控制:DCL
    新增用户、删除用户、密码修改、权限管理等
    -数据查询:DQL
    基于需求查询和计算数据

SQL语法特征

  • 大小写不敏感
  • 可以单行或多行书写,最后一;结束
  • 支持的注释
  • 单行注释:-- 注释类容(–之后一定有一个空格)
  • 单行注释:# 注释类容(# 后面可以不加空格,推荐加上)
  • 多行注释:/* 注释类容 */

DDL-库管理

  • 查看数据库:show databases;
  • 使用数据库:use 数据库名称;
  • 创建数据库:create datebases 数据库名称 [charset UTF-8];
  • 删除数据库:drop databases 数据库名称;
  • 查看当前使用的数据库:select database();

DDL-表管理

  • 查看有哪些表
    show tables;
  • 删除表
    drop table 表名称;
    drop table if exists 表名称;
  • 创建表
    create table 表名称( 列名称 列类型, 类名称 列类型, ...);

    列类型有:intfloatvarchar(长度)datetimestamp

DML

  • 插入insert
    insert into 表[(列1, 列2, ...)] values(值1, 值2, ...)[, (值1, 值2, ...), ..., (值1, 值2, ...)];
  • 删除delete
    delete from 表名称 [where 条件判断];
  • 更新update
    update 表名 set 列=值 [where 条件判断];

条件判读:列 操作符 值,操作符号:=<>=!=

DQL

  • 基础查询
    select 字段列表|* from 表 [where 条件判断]
  • 分类聚合
    selete 字段|聚合函数 from 表 [where 条件] group by 列;
    聚合函数:
    sum(列)avg(列)min(列)max(列)count(列|*)
  • 排序分页
    select 列|聚合函数|* from 表 [where ... group by ...] order by ... [asc |desc] limit n[, m]

where group byorder bylimit均可以按需省略,selectfrom是必须写的