9.说说drop、truncate、 delete区别【通用】
1.2.为什么用自增列作为主键?【通用】2.3.触发器的作用是什么?【通用】3.4.什么是存储过程?用什么来调用?【通用】4.5.说说存储过程的优缺点?【通用】5.6.说说存储过程与函数的区别【通用】6.7.什么叫视图?游标是什么?【通用】7.8.视图的优缺点有哪些?【通用】
8.9.说说drop、truncate、 delete区别【通用】
9.10.什么是临时表,临时表什么时候删除?【通用】10.11.说说非关系型数据库和关系型数据库区别,优势比较?【通用】11.12.什么是数据库范式,根据某个场景设计数据表?【通用】12.13.什么是 内连接、外连接、交叉连接、笛卡尔积等?【通用】13.14.varchar和char的使用场景?【通用】14.15.SQL语言分类【通用】15.16.说说like %和-的区别【通用】16.17.说说count(*)、count(1)、count(column)的区别【通用】17.18.什么是最左前缀原则?【通用】18.19.什么是索引?【通用】19.20.索引的作用?它的优点缺点是什么?【通用】20.21.索引的优缺点有哪些?【通用】21.22.什么样的字段适合建索引?【通用】22.23.说说MySQL B+Tree索引和Hash索引的区别?23.24.说说B树和B+树的区别24.25.为什么说B+比B树更适合实际应用中操作系统的文件索引和数据 库索引?25.26.说说聚集索引和非聚集索引区别?【通用】26.1.函数的分类?经常使用的函数有哪些?27.2.分组查询需要注意条件?28.3.limit使用方法?29.4.mysql常见数据类型?30.5.如何增加删除修改表结构31.6.如何开启MySQL服务,关闭My服务32.7.检测端口是否运行33.8.如何为MySQL设置密码或者修改密码。34.9.如何登陆MySQL数据库。35.10.查看当前数据库的字符集36.11.如何查看当前数据库版本37.12.如何 查看当前登录的用户。38.13.查看T1数据库中有哪儿些表39.14.创建GBK字符集的数据库oldboy,并查看已建库完整语句40.15.创建用户oldboy,使之可以管理数据库oldboy41.16.查看创建的用户oldboy拥有哪些权限42.17.查看当前数据库里有哪些用户43.18.如何进入oldboy数据库44.19.请写一个脚本: 创建一个innodb GBK表test,字段id int(4)和 name varchar(16)45.20.查看建表结构及表结构的SQL语句46.21.请使用脚本查询一条数据:插入一条数据“1,oldboy”47.22.再批量插入2行数据 “2,老男孩”,“3,oldboyedu”48.23.查询名字为oldboy的记录49.24.把数据id等于1的名字oldboy更改为oldgirl50.25.在字段name前插入age字段,类型tinyint(2)51.26.不退出数据库,完成备份oldboy数据库52.27.删除test表中的所有数据,并查看53.1.说一下 MySQL 的行锁和表锁?54.2.MySQL的默认事务隔离级别是?55.3.Mysql数据库表类型有哪些?56.4.MySQL怎么恢复半个月前的数据?57.5.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?58.6.MySQL 的内连接、左连接、右连接有什么区别?59.7.MySQL 问题排查都有哪些手段?60.8.如何做 MySQL 的性能优化?61.9.MySQL数据库作发布系统的存储,一天五万条以上的增量,预计 运维三年,怎么优化?62.10.MySQL由哪些部分组成, 分别用来做什么?63.11.怎么验证 MySQL 的索引是否满足需求?64.12.请你介绍一下 mysql的主从复制?65.13.请你介绍一下mysql的MVCC机制66.14.常用的Mysql复制架构有哪些?67.15.Mysql 的存储引擎,myisam和innodb的区别?68.16.请问MySQL的端口号是多少,如何修改这个端口号69.17.Mysql如何为表字段添加索引?70.18.说说自己对于 MySQL 常见的两种存储引擎:MyISAM与InnoDB 的理解?最基本:
- drop直接删掉表。
- truncate删除表中数据,再插入时自增长id又从1开始。
- delete删除表中数据,可以加where字句。
(1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
(2) 表和索引所占空间。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。
(3) 一般而言,drop > truncate > delete
(4) 应用范围。TRUNCATE 只能对TABLE;DELETE可以是table和view
(5) TRUNCATE 和DELETE只删除数据,而DROP则删除整个表(结构和数据)。
(6) truncate与不带where的delete :只删除数据,而不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
(7) delete语句为DML(data maintain Language),这个操作会被放到 rollback segment中,事务提交后才生效。如果有相应的 tigger,执行的时候将被触发。
(8) truncate、drop是DLL(data define language),操作立即生效,原数据不放到 rollback segment中,不能回滚。
(9) 在没有备份情况下,谨慎使用 drop 与 truncate。要删除部分数据行采用delete且注意结合where来约束影响范围。回滚段要足够大。要删除表用drop;若想保留表而将表中数据删除,如果与事务无关,用truncate即可实现。如果和事务有关,或老师想触发trigger,还是用delete。
(10) Truncate table 表名 速度快,而且效率高,因为:?truncate table 在功能上与不带 WHERE 子句的DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
(11) TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
(12) 对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)