平常工作中的SQL语句使用总结,快来瞧瞧吧
来源:coder分享     阅读:730
九狐源码
发布于 2018-12-21 23:10
查看主页

前言

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

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

SQL

Update语句

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

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

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

update语句

HQL语句

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

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

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

hql语句

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

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

调试过程

删除表数据而不删除表

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

  • truncate

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

truncate

  • delete

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

delete

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

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

在Java中使用复杂的SQL语句

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

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

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

SQL

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

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

处理方法如下:

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

修改后的SQL语句

总结

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

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 软件环境
相关推荐
如何在Ubuntu Linux上安装Oracle Java 14
关于Linux的那些常用命令,你能记住几个?
(8)打鸡儿教你Vue.js
【建议收藏】2021字节跳动、腾讯、阿里巴巴等一线互联网校招面试真题解析
With语句
首页
搜索
订单
购物车
我的