mysql语句boll线_MySQL语法二:数据操纵语句

数据操纵语句DML(SELECT,DELETE,UPDATE,INSERT)

一、

数据操纵语句是对数据表中的内容进行操作。比如对某个表中的某条记录或者多条记录进行增删改查操作。

一)、查询

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, ...

[INTO OUTFILE 'file_name' export_options

| INTO DUMPFILE 'file_name']

[FROM table_references

[WHERE where_definition]

[GROUP BY {col_name | expr | position}

[ASC | DESC], ... [WITH ROLLUP]]

[HAVING where_definition]

[ORDER BY {col_name | expr | position}

[ASC | DESC] , ...]

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

[PROCEDURE procedure_name(argument_list)]

[FOR UPDATE | LOCK IN SHARE MODE]]

现在对上面这条语法格式进行部分解读。

1、[ALL | DISTINCT | DISTINCTROW ]

ALL, DISTINCT和DISTINCTROW选项指定重复的行是否应该被返回。如果这些选项没有被给定,则默认值为ALL(所有的匹配行被返回)。DISTINCT和DISTINCTROW是同义词,用于指定结果集合中的重复行应被删除。

需要注意:DISTINCT 只能放在所有字段的开头,当然如果和其他函数一起使用位置则不限。

例1:select DISTINCT score, id from grade;

例2:select id, count(DISTINCT score) from grade;

还有需要注意的。DISTINCT 后面如果跟两个字段那么表示,当这两的字段的值都一样时,才算重复记录,否则不算。

2、select_expr, ...

每一个select_expr 表示你想要查询的列。

3、FROM table_references 表示你想要从哪个表查询。

4、WHERE where_difinition 表示被选择的行必须满足这个条件。

5、[GROUP BY {col_name | expr | position}

分组统计,需要注意的GROUP BY 和 DISTINCT 一样,如果GROUP BY 后面有两个字段的话,得两个字段的值一样才会认为是同一个分组。

6、HAVING

HAVING 子句是筛选分组后的数据,处理的是筛选后得到的结果集,而 WHERE 是筛选分组前的数据,处理的表或视图。

①、HAVING子句基本上是最后使用,位于被发送给客户端的条目之前,没有进行优化。(LIMIT用于HAVING之后。)

②、SQL标准要求HAVING必须引用GROUP BY子句中的列或用于总计函数中的列.

③、标准SQL工作性质具有优先权,因此如果一个HAVING 后面的列名既被用于GROUP BY,又被用作输出列清单中的起了别名的列,则优先权被给予GROUP BY列中的列。

④、HAVING不能用在应该被用于WHERE子句的条目。例如,不能编写如下语句:

mysql> SELECT col_name FROM tbl_name HAVING col_name > 0; col_name > 0 应该是用在WHERE后面的,而不是HAVING。

说简单点就是 HAVING 后面应该跟有聚合函数的条件表达式,而WHERE 后面不能跟有聚合函数的条件表达式。???

⑤、对于HAVING或ORDER BY子句中的子查询,MySQL也会在外部选择清单中寻找列名称。

7、ORDER BY

ORDER BY 用于将筛选的结果集进行排序。如果ORDER BY 后面有的多于一个字段,那么先按照第一个字段进行排序,如果的第一个字段的值相等,那么按照第二个字段的值进行排序,如果第二个字段的也相等,则按第三个。。。。。以此类推。直至最后一个字段。

8、LIMIT

LIMIT子句可以被用于限制被SELECT语句返回的行数。

二)、删除

三)、更新

二、JOIN语法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值