mysql基本操作(三)-多表记录操作和运算符优先级

优先级顺序 运算符
1 interval
2 binary , collate
3
4 -(一元减号), ~
5 ^
6 *, / , DIV , % , MOD
7 -,+
8 << , >>
9 &
10 |
11 = , <=> , >= , > , <= , < , <> , != , IS , LIKE , REGEXP , IN
12 BETWEEN , CASE , WHEN , THEN , ELSE
13 NOT
14 && , AND
15 || , OR , XOR
16 :=

多表查询:

student表

mysql基本操作(三)-多表记录操作和运算符优先级

class表

mysql基本操作(三)-多表记录操作和运算符优先级

1 内链接查询:select 字段名列表 from table_name (inner) join table_name2 on table_name.字段名=table_name2.字段;

mysql基本操作(三)-多表记录操作和运算符优先级

2 重命名:发1 表名 as 重命名; 发2 from 表名 重命名;

mysql基本操作(三)-多表记录操作和运算符优先级

3 左外连接查询:select 字段名列表 from 表1 left(right) (outer可省略) join 表2 on 表1.字段=表2.字段;

mysql基本操作(三)-多表记录操作和运算符优先级

4 通过比较运算符查询(=,!=,>=,<=,<>(不能用于null),>,<):select 字段名列表 from 表1 where 字段名 = (加any可以查询多行)(select 字段名 from 表2 where 条件);

mysql基本操作(三)-多表记录操作和运算符优先级

5 通过in查询:select 字段名列表 fron 表1 where 字段名 in (select 字段名 from 表2);

mysql基本操作(三)-多表记录操作和运算符优先级

6 通过exists查询:select 字段名列表 from 表1 where (not) exists (select 字段名列表 from 表2 where 条件);

mysql基本操作(三)-多表记录操作和运算符优先级

7 通过all和any查询:select 字段名列表 from 表1 where 字段名 >= (any)all(select 字段名 from 表2);

mysql基本操作(三)-多表记录操作和运算符优先级

8 正则表达式查询:

8.1查询以字符a开头或以f结尾的记录:select 字段名列表 from 表 where 字段名 regexp ‘^a’ or 字段名 regexp ‘f$’;

mysql基本操作(三)-多表记录操作和运算符优先级

8.2 查询包含b,c,z字母的任意一个的记录:select 字段名列表 from 表 where 字段名 regexp ‘[bcz]’;([abd-y]表示a,b,d到y的字符)

mysql基本操作(三)-多表记录操作和运算符优先级

8.3 匹配指定字符串:select 字段名列表 from 表 where 字段名 regexp ‘afn|fsf’;

mysql基本操作(三)-多表记录操作和运算符优先级

8.4 “.”代替任意一个字符匹配:select 字段名列表 from 表 where 字段名 regexp ‘a.n’;

mysql基本操作(三)-多表记录操作和运算符优先级

8.5 *和+匹配多个该符合前的字符:select 字段名列表 from 表 where 字段名 regexp ‘a*n’; * 可表示0个字符 “+”至少表示一个字符

mysql基本操作(三)-多表记录操作和运算符优先级

8.6 使用{M} {M,N}匹配出现至少M次的,最多N次的记录:select 字段名列表 from 表 where 字段名 regexp ‘as{1}’;

mysql基本操作(三)-多表记录操作和运算符优先级

9 将表1数据插入表2:insert into 表1(字段名列表) select 字段名列表 from 表2 where 条件;

10 update 更新记录:update 表名 set 字段名 = 更新后内容 where 条件;

mysql基本操作(三)-多表记录操作和运算符优先级

11 删除数据:delete from 表名 where 条件;

mysql基本操作(三)-多表记录操作和运算符优先级