mysql中易混淆知识点

卧薪尝胆,三千越甲可吞吴。


1、date、time、datetime、timestamp 日期数据类型

date:只包含日期(年 月 日)

time:只包含时 分 秒

datetime:包含日期和时分秒,但需要手动录入时间

timestamp:包含日期和时分秒,默认选择当前系统时间


2、desc 关键字

desc  表名   : 表示查看表的信息。

desc 用在order by后还可以是倒序的意思。例:select * from stu order by age desc;


3、delete 和 truncate

delete和truncate都是删除数据(不删表),drop是表和数据都删除。

truncate:先删除整个表,在创建一个新的空的表,效率快。

delete:删除数据是一条一条删除的。

truncate语句是DDL,执行之后自动提交,和事务无关,不能回滚,触发器不会生效,没有备份小心使用。

delete语句是DML,操作会放到rollback segment中,事务提交之后才生效,如果有相关的触发器,执行的时候会触发。


4、order by 双重排序

例:对学生先对英语成绩进行排序,再对数学成绩进行降序排序

不能使用两个order by

select * from stu order by english,math desc;


5、where、group by、having

where是一个约束声明,使用where来约束数据库中的数据,where是在结果返回之前起作用,where中不能使用聚合函数。

having是一个过滤声明 ,在查询返回结果集之后对结果进行过滤操作,having中可以使用聚合函数。

where和group by 和having一起使用时,where的约束条件在group by之前执行,having的过滤条件在group by之后执行,即where先执行,having后执行。

你可能感兴趣的:(mysql中易混淆知识点)