SQL查询中需要使用别名问题
SQL查询中什么时候需要使用表别名?
今天写MySQL时遇到使用表别名的问题,这里重新总结一下。
1、 表名很长时
select * from www_baidu_user where www_baidu_user.id = 1;
和
select * from www_baidu_user u where u.id = 1;
查询的结果一样,但是第二个使用表别名时更简洁。同样,字段的别名也是一样的原理。
2、 必须使用别名时
如下:
1)
select * from (select * from table1) as t1
这是从子查询直接查询所有的数据需要给表起别名
2)
select b.name id,a.job,a.sex from A a left outer join B b on b.id = a.id
这个是为了查询某一列或几列的数据,如A表中没有name字段,查询时必须带上表名或表的别名,连接查询时常用到。
以上所述是小编给大家介绍的SQL查询中需要使用别名问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
MySQL笔记之别名的使用
在查询时,可以为表和字段取一个别名.这个别名可以代替其指定的表和字段 为表取别名 复制代码 代码如下: mysql> SELECT * FROM department d -> WHERE d.d_id=1001;+------+-----------+--------------+-------------+| d_id | d_name | function | address |+------+-----------+--------------+------
-
sqlserver中delete、update中使用表别名和oracle的区别
昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计.心说,不对啊,是重新生成记录后才分析的啊.难道忘了DELETE了?查代码,发现有删除语句.于是在查询分析器中执行,报错.反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测. 之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题. 结论: (ORACLE适用) DELETE FROM
-
MySQL中使用表别名与字段别名的基本教程
MySQL 表别名(Alias) SQL 表别名 在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语法,几乎所有的数据库系统都支持.通过关键字 AS 来指定. 表别名语法: SELECT column FROM table AS table_alias 上述 SQL 执行后的效果,给人感觉是对 table_alias 表进行查询,但实际上对单表做简单的别名查询通常是无意义的.一般是对一个表要当作多个表来操作,或者是对多个表进行操作时,才设置表别名. 表
-
SQL查询中需要使用别名问题
SQL查询中什么时候需要使用表别名? 今天写MySQL时遇到使用表别名的问题,这里重新总结一下. 1. 表名很长时 select * from www_baidu_user where www_baidu_user.id = 1; 和 select * from www_baidu_user u where u.id = 1; 查询的结果一样,但是第二个使用表别名时更简洁.同样,字段的别名也是一样的原理. 2. 必须使用别名时 如下: 1) select * from (select * fro
-
sql查询给表起别名要点小结(涉及嵌套查询)
目录 可以通过空格或者as给表起别名 简单查询中使用别名 复杂查询中使用别名 总结 可以通过空格或者as给表起别名 但是注意如果操作的数据库是Oracle的话,只能使用空格,as不符合Oracle的语法. 举个栗子 简单查询中使用别名 select * from student s where s.id = '10'; 在简单的查询中使用别名,一般没有特别需要注意的地方,要做的操作少 复杂查询中使用别名 题目概要:有三个表格,student(sno,sname,ssex,sbirthday,cl
-
SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)
(一)行号显示和排序 1.SQL Server的行号 A.SQL 2000使用identity(int,1,1)和临时表,可以显示行号 SELECT identity(int,1,1) AS ROWNUM, [DataID] INTO #1 FROM DATAS order by DataID; SELECT * FROM #1 B.SQL 2005提供一个很好用的函数row_number(), 可以直接用来显示行号,当然也可以使用SQL 2000的identity SELECT row_num
-
在SQL查询中使用LIKE来代替IN查询的方法
如下: 复制代码 代码如下: SELECT * FROM Orders WHERE OrderGUID IN('BC71D821-9E25-47DA-BF5E-009822A3FC1D','F2212304-51D4-42C9-AD35-5586A822258E') 可以看出直接在IN后面跟ID的集合需要将每一个ID都用单引号引起来.在实际应用中会遇到这么一种情况,在界面中收集的是一串GUID的拼接字符串,中间以逗号隔开,如果作为参数传到一个存储过程中执行,最终生成的语句会是下面这样: 复制代码
-
SQL查询中in和exists的区别分析
select * from A where id in (select id from B); select * from A where exists (select 1 from B where A.id=B.id); 对于以上两种情况,in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in. 1.select * from A where id in (select id from B); in()只执行一次,它查出B表中的所有id字段并缓存
-
在sql查询中使用表变量
复制代码 代码如下: USE [DAF_DB] GO /****** Object: StoredProcedure [dbo].[PROG_WORKTASK_List] Script Date: 06/14/2010 21:14:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --[PROG_WORKTASK_List] 62,0,'','',0,0,'','' -- ===========================
-
SQL查询语句通配符与ACCESS模糊查询like的解决方法
ACCESS的通配符和SQL SERVER的通配符比较===================================================ACCESS库的通配符为:* 与任何个数的字符匹配? 与任何单个字母的字符匹配 SQL Server中的通配符为:% 与任何个数的字符匹配_ 与单个字符匹配正文我今天在写个页面的时候,也很郁闷,表中明明有记录,但在ASP里就是搜索不到,理论的sql语句如下:Select * FROM t_food Where t_food.name
-
MySQL中一条SQL查询语句是如何执行的
目录 前言 1. 处理连接 1.1 客户端和服务端的通信方式 1.1.1 TCP/IP协议 1.1.2 UNIX域套接字 1.1.3 命名管道和共享内存 1.2 权限验证 1.3 查看MySQL连接 2. 解析与优化 2.1 查询缓存 2.2 解析器 & 预处理器(Parser & Preprocessor) 2.2.1 词法解析 2.2.2 语法分析 2.2.3 预处理器 2.3 查询优化器(Optimizer)与查询执行计划 2.3.1 什么是查询优化器? 2.3.2 优化器究竟做了什
-
在SQL Server中使用子查询更新语句
测试环境准备 create table #table1 ( id int , name varchar(20) ); go create table #table2 ( id int , name varchar(20) ); go insert into #table1 ( id, name ) values ( 1, 'a' ), ( 2, null ), ( 3, 'c' ), ( 4, 'd' ), ( 5, 'e' ); insert into #table2 ( id, name )
-
使用SQL查询DB2 9中的XML数据
正在看的db2教程是:使用SQL查询DB2 9中的XML数据. 虽然 DB2 的混合体系结构与之前的版本有很大的不同,但是要利用它的新 XML 功能并不难.如果您已经熟悉 SQL,那么很快就可以将这方面的技能转化到对存储在 DB2 中的本地 XML 数据的处理上.通过本文就可以知道如何实现这一点. DB2 Viper(就是DB2 9)中的 XML 特性包括新的存储管理.新的索引技术以及对查询语言的支持.在本文中,学习如何使用 SQL 或带 XML 扩展的 SQL(SQL/XML)查询 DB2 X
随机推荐
- Go语言排序算法之插入排序与生成随机数详解
- 通过shell进行数学运算的多种方式
- 详解实现Nginx+Tomcat实现单IP、多域名、多站点的访问
- 浅析JS中对函数function的理解(基础篇)
- 详解php几行代码实现CSV格式文件输出
- 正则表达式不包含属性
- Python数据操作方法封装类实例
- ECMAScript 5严格模式(Strict Mode)介绍
- Node.js使用Express创建Web项目详细教程
- Python可跨平台实现获取按键的方法
- 如何解决Ajax访问不断变化的session的值不一致以及HTTP协议中的GET、POST的区别
- HTML的全局架构标签
- SQL语句练习实例之四 找出促销活动中销售额最高的职员
- Boostrap基础教程之JavaScript插件篇
- Android中自定义进度条详解
- 养成良好的C++编程习惯之内存管理的应用详解
- linecache模块加载和缓存文件内容详解
- 详解spring cloud分布式关于熔断器
- Oracle 11.2.0.4打补丁的方法
- Python 元组操作总结