mysql select语法_MySql SELECT 语法

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

[PARTITION partition_list]

[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]]

select被使用来得到从一个或者多个表中挑选出来的行,可以包含union语句和子查询。

select最常见的子句如下:

每一个select_expr表明想要获取的一个列。必须至少有一个select_expr。

table_references表明从哪个表或者哪些表来获取行。语法会在join语法中描述。

从mysql 5.6.2开始,select支持明确的分区查询,在一个table_reference中接着表名后,使用有一个分区或者子分区的列表的partition关键字。在这种情况下,只有分区列表中的行会被查询,而表的其他分区会被忽略。

在mysql 5.6.6和之后,select ... partition from table使用会执行表级别的锁(因此分区锁)的存储引擎如myisam会只锁partition选项中指定的分区或者子分区。

where子句,如果给出的话,表明行为了被选择必须满足的条件。where_condition是一个表达式,每一个被选择的行会得到true。如果没有where子句,语句会查询出所有的行。

在where表达式里,可以使用mysql提供的除了聚合函数外的所有的函数和操作符。

select也可以使用来获取行计算,而且不使用任何表。

例如:select 1 + 1;2

当没有使用任何表时,也允许使用dual作为一个虚假的表名。

例如:select 1 + 1 from dual;2

dual纯粹为了需要所有的查询语句都包含from和其它可能的子句时方便。mysql可能忽略这个子句。mysql不需要from dual,如果没有使用任何表的话。

一般来讲,子句必须严格按照语法描述中显示的顺序使用。例如,having子句必须在任意的group by子句之后,和任意的order by之后。例外是into子句,into子句可以像语法描述中显示的一样显示,也可以立即跟随在select_expr列表后。

select_expr术语列表包含了表明获取哪些列的查询列表。术语指定一个列或者表达式或者使用*缩写。

只有一个没有限制的*的查询列表当做查询所有表的所有列的缩写。

select * from t1 inner join t2 ...

tbl_name.*可以使用作为一个有限制的缩写,来从这个定义的表中查询所有列。

select t1.*, t2.* from t1 inner join t2 ...

在查询列表里使用没有限制的*和其它项可能会产生语法错误。为了避免这个问题,可以使用tbl_name.*来引用。

select avg(score), t1.* from t1 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值