mysql 学习笔记4
2016-05-11 20:50
232 查看
mysql 学习笔记4
标签: mysql目录(?)[+]
1. 自然连接
通过MySQL 自己的判断完成连接的过程, 而不需要指定连接条件, mysql使用多个表中的相同字段作为连接条件。内连接 natural join ⟷ inner
join using
左外连接 natural left join ⟷ left
join using
右外连接 natural right join ⟷ right
join using
ps: left join 和 right join 之间是可以相互转化的
支持多表连接查询
小结
这个图片, 传上来就是这个样子, 也不知道该怎么旋转, 如果有人知道怎么弄的话, 恳请指教一下。
2. 重定向
mysql 除了可以将输出结果返回到界面上, 也可以将输出结果写入到文件中。<code class="hljs cs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">select</span> * <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">into</span> outfile xxx <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> ....</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
需要注意的是,他不允许重写已经存在的文件, 但是可以创建新的文件。默认使用’\t’区分字段, 使用’\n’区分记录, 可以修改。
3. 插入数据
使用 insert into 插入数据当插入数据冲突的时候, 可以使用on duplicate key update 进行更新数据
另外需要注意, 我们可以使用select 查询得到的子句的结果来进行插入
default
replace into 用于插入数据, 可以处理主键或者唯一索引冲突问题
load data infile 可以用来设置从文件中导入数据, 以及数据的格式
4. 删除数据
delete from xxx limit nlimit 用来限制记录的数目, 可以与order by 配合使用
支持连接删除, 可以用来模拟外键约束
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">delete</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">from</span> <span class="hljs-constant" style="box-sizing: border-box;">one</span>, <span class="hljs-constant" style="box-sizing: border-box;">two</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> <span class="hljs-constant" style="box-sizing: border-box;">one</span> join <span class="hljs-constant" style="box-sizing: border-box;">two</span> <span class="hljs-command" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">on</span> <span class="hljs-title" style="box-sizing: border-box;">xxx</span> <span class="hljs-title" style="box-sizing: border-box;">where</span> <span class="hljs-title" style="box-sizing: border-box;">xxx</span></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
5. 清空表
truncate 直接将表格删除然后新建一个表, 因而, 他的自动增长索引是从0 开始计算的。而 delete from table 数据删除了, 但是他们的自动增长的索引值不不会变为 0 的。
6. 更新表
replace / insert on duplicate key update条件更新, limit, order by & limit etc
支持多个表同时更新
<code class="hljs sql has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-operator" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">update</span> [one <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">join</span> two <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">on</span> xxx] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">set</span> xxx <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">where</span> xxx</span></code>
相关文章推荐
- mysql 数据库学习笔记 3
- MySQL 数据库学习笔记 2
- mysql开启binlog
- Mysql基础以及CRUD操作
- Mysql常用函数
- golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法
- VS2013链接mysql问题二(基础)
- Ubuntu14.04下MySQL的安装与卸载
- VS2013链接mysql出现的问题一
- mysql互换表中两列数据方法
- Latch导致MySQL Crash
- mysql订单表如何设计?
- mysql 查询某个日期时间段,每天同一时间段的数据
- MySQL按照汉字的拼音排序
- mysql 将指定列的浮点数转化为整数
- mysql workbench 从模型导出表结构
- mysql 存储过程详解
- mysql 修改密码
- Mysql Sql使用二:数据操作(多表)
- mysql 常用命令