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简单合并(更快)

相关推荐
smilejingwei4 分钟前
CodeBuddy+SQLazy 编写复杂 SQL 详解
sql·codebuddy·sqlazy
雾时之林33 分钟前
Linux--软件管理、源码包安装
linux·服务器·数据库
老纪的技术唠嗑局2 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE2 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄3 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
少晓年3 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
SelectDB4 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB4 小时前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库
SelectDB4 小时前
阶跃星辰 Agent 可观测:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB4 小时前
ApacheDoris Iceberg V3 湖仓 DML:Apache Doris / SelectDB 的技术能力与实践
数据库