Skip to content

Latest commit

 

History

History
41 lines (25 loc) · 1.54 KB

牛客网刷题总结.md

File metadata and controls

41 lines (25 loc) · 1.54 KB

1.Drop,Delete,Truncate的区别

  • Drop是完全删除表,包括表结构

  • Truncate是只删除表数据而不删除表结构,不能加WHERE

  • Delete是完全删除表数据,保留表的结构,而且可以加WHERE,只删除一行或者多行

  • 处理效率:drop>trustcate>delete

2.SQL语言分类

  • DDL(Data Definition Language)数据库定义语言

DDL不需要commit. eg. CREATE ALTER DROP TRUNCATE COMMENT RENAME

  • DML(Data Manipulation Language)数据操纵语言

DML需要commit. eg. SELECT INSERT UPDATE DELETE MERGE CALL EXPLAIN PLAN LOCK TABLE

  • DCL(Data Control Language)数据库控制语言 授权,角色控制等

GRANT 授权, REVOKE 取消授权

  • TCL(Transaction Control Language)事务控制语言

SAVEPOINT 设置保存点, ROLLBACK 回滚, SET TRANSACTION

3.MySQl的执行顺序

mysql执行顺序是先找from表,然后再where,然后Group by这些,最后Select后的语句。 这道题先找到这个表,再看where后,只把class为英语数学的筛选出来,然后通过学号分组,每个学生的成绩放到一条记录里,英语数学成绩这两个字段便是查找完每个学生的记录后得到的,需要用到sum

1、from 子句组装来自不同数据源的数据; 2、where 子句基于指定的条件对记录行进行筛选; 3、group by 子句将数据划分为多个分组; 4、使用聚集函数进行计算 5、使用 having 子句筛选分组; 6、计算所有的表达式; 7、select 的字段; 8、使用 order by 对结果集进行排序