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

DROP 与 DELETE 的区别

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

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

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

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

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

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

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

% 与 localhost 的区别

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

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

    sql 复制代码
    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简单合并(更快)

相关推荐
剩下了什么5 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
山峰哥5 小时前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
较劲男子汉6 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
java搬砖工-苤-初心不变6 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
山岚的运维笔记8 小时前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
roman_日积跬步-终至千里8 小时前
【LangGraph4j】LangGraph4j 核心概念与图编排原理
java·服务器·数据库
汇智信科8 小时前
打破信息孤岛,重构企业效率:汇智信科企业信息系统一体化运营平台
数据库·重构
野犬寒鸦9 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
WHD3069 小时前
苏州数据库(SQL Oracle)文件损坏修复
hadoop·sql·sqlite·flume·memcached
晚霞的不甘10 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d