连接查询(join)
- 将多个表的字段进行连接,可以指定连接条件。
- -- 内连接(inner join)
- - 默认就是内连接,可省略inner。
- - 只有数据存在时才能发送连接。即连接结果不能出现空行。
- on 表示连接条件。其条件表达式与where类似。也可以省略条件(表示条件永远为真)
- 也可用where表示连接条件。
- 还有 using, 但需字段名相同。 using(字段名)
- -- 交叉连接 cross join
- 即,没有条件的内连接。
- select * from tb1 cross join tb2;
- -- 外连接(outer join)
- - 如果数据不存在,也会出现在连接结果中。
- -- 左外连接 left join
- 如果数据不存在,左表记录会出现,而右表为null填充
- -- 右外连接 right join
- 如果数据不存在,右表记录会出现,而左表为null填充
- -- 自然连接(natural join)
- 自动判断连接条件完成连接。
- 相当于省略了using,会自动查找相同字段名。
- natural join
- natural left join
- natural right join
-
- select info.id, info.name, info.stu_num, extra_info.hobby, extra_info.sex from info, extra_info where info.stu_num = extra_info.stu_id;
导出
- select * into outfile 文件地址 [控制格式] from 表名; -- 导出表数据
-
- load data [local] infile 文件地址 [replace|ignore] into table 表名 [控制格式]; -- 导入数据
- 生成的数据默认的分隔符是制表符
- local未指定,则数据文件必须在服务器上
- replace 和 ignore 关键词控制对现有的唯一键记录的重复的处理
- -- 控制格式
- fields 控制字段格式
- 默认:fields terminated by enclosed by escaped by
- terminated by string -- 终止
- enclosed by char -- 包裹
- escaped by char -- 转义
- -- 示例:
- SELECT a,b,a+b INTO OUTFILE /tmp/result.text
- FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY "
- LINES TERMINATED BY
-
- FROM test_table;
- lines 控制行格式
- 默认:lines terminated by
-
- terminated by string -- 终止
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|