您的位置 首页 java

平时工作中的SQL语句使用总结,快来瞧瞧吧

前言

由于之前是做 Java 开发的,所以对数据库部分知识的掌握也是必须的,在做开发的时候需要自己写SQL语句,这里就总结一下自己在平时工作中遇到的一些关于SQL语句的问题,希望对大家有所帮助。

SQL

Update语句

  • update语句会一次性更新所有满足条件的记录,所以可能会有多行记录受到影响

  • 使用update语句更新多列时,使用“,”(逗号)分隔,而不是用and,例如

update语句

hql 语句

如果使用过 Hibernate 的话,应该知道HQL语句,它是一种面向对象的SQL语句。

如果在HQL语句中使用了多个表的话,则返回的List结果中,每一个元素都是由多个表单独构成的。例如以下的SQL语句

hql语句

在上述的SQL语句中涉及到了两个表,在返回的查询结果中,每个元素都是数组的形式,数组中的元素来自于不同的表,可以通过索引[0],[1]来访问具体值,调试过程可以看出List中包含的内容。

调试过程

删除表数据而不删除表

如果只想删除表中的数据,而不想删除表的结构,可以有两种方式:

  • truncate

truncate

  • delete

delete

truncate相比于delete命令,在执行速度上会更快,因为truncate只记录整个数据页的释放,而delete会记录每条记录的删除操作。

如果有rollback命令,delete语句会回滚,而truncate语句不会回滚,在使用上truncate语句要更小心。

在Java中使用复杂的SQL语句

有的时候我们会遇到这样一种情况,在SQL语句的命令行或者可视化界面中,SQL语句是可以执行的,而在Java的程序中执行却会报错。

我们看个具体的例子,有这样一段SQL语句

SQL

这段SQL语句在navicate for mysql中是可以正常执行的,但是如果利用Hibernate的query.list()方法查询时却会报错。

这是因为在SQL语句中没有使用别名,m.`name`和p.`name`会出现重复的字段名。而在navicate中会自动重新命名,所以不会出错。

解决方法如下:

修改后的SQL语句

总结

今天这篇文章简单的总结了下平时工作中SQL语句的使用经验,你学会了吗?

文章来源:智云一二三科技

文章标题:平时工作中的SQL语句使用总结,快来瞧瞧吧

文章地址:https://www.zhihuclub.com/189311.shtml

关于作者: 智云科技

热门文章

网站地图