SQL语句解释
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句解释相关的知识,希望对你有一定的参考价值。
SELECT continent, name, area FROM world x
WHERE area >= ALL
(SELECT area FROM world y
WHERE y.continent=x.continent)
这里面的FROM world x和FROM world y是什么意思?
*
from
uds_bbs_forumitem
m
/*这里就是查询啊
表名是
uds_bbs_forumitem
把表从新命名为
m
*/
where
COALESCE(last_replay_time,send_time)
=
(select
max(COALESCE(last_replay_time,send_time))
from
uds_bbs_forumitem
n
where
m.board_id
=n.board_id)
/*
这里是查询语句
查询语句里有子查询
(select
max(COALESCE(last_replay_time,send_time))
from
uds_bbs_forumitem
n
where
m.board_id
=n.board_id)
子查询的意思是
在uds_bbs_forumitem(表被从命名了
为
n)表里
搜索
m表里的字段board_id等于n表里的board_id
意思是外面的查询和子查询搜索的是同一条记录
在用coalesce函数得到的最大的值
等于
coalesce函数下的m表里的last_replay_time,send_time字段的记录
*/
--(m表就是上面那个
n表就是子查询里的
虽然是一个表
但是现在有了区别) 参考技术B 第一个SQL语句是查询数据库表BTYW_YWSP_SQB
BTYWYWSPSQ0_中的若干列,有三个条件,即where后米娜三个and连接起来的,并按SPLSH列降序排序。
但条件不全,不知道你给的语句是否全还是有意的去掉了一些内容
第二个是数据更新语句:即更新BTYW_ZSDJ_FWB表中的若干列,形式是用Set把某列的值设置成你想要的值,这里的值都是问号。更新有条件,条件是LSH列的值为某个值时 参考技术C 因为这里对world有两次引用,如果不用别名,where那句就变成 WHERE world.continent=world.continent ,这个逻辑就有问题,不清楚,为了区分是哪次的引用,所 以加上别名 WHERE y.continent=x.continent 参考技术D world是表名字,x或者y是给这个表定义的自定义名,便于区分追问
那这里面为什么要取一个自定义的名字啊?
追答有时候你会写出这样的语句,例如 select * from world x left join world y on x.id=y.id,加上x,y书写就可以简单点,也便于区分和直观,而且你写的语句中where条件是个子查询,子查询关联的表中若字段名称与主表相同的话,需要加表名用以区分是主表字段还是子表字段,
若子查询的表就是主表本身的话,用表名也区分不开,所以要借助表别名
Sql 解释
SQL(Structured Query Language)
结构化查询语言,虽然是查询语言,也是一种编程语言,但是执行查询操作。
根据数据的操作对象,可以将SQL语句分为几类。
DDL(Data Defination Language) 数据定义语言
create database、create table、create view、create function、create procedure
drop database.....
DML(Data Modify Language) 数据修改语言
update、insert、delete
DQL(Data Query Language) 数据查询语言
select
DCL(Data Control Language) 数据控制语言(通过用户权限)
create user、grant 权限
TCL(Transaction Control Language) 事务控制语言
transaction、commit、rollback
以上是关于SQL语句解释的主要内容,如果未能解决你的问题,请参考以下文章