可以这样设置别名,但是不能在本层语句的条件中使用。这个别名是对外的。
创新互联是一家集网站建设,黄龙企业网站建设,黄龙品牌网站建设,网站定制,黄龙网站建设报价,网络营销,网络优化,黄龙网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
如果你嵌套一层就没有问题了。
select * from (select eno,ename en from emp) where en='John'
在Oracle中as关键字不能用于指定表的别名,在Oracle中指定表的别名时只需在原有表名和表的别名之间用空格分隔即可,但可以用于指定列的别名,但在存储过程中如果列的别名与原有列名相同,在运行时会报错(编译时不会出错),其他情况下列的别名可以与列名本身相同。
别名用”as“即可,然后as也可以省略掉。举例如下:
sql:select a.name as username,a.age as userage from tablename as a;
解释:给tablename命名为a ,之后给a表中的name命名为username,age命名为userage 。
其中”as“都是可以省略的,即:select a.name username,a.age userage from tablename a;
1,方便记忆,有时候名字太长了,你想弄个短点的,就弄个别名
2,通用性需要.想访问其他schema的table,总不能在程序里面写XX.TABLE,因为程序拿到其他DB用时,不一定有XX这个schema.
3,有时候使用远程DB的table时,
用别名来隐藏远程DB的信息.因为未来可能把远程table移到本地或换个名字什么的.使用别名就意味着不改程序.
可以,其实存储过程就等于是把一些sql进行一个整合。平时能用的都可以。
比如说select t.id from test t;
只要自己定义了表的别名,就可以使用。
但别名是不能传递的,比如说你在第一个sql里面定义了表的别名,在第二个sql里面除非重新定义,否则就不能用了。
如果想一直传递,只能通过定义新的参数来实现。
用SELECT语句从表中提取查询数据。语法为
SELECT [DISTINCT] {column1,column2,…} FROM tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC];
说明:SELECT子句用于指定检索数据库的中哪些列,FROM子句用于指定从哪一个表或视图中检索数据。
SELECT中的操作符及多表查询WHERE子句。(LIKE,IS,…)
WHERE子句中的条件可以是一个包含等号或不等号的条件表达式,也可以是一个含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比较运算符的条件式,还可以是由单一的条件表达通过逻辑运算符组合成复合条件。
ORDER BY 子句
ORDER BY 子句使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDER BY 子句指定的表达式的值确定。
1) UPDATE tablename SET {column1=expression1,column2=expression2,…} WHERE {conditions};
例如:S QLUPDATE EMP
SET JOB =’MANAGER’
WHERE ENAME=’MAPTIN’;
SQL SELECT * FROM EMP;
UPDATE子句指明了要修改的数据库是EMP,并用WHERE子句限制了只对名字(ENAME)为’MARTIN’的职工的数据进行修改,SET子句则说明修改的方式,即把’MARTION’的工作名称(JOB)改为’MARAGER’.
2) INSERT INTO tablename {column1,column2,…} VALUES {expression1,expression2,…};
例如:SQLSELECT INTO DEPT(DNAME, DEPTNO)
VALUES (‘ACCOUNTING’,10)
3) DELETE FROM tablename WHERE {conditions};
例如:SQLDELETE FROM EMP
WHERE EMPNO = 7654;
DELETE命令删除一条记录,而且DELETE命令只能删除整行,而不能删除某行中的部分数据.