半夏微凉

半夏微凉

四、检索数据——select

select基本语法:
   select [distinct|all] select_list from table_list 
 [where_clause]
 [group_by_clause]
 [having condition]
 [order_by_clause]
select延伸用法:
  使用别名替代表中的字段名:
select column_name1 name1,column_name2 as name2,......from table_name;

  使用表达式操作查询的字段:

select column_name1,column_name2 ||'*'||1.25||'='||column_name2*1.25 as new_column_name2 from table_name;
  使用函数操作查询的字段(查询字段前6个字符):
select column_name1,subStr(colume_name2,1,6) from table_name;
  去除重复的数据:
select distinct(column_name) from table_name; 

select 数据排序:
   order by {expr | position | c_alisa} 
     [ASC | DESC] 
     [nulls first | nulls last]
        [,{expr | position | c_alias}
           [asc | desc]
           [nulls first | nulls last]]...

select 使用where子句设置检索条件:
关系操作符:>,<,>=,<=,=,!=,<>;
比较操作符:is null;like;between...and...;in;
逻辑操作符:and,or,not;

select 范围查询

    select * from table_name where category in ('','')
select 字符字段转number型排序
    select * from table_name  order by cast (column as int)
使用子查询:
    子查询返回多行,关键字:in,(any,some,all)配合>,<,>=,<=,=使用。
any多用于非“=”环境中,表示满足子查询结果的任何一个。和<,<=搭配表示小于等于列表中的最大值,和>,>=搭配表示大于等于列表中的最小值。
some和any的用法一样,多用于非“=”环境中,some一般用于相等环境中表示和子查询集合中任意一个值相等的数据。
all表示满足子查询结果的所有结果。和<,<=搭配表示小于等于列表中的最小值,和>,>=搭配表示大于等于列表中的最大值。

连接查询:

最简单的连接查询:select * from table_name1,table_name2;
内连接:select t.column_name1 u.column_name2 from table_name1 t , table_name2 u where t.column_name3=t.colume_name4;
        或 select t.colume_name1 u.colume_name2  from table_name1 t (inner) join table_name2 u on t.column_name3=t.colume_name4;

左外连接:select * from table1 left join table2 on table1.column = table2.column
右外连接:select * from table1 right join table2 on table1.column=table2.column
全外连接:select * from table1 full join table2 on table1.column=table2.column


评论回复


·