SQL 易混易错知识点笔记1(drop,role,%,localhost)

DROP 与 DELETE 的区别

  • DELETE:删除表中的数据行,属于DML操作,可回滚,可带WHERE条件

    DELETE FROM table WHERE condition; -- 删除特定行
    DELETE FROM table; -- 删除所有行但保留表结构
  • DROP:删除整个数据库对象(表、视图、索引等),属于DDL操作,不可回滚

    DROP TABLE table_name; -- 完全删除表(结构和数据)
    DROP DATABASE db_name; -- 删除整个数据库

GRANT 语句中角色与用户的区别

  • 角色(Role):权限集合的抽象概念,不关联主机名

    CREATE ROLE 'public_role'; -- 创建角色
    GRANT SELECT ON db.* TO 'public_role'; -- 授权给角色(无@host部分)
  • 用户(User):具体账户,必须指定访问来源

    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password'; -- 创建用户
    GRANT 'public_role' TO 'user1'@'localhost'; -- 将角色授予用户

% 与 localhost 的区别

  • localhost:仅允许本地连接(通过Unix socket或本地回环IP 127.0.0.1)

    CREATE USER 'user'@'localhost'; -- 只能从本机连接
  • %:允许从任何主机连接(包括远程)

    CREATE USER 'user'@'%'; -- 可从任意IP连接

其他易错点

  1. TRUNCATE 与 DELETE

    • TRUNCATE是DDL,重置自增值,不触发触发器

    • DELETE是DML,保留自增值,触发触发器

  2. HAVING 与 WHERE

    • WHERE过滤行,在GROUP BY前执行

    • HAVING过滤组,在GROUP BY后执行

  3. CHAR 与 VARCHAR

    • CHAR定长,适合短且长度固定的数据

    • VARCHAR变长,适合长度变化的数据

  4. INNER JOIN 与 LEFT JOIN

    • INNER JOIN只返回匹配的行

    • LEFT JOIN返回左表所有行(不匹配的右表字段为NULL)

  5. UNION 与 UNION ALL

    • UNION去重并排序

    • UNION ALL简单合并(更快)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值