语法:alter table 表名 drop 列名称;
- -- 删除表students中的 birthday 列:
- alter table students drop birthday;
4、重命名表
语法:alter table 表名 rename 新表名;
- -- 重命名 students 表为 workmates:
- alter table students rename workmates;
5、清空表数据
方法一:delete from 表名; 方法二:truncate table "表名";
- DELETE:1. DML语言;2. 可以回退;3. 可以有条件的删除;
- TRUNCATE:1. DDL语言;2. 无法回退;3. 默认所有的表内容都删除;4. 删除速度比delete快。
- -- 清空表为 workmates 里面的数据,不删除表。
- delete from workmates;
- -- 删除workmates表中的所有数据,且无法恢复
- truncate table workmates;
6、删除整张表
语法:drop table 表名;
- -- 删除 workmates 表:
- drop table workmates;
7、删除整个数据库
语法:drop database 数据库名;
- -- 删除 samp_db 数据库:
- drop database samp_db;
十一、其它
1、SQL删除重复记录
- -- 查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
- select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
- -- 删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
- delete from people
- where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
- and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
- -- 查找表中多余的重复记录(多个字段)
- select * from vitae a
- where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
- -- 删除表中多余的重复记录(多个字段),只留有rowid最小的记录
- delete from vitae a
- where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
- -- 查找表中多余的重复记录(多个字段),不包含rowid最小的记录
- select * from vitae a
- where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
【编辑推荐】 - 一道经典的MySQL面试题,答案出现三次反转
- MySQL数据库基础操作命令
- 微服务的数据库设计
- 超详细的SQL Server数据库触发器总结
- 官方工具|MySQL Router高可用原理与实战
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|