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语句后
如图: