• mysql基础学习笔记


    mysql 安装 与 启动

    安装

    1、官网下载对应版本mysql 并 安装
    2、配置对应环境变量
    3、ps -ef | grep mysqld 查看mysql是否启动

    启动与使用

    1、启动服务:sudo mysql.server start
    2、停止服务:sudo mysql.server stop
    3、重启服务:sudo mysql.server restart
    4、客户端连接:sudo mysql -u root -p
    5、退出:exit

    数据模型

    使用mysql语言通过 客户端,控制 数据库管理系统,创建数据库(数据表)
    客户端->DBMS->数据库->数据表

    SQL 通用语法 & SQL 分类

    通用语法

    • sql语句可以单行或多行书写,以分号;分隔
    • sql语句可以使用空格和缩进来增加语句的可读性
    • Mysql数据库的语句不区分大小写,但关键字建议大写
    • 注释:
      • 单行注释:-- 或 #(mysql独有)
      • 多行注释:/* 注释内容 */

    SQL 分类

    DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)

    1. 数据库操作
      • 查询所有数据库:SHOW DATABASES;
      • 查询当前数据库:SELECT DATABASE();
      • 创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名称 [DEFAULT CHARSET 字符集] [CALLATE 排序规则];
      • 删除数据库:DROP DATABASE [IF NOT EXISTS] 数据库名称;
      • 使用数据库:USE 数据库名;
    2. 表操作——创建&查询
      • 查询当前数据库所有表:SHOW TABLES;
      • 查询表结构:DESC 表名;
      • 查询指定表的建表语句:SHOW CREATE TABLE 表名;
      • 创建表:
        CREATE TABLE 表名(
        字段1 字段1类型 [COMMENT 注释],
        字段2 字段2类型 [COMMENT 注释],

        字段n 字段n类型 [COMMENT 注释]
        )[COMMENT 表注释];
    3. mysql的数据类型
    • 数值类型
    MySQL数据类型含义(有符号)
    tinyint(m)1个字节 范围(-128~127)
    smallint(m)2个字节 范围(-32768~32767)
    mediumint(m)3个字节 范围(-8388608~8388607)
    int(m)4个字节 范围(-2147483648~2147483647)
    bigint(m)8个字节 范围(±9.22*10的18次方)
    float(m,d)单精度浮点型 8位精度(4字节) m总个数,d小数位
    double(m,d)双精度浮点型 16位精度(8字节) m总个数,d小数位
    decimal(m,d)参数m<65 是总个数,d<30且 d
    • 字符串类型
    MySQL数据类型含义
    char(n)定长字符串,最多255个字符 (n是多少就占用多少字节的空间,性能好)
    varchar(n)变长字符串,最多65535个字符 (存储1个字符,定义n为10,占用一个字符的空间,性能较差)
    tinytext可变长度,最多255个字符
    text可变长度,最多65535个字符
    mediumtext可变长度,最多2的24次方-1个字符
    longtext可变长度,最多2的32次方-1个字符
    tinyblob不超过255个字符的二进制数据
    blob二进制形式的长文本数据
    • 日期时间类型
    MySQL数据类型含义
    date日期 ‘2008-12-2’
    time时间 ‘12:25:36’
    year1901-2155 年份值
    datetime日期时间 ‘2008-12-2 22:06:44’
    timestamp自动存储记录修改时间
    1. 表操作——修改&删除
      • 修改-添加字段:alter table 表名 add 字段 字段类型 [comment 注释][约束]
      • 修改-修改数据类型:alter table 表名 modify 字段 新数据类型;
      • 修改-修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 数据类型[comment 注释][约束]
      • 删除-删除字段:alter table 表名 drop 字段名;
      • 修改表名:alter table 表名 rename to 新表名;
      • 删除表:drop table [if exists] 表名;
      • 删除表并重新创建该表:truncate table 表名;

    DML:数据操作语言,用来对数据表中的数据进行 增、删、改

    1. 添加数据 insert
      • 给指定字段添加数据:insert into 表名 (字段名1,字段名2,…) values (值1,值2,…);
      • 给所有字段添加数据:insert into 表名 values (值1,值2,…);
      • 批量添加数据:
        -insert into 表名 (字段名1,字段名2,…) values (值1,值2,…),(值1,值2,…);
        -insert into 表名 values (值1,值2,…),(值1,值2,…);
    2. 删除数据 delete
      • delete from 表名 [where 条件];
    3. 修改数据 update
      • update 表名 set 字段名1=值1,字段名2=值2[where 条件];

    DQL:数据查询语言,用来查询数据库中表的数据

    语法:

       select 字段列表 from 表名列表
       where 条件列表
       group by 分组字段列表
       having 分组后条件列表
       order by 排序字段列表
       limit 分页参数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 基础查询
      • 查询多个字段:select 字段1,字段2... from 表名; select * from 表名;
      • 设置别名: select 字段1 [as 别名1], ... from 表名;
      • 去除重复项: select distinct 字段列表 from 表名;
    2. 条件查询
      • 语法: select 字段列表 from 表名 where 条件列表;
      • 条件:
    运算符说明
    >,>=,<,<=大于,大于等于,小于,小于等于
    =等于,NULL不安全,例如NULL=NULL的结果NULL
    <=>等于,NULL安全,NULL<=>NULL的结果是true
    <> 或者 !=不等于
    between…and…匹配范围,如果范围是相等的则返回true
    in(a1,a2,a3…)其中任何一个是成立的,都返回true
    is NULL是NULL
    is not NULL不是NULL
    LIKE模糊匹配,%表示任意多个任意字符,_表示任意一个字符
    AND 或 &&多个条件必须都为true,结果才是true
    OR 或 ||任意一个条件为true,结果就是true
    NOT 或 !条件为TRUE,结果为FALSE
    1. 聚合函数

    将一列数据作为一个整体,进行纵向计算

    • 常见的聚合函数:

    AVG():求平均值
    SUM()求总和
    MAX() :求最大值
    MIN():求最小值
    COUNT():求个数\

    1. 分组查询 (group by)
       select 字段列表 from 表名列表
       where 条件列表
       group by 分组字段列表
       having 分组后条件列表
       order by 排序字段列表
       limit 分页参数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    where与having的区别:

    • 执行时机不同,where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤;
    • 判断条件不同,where不能对聚合函数进行判断,having可以
    1. 排序查询(order by)
       select 字段列表 from 表名列表
       where 条件列表
       group by 分组字段列表
       having 分组后条件列表
       order by 排序字段列表-字段1 排序方式1,字段2 排序方式2
       limit 分页参数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    排序方式:

    • ASC:升序(默认值)
    • DESC:降序
    1. 分页查询 (limit)
       select 字段列表 from 表名列表
       where 条件列表
       group by 分组字段列表
       having 分组后条件列表
       order by 排序字段列表
       limit 分页参数-起始索引,查询记录数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意:

    • 起始索引从0开始,起始索引=(查询页面-1)*每页记录数
    • 分页查询是数据库的方言,不同数据库有不同实现,mysql是limit
    • 如果查询的是第一页的数据,起始索引可以省略,简写为limit 10;
    1. DQL语句的执行顺序

    from -> where -> group by -> having -> select -> order by -> limit

    DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限

    1. 用户管理

      • 查询用户:use mysql; select * from user;
      • 创建用户: create user ‘用户名’@‘主机名’ identified by ‘密码’;
      • 修改用户密码:alter user ‘用户名’@‘主机名’ identified with mysql_native_password by ‘新密码’;
      • 删除用户: drop user ‘用户名’@‘主机名’;
      • 任意主机可以用%
    2. 权限控制

      • 查询权限:show grants for ‘用户名’@‘主机名’;
      • 授予权限:grant 权限列表 on 数据库名.表名 to ‘用户名’@‘主机名’;
      • 撤销权限:revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;
  • 相关阅读:
    西南民族大学计算机考研资料汇总
    用移动硬盘当系统盘,即插即用
    文件管理系统的基本认识
    【云原生】Docker小工具:runlike与whaler(打印容器的启动命令与导出镜像的dockerfile)
    Elasticsearch:从零开始创建一个 REST handler 插件
    【MCAL_CANDrive】-1.1-收发Hardware Buffer数量的限制以及基本概念梳理
    zlibrary无法访问的一些解决方法
    巨细!【python爬虫实战案例】
    20221113 今天的世界发生了什么
    DolphinScheduler安装部署
  • 原文地址:https://blog.csdn.net/weixin_40417029/article/details/134462306