设为首页 收藏本站
查看: 485|回复: 0

[经验分享] Mysql-DML简介(初学者用)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-23 10:17:27 | 显示全部楼层 |阅读模式
以下这张图是MySQL服务当中经过的一些组件介绍。还是比较详细的,所以此图经常拿来看看也能对MySQL的整个架构加深点印象。

QQ截图20151123101719.png


下面来介绍介绍这张图当中的其中一个点 “SQL Interface(数据库接口)- DML”。

通俗的来说,外部要访问内部数据就不得不用此接口的语句来对数据库内的数据进行操作,

语句也分为很多种类,有DDL(数据库定义语句)DML(数据库操作语句)等。操作语句不外乎就是增删查改。分为以下几类:


INSERT

    [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE      col_name=expr
        [, col_name=expr] ... ]

    [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE      col_name=expr
        [, col_name=expr] ... ]

    [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE      col_name=expr
        [, col_name=expr] ... ]

DELETE

Single-table syntax:

    [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

Multiple-table syntax:

    [LOW_PRIORITY] [QUICK] [IGNORE]    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]

SELECT

      [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]    select_expr [, select_expr ...]
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]        export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]

UPDATE

Single-table syntax:

    [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

Multiple-table syntax:

UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]

语法解释

[LOW_PRIORITY | DELAYED | HIGH_PRIORITY]

存储引擎为MyISAM及MEMORY 则执行优先级 ->读->写->低优先级->高优先级->读->写->

默认为低优先级  -  my.cnf配置参数生效 low_priority_updates=1 | 临时参数生效 mysqld --low-priority-updates=1

[IGNORE]

判断是否存在,存在不插入,否则插入

[ON DUPLICATE KEY UPDATE]

根据键或索引来更新字段值

[WHERE where_condition]

条件判断

[GROUP BY]

根据SELECT字段来分组筛选排序

[ORDER BY]

字段筛选排序

[LIMIT]

限定行 | [offset] 行偏移量

[ASC | DESC]

ASC 升序排序 DESC 降序排序

[HAVING]

针对于GROUP BY筛选出的数据进行条件判断

[PROCEDURE]

存储过程

[SQL_CACHE | SQL_NO_CACHE]

是否使用缓存

query_cache_type 这个可以被设置为 (只能是数字) 选项  含义  

0  (OFF, 不缓存或重新得到结果)  

1  (ON, 缓存所有的结果,除了 SELECT SQL_NO_CACHE ... 查询)  

2  (DEMAND, 仅缓存 SELECT SQL_CACHE ... 查询)




SELECT values_to_display

FROM table_name

WHERE expression

GROUP BY how_to_group

HAVING expression

ORDER BY how_to_sort

LIMIT row_count

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142512-1-1.html 上篇帖子: 用SQLyog连mysql的部分操作不能同步到从库 下篇帖子: mysql数据库设计以及sql语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表