美文网首页
瀚高数据库----select用法

瀚高数据库----select用法

作者: 瀚高BLOG | 来源:发表于2017-10-31 15:23 被阅读0次

    select用来检索数据,是数据库最常用的指令,下面将介绍select的常用语法。

    1、表和别名

    你可以给一个表或复杂的表引用指定一个临时的名字,用于剩下的查询中引用那些派生的表,这被叫做表别名

    表别名经常用来代替很长的表明,例如:

    select * from left_verylong_name_table s where s.label = 'vari';

    当一个表拥有别名后,不能再用表原先的名字进行查询。例如:

    select * from table1 t where table1.id = '1';

    这样是错误的。

    表别名主要用于简化符号,但是当把一个表连接到它自身时必须使用别名,例如:

    select * from people a inner join people b where a.mother_name = b.name;

    别名有自己的应用范围,例如:

    SELECT a.* FROM (my_table AS a JOIN your_table AS b ON ...) AS c

    是不合法的:表别名a在别名c外面是看不到的。

    2、表连接

    表查询时常常需要连接多个表,这时候就需要连接表的语法。下面举例子表明表连接的语法。

    create table table1(id varchar,value varchar);

    create table table2(id varchar,value varchar);

    insert into table1 values (1,'a1');insert into table1 values (2,'a2');insert into table1 values (3,'a3');insert into table1 values (4,'a4');

    insert into table2 values (1,'b1');insert into table2 values (2,'b2');insert into table2 values (3,'b3');insert into table2 values (5,'b5');

    select * from table1 inner join table2 on table1.id = table2.id;

    select * from table1 full join table2 on table1.id = table2.id;

    select * from table1 left join table2 on table1.id = table2.id;

    select * from table1 right join table2 on table1.id = table2.id;

    3、组合查询

    两个查询的结果可以用集合操作并、交、差进行组合。语法如下:

    query1UNION [ALL]query2

    query1INTERSECT [ALL]query2

    query1EXCEPT [ALL]query2

    UNION有效地把query2的结果附加到query1的结果上(不过我们不能保证这就是这些行实际被返回的顺序)。此外,它将删除结果中所有重复的行, 就象DISTINCT做的那样,除非你使用了UNION ALL。

    INTERSECT返回那些同时存在于query1query2的结果中的行,除非声明了INTERSECT ALL, 否则所有重复行都被消除。

    EXCEPT返回所有在query1的结果中但是不在query2的结果中的行(有时侯这叫做两个查询的)。同样的,除非声明了EXCEPT ALL,否则所有重复行都被消除。

    相关文章

      网友评论

          本文标题:瀚高数据库----select用法

          本文链接:https://www.haomeiwen.com/subject/feuqpxtx.html