MySQL数据事务语言(DTL)和数据控制语言(DCL)

ernestwang 1 0

数据事务语言(DTL)

  • 说明:用于测试的表的存储引擎必须支持事务(InnoDB)
  • 开启事务:禁止自动提交
    • set autocommit=0;
  • 提交事务:在整个事务过程没有问题时执行
    • commit;
  • 操作回滚:事务处理过程中出现问题时执行
    • rollback;
  • 代码操作
    # 开启事务
    try:
        # 执行事务的操作
    except Exception as e:
        # 操作回滚
    else:
        # 提交事务

数据控制语言(DCL)

  • 查看用户
    select Host, User from mysql.user;
  • 查看授权
    • 格式:show grants [for 'user'@'host'];,省略用户默认查看当前登录的用户
    • 示例:show grants [for 'root'@'localhost';]
  • 创建用户
    • 格式:create user 'user'@'host' identified by 'password'
    • 示例:create user 'dahua'@'10.8.162.%' identified by '123456';
    • 说明:%表示任意的
  • 用户授权
    • 格式:grant 权限 privileges on 库.表 to 'user'@'host' [identified by 'password']
    • 示例:grant all privileges on test.* to 'dahua'@'10.8.162.%';
    • 说明:
      • 权限:insert、delete、update、selectall表示所有权限
      • %:表示任意的主机
      • *:表示所有的库或表
  • 刷新权限:flush privileges;
  • 取消授权:
    • 格式:revoke 权限 privileges on 库.表 from 'user'@'host';
    • 示例:revoke all privileges on test.* from 'dahua'@'10.8.162.%';
  • 删除用户:
    • 格式:drop user 'user'@'host';
    • 示例:drop user 'dahua'@'10.8.162.%';

练习:

  • star表中查找年龄大于30的明星,然后按照省份进行分组,保留人数大于1的省份,找到人数第二多的省份及个数
  • 请选出哪些商品没有被购买过
    • 请选出哪类商品的总销量最多​

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~