mysql工作中怎么用 mysql使用流程( 二 )


在使用mysql使用过程中,会经常出现错误 , 错误信息都会带有一个编码,具体编码代表什么意思 , 就需要perror来查看 。用法很简单:
举个例子,我们故意写错一个查询语句,例如:
现在有一个编码1054 , 我们可以用perror查看下
结果跟用工具显示的内容差不多,当然第三方工具也会显示错误信息 。
本章做了一个常用工具的使用汇总,并举例说明了基本用法,熟练使用是每个运维人员必修内容,当然还有很多参数没有一一列举,可以参考相关帮助文档 。
MYSQL使用基础、进阶分享MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品 , 是最流行的关系型数据库管理系统之一 。
端口是3306 。
表很多时,使用linux脚本,需要根据需要修改一下:
和创建一样,可以加上if exists
可两篇文章:
如:
用于在已有的表中添加、删除或修改列 。
添加 ADD

默认是添加到最后,但可以指定位置 。FIRST:添加最前
AFTER 字段名:添加指定字段之后
例子:
删除 DROP
修改 MODIFY 主要修改原列的类型或约束条件 同样可以用FIRST和AFTER 字段名,代表的是修改到哪里 。
修改字段名 CHANGE
可以把表2的数据复制到表1中,但不能复制约束性条件。
单行
多行,注意只有一个VALUES:
不写(行1, 行2...)这一部分的话,默认一一对应
除了以上方法外,还可以用SET为每一行附上相应的值 。
假如没有筛选的话,就给全部都修改了 。可以用WHERE筛选 。
假如没有筛选的话 , 就给全部删除了。相当于清空 。
清空
先把表删除,然后再建一个 。与DELETE FROM相比,TRUNCATE的效率更快,因为DELETE FROM是把记录逐条删除的 。
查询执行的顺序
FROM -- WHERE -- SELECT -- GROUP BY -- HAVING -- ORDER BY -- LIMIT
注意
当数据很大,上百万的时候,使用LIMIT ... OFFSET ..的方式进行分页十分浪费资源且耗时长 。最好是结合WHERE使用,如:
REGEXP 使用正则表达进行匹配 。查询时,需要搭配WHERE或HAVING使用。
【mysql工作中怎么用 mysql使用流程】两个表之间有交集且要用到两个表的数据时,可以使用内连接查询 。
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配 。如果右表中没有匹配,则结果为 NULL 。
用法:
RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配 。如果左表中没有匹配,则结果为 NULL 。把LEFT JOIN的表1、表2调换顺序,就是REGHT JOIN。
FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.相当于结合了 LEFT JOIN 和 RIGHT JOIN 的结果 。
但MySQL中不支持 FULL OUTER JOIN。
即SELECT嵌套 。
IN 一个查询结果作为另一个查询的条件 。如:
EXISTS 用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False 。True时执行 。如:
索引的本质是一种排好序的数据结构 。利用索引可以提高查询速度 。
常见的索引有:
MySQL通过外键约束来保证表与表之间的数据的完整性和准确性 。外键的使用条件:
外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作 。
对已有的两个表增加外键 比如:主表为A , 子表为B , 外键为aid,外键约束名字为a_fk_b
为子表添加一个字段,当做外键
为子表添加外键约束条件

推荐阅读