5.数据库的查询-select

1.选择指定列

    select t1,t2 as tt from table
2.替换查询结果集中的数据:case
    case
        when 条件1 then 表达式1
        when 条件2 then 表达式2
        ...
        else 表达式
    end [as columnname]
    示例:
        
3.各种连接
    交叉连接:cross join笛卡尔积
    内连接:inner join  或者cross join 系统默认连接
    相等连接:equijoin用于一对一关系的表,等同于内连接 on后用=
    不等连接:non-equijoin同上,只是on后不用=
    自连接:self-join 表和自己连接
    自然连接:natural join 只有2张表里列名都相同时才有用,否则返回笛卡尔积
    外连接:outer join(左外连接left join、右外连接right join)
4.where使用:
    4.1 字符串匹配:like
        百分号:%,注意:a.不区分大小写;b.代表搜索模式中0、1或多个字符串;c.不能匹配空值
        下划线:_,注意:值匹配单个字符
    4.2 文本匹配:   允许使用regexp来指定正则表达式
        A.基本字符匹配:where t1 regexp '工程',如图
            
        B.选择匹配:where t1 regexp '上海|北京',如图:
            
       C.范围匹配:如:where t1 regexp '[1-10][a-z]|测试'
       D. 特殊字符匹配(用\来转义):如果是“ _” 则使用“\_”;如果是“”则使用“\”
        E.重复匹配:
            
              示例:查询有一个f开头的所有数据
            
        F.使用定位符匹配:
            
            示例:查询表中id是1-2的记录
            
5.limit:限制被select语句返回的行数
    limit {[offset,] row_count |row_count OFFSET offset}
        offset:默认0,返回数据第一行在select结果中的偏移量,第一行偏移为0    如:limit 4,3 -->取第五行开始3个值
        row_count:指定返回的行数    如:limit 3 -->取前3行记录
        row_count offset:从offset+1行开始取row_count行的记录。如:limit 3 offset 4 -->取第五行开始3个值
6.exist:判定子查询的结果是否为空,结果集不为空返回True,为空返回False
7.union语句:
    注意事项:
    A.必须由2条以上select语句组成,之间用union分隔
    B.每个select中包含相同的列、表达式、聚集函数
    C.每个select中对应列的数据类型必须兼容
    D.第一个select中使用的列名作为UNION语句结果集的列名称
    E.只能使用一条order by和limit,必须置于最后一条select语句后
    如图:
        
 
 
 





原文地址:https://www.cnblogs.com/georgelei/p/6adf921825b0d4a86231dee0d731c159.html