• 数据库MySQL(三):DML、DQL、DCL


    数据操作语言(Data Manipulation Language,DML)
    该语言主要对数据库表中的数据进行增删改

    # 给指定字段添加数据
    INSERT INTO 表名 (字段1, 字段2, ... ) VALUES (1,2, ...) ;    
    
    # 给全部字段添加数据
    INSERT INTO 表名 VALUES (1,2, ...) ;    
    
    # 批量添加数据 
    INSERT INTO 表名 VALUES (1,2, ...),  (1,2, ...),  (1,2, ...) ;   
    
    # 修改某条件下的数据(无条件全部修改)
    UPDATE 表名 SET 字段1=1 [ , 字段2=2, ... ]  [ WHERE 条件 ] ;    
    
    # 删除某条件下的数据
    DROP FROM 表名 [WHERE 条件] ;    
    
    # 在对字符串和日期型数据操作时,应包含在引号中。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    数据查询语言(Data Query Language,DQL)
    该语言主要用于查询数据库表的记录

    命令格式

    SELECT [DISTINCT]
       字段1 [AS 字段别名], [字段2 [AS 字段别名]], …
    FROM
       表名列表
    WHERE
       条件查询语句
    GROUP BY
       字段1 [ , 字段2, … ]
    HAVING
       分组后过滤条件
    ORDER BY
       字段1 ASC|DESC [ , 字段2** ASC|DESC** , … ]
    LIMIT
       起始索引( = (查询页码-1) * 每页显示记录数 ), 查询记录数

    条件查询

    比较运算符功能
    <、<=、=、>、>=常规比较
    <>、!=不等于
    BETWEEN … AND …在某个范围之内,含最小、最大值
    IN(…)在 IN 之后的列表中的值,多选一
    LIKE 占位符模糊匹配(_ 匹配单个字符;% 匹配任意个字符)
    IS NULL判断是否为NULL

    逻辑运算符功能
    AND、&&并且,多个条件同时成立
    OR、
    NOT、!非,不是

    比较运算符功能
    <、<=、=、>、>=常规比较
    <>、!=不等于
    BETWEEN … AND …在某个范围之内,含最小、最大值
    IN(…)在 IN 之后的列表中的值,多选一
    LIKE 占位符模糊匹配(_ 匹配单个字符;% 匹配任意个字符)
    IS NULL判断是否为NULL

    聚合函数功能
    COUNT求组中项数,返int类型整数
    MAX/MIN求最大值/最小值
    AVG求组中值的平均值
    SUM返回表达式中所有值的和
    VAR返回给定表达式中所有值的统计方差
    ! NULL值不参与所有聚合函数的运算

    WHERE 和 HAVING的区别
    • 执行时机不同:where是分组之前进行过滤,不满足where条件的记录不参与分组;而having是分组之后对结果进行过滤;
    • 判断条件不同:where不能对聚合函数进行判断;而having可以。
    • 执行顺序:where > 聚合函数 > having
    DQL语句关键字执行顺序

    FROM --> WHERE --> GROUP BY --> HAVING --> SELECT --> ORDER BY --> LIMIT


    数据控制语言(Data Control Language,DCL)
    该语言主要用于管理数据库用户、控制数据库的访问权限。

    # 查询指定数据库的用户
    select * from 数据库名.user;
    
    # 创建用户
    create user '用户名'@'主机名' identified by '密码';
    
    # 修改用户密码
    alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
      
    # 删除用户 
    drop user '用户名'@'主机名';
    
    # !注意事项:
    # 在MySQL中需要通过 用户名@主机名的方式,来唯一标识一个用户;
    # 主机名可以使用 % 通配符来表示任意主机;
    
    # MySQL中常用的权限主要有:
    allselectinsertupdatedeletealterdropcreate
    
    # 查询指定用户的权限
    show grants for '用户名'@'主机名';        
                                  
    # 授予指定用户相应的权限
    grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';    
          
    # 撤销指定用户相应的权限
    revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    数据库MySQL(一):基础知识
    数据库MySQL(二):DDL数据定义语言
    数据库MySQL(三):DML、DQL、DCL
    数据库MySQL(四):表中字段约束和外键约束
    数据库MySQL(五):多表查询
    数据库MySQL(六):事务

  • 相关阅读:
    Linux编译器和调试器的使用
    暴雪与网易宣布停止合作,多家厂商争夺暴雪代理权
    Web前端入门(十四)元素显示模式
    【前端】webpack打包去除console.log
    【Golang】发布Go package和import第三方包
    Python描述 LeetCode 81. 搜索旋转排序数组 II
    golang中如何比较struct,slice,map是否相等以及几种对比方法的区别
    React-hook-form-mui(一):基本使用
    css强制一行,自动裁剪文字,用省略号结尾。
    Flutter 实现局部刷新 StreamBuilder 实例详解
  • 原文地址:https://blog.csdn.net/qq_33021529/article/details/133991195