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

SELECT用于恢复从一个或多个表中选择的行,并可以加入UNION语句和子查询。

每个select_expr都指示一个您想要恢复的列, table_references指示行从哪个表或哪些表中被恢复。

简单查询

SELECT columna columnb FROM mytable;

ORDER BY查询

SELECT college, region, seed FROM tournament  ORDER BY region, seed;
SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s;
SELECT college, region, seed FROM tournament  ORDER BY 2, 3;--要以相反的顺序进行分类,应把DESC(降序)关键字添加到ORDER BY子句中的列名称中。默认值为升序;该值可以使用ASC关键词明确地指定。
SELECT a, COUNT(b) FROM test_table ORDER BY a DESC;

GROUP BY查询

SELECT a, COUNT(b) FROM test_table GROUP BY a DESC;
SELECT COUNT(col1) AS col2 FROM t GROUP BY col2 HAVING col2 = 2;-- HAVING不能用于应被用于WHERE子句的条目,不能编写如下语句:
SELECT col_name FROM tbl_name HAVING col_name > 0;
--而应该这么编写
SELECT col_name FROM tbl_name WHERE col_name > 0;--HAVING子句可以引用总计函数,而WHERE子句不能引用:
SELECT user, MAX(salary) FROM users GROUP BY user HAVING MAX(salary)>10;

LIMIT查询

SELECT * FROM tbl LIMIT 10;  # Retrieve rows 0-9;
SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15;--如果要恢复从某个偏移量到结果集合的末端之间的所有的行,您可以对第二个参数是使用比较大的数。
--以下语句可以恢复从第96行到最后的所有行:
SELECT * FROM tbl LIMIT 95,18446744073709551615;

SELECT...INTO OUTFILE

SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此您必须拥有FILE权限,才能使用此语法。file_name不能是一个原有的文件。

SELECT...INTO OUTFILE语句的主要作用是让您可以非常快速地把一个表转储到服务器机器上。如果您想要在服务器主机之外的部分客户主机上创建结果文件,您不能使用SELECT...INTO OUTFILE。在这种情况下,您应该在客户主机上使用比如“mysql –e "SELECT ..." > file_name”的命令,来生成文件。

SELECT...INTO OUTFILE是LOAD DATA INFILE的补语;用于语句的exort_options部分的语法包括部分FIELDS和LINES子句,这些子句与LOAD DATA INFILE语句同时使用。

在下面的例子中,生成一个文件,各值用逗号隔开。这种格式可以被许多程序使用

SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

如果您使用INTO DUMPFILE代替INTO OUTFILE,则MySQL只把一行写入到文件中,不对任何列或行进行终止,也不执行任何转义处理。如果您想要把一个BLOB值存储到文件中,则这个语句是有用的。

UNION

UNION用于把来自许多SELECT语句的结果组合到一个结果集合中,语法如下:

SELECT ...
UNION [ALL | DISTINCT]
SELECT ...
[UNION [ALL | DISTINCT]
SELECT ...]

列于每个SELECT语句的对应位置的被选择的列应具有相同的类型。(例如,被第一个语句选择的第一列应和被其它语句选择的第一列具有相同的类型。)在第一个SELECT语句中被使用的列名称也被用于结果的列名称。

如果您对UNION不使用关键词ALL,则所有返回的行都是唯一的,如同您已经对整个结果集合使用了DISTINCT。如果您指定了ALL,您会从所有用过的SELECT语句中得到所有匹配的行。

您可以在同一查询中混合UNION ALL和UNION DISTINCT。被混合的UNION类型按照这样的方式对待,即DISTICT共用体覆盖位于其左边的所有ALL共用体。DISTINCT共用体可以使用UNION DISTINCT明确地生成,或使用UNION(后面不加DISTINCT或ALL关键词)隐含地生成。

简单例子

(SELECT a FROM tbl_name WHERE a=10 AND B=1)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

ALL, DISTINCT和DISTINCTROW

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

SELECT DISTINCT a FROM table_name;
SELECT COUNT(DISTINCT a) FROM table_name;

转自http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#select

转载于:https://www.cnblogs.com/ggjucheng/archive/2012/11/05/2754757.html

mysql select操作相关推荐

  1. mysql select call_MySQL的SQL语句 - 数据操作语句(1)- CALL 语句

    CALL 语句 1. CALL sp_name([parameter[,...]]) 1. CALL sp_name[()] CALL 语句调用 CREATE PROCEDURE 定义的存储过程. 如 ...

  2. mysql+select+unlock_MySQL的locktables和unlocktables的用法(转载)

    mysql select * from user; ----------------- | id| name| ----------------- |22 | abc| |223 | dabc| | ...

  3. mysql select语法_MySQL SELECT语法(一)SELECT语法详解

    SELECT的语法如下: SELECT[ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT ...

  4. mysql select语句详解_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  5. MySQL数据库-操作基础

    MySQL 官网:https://www.mysql.com/ 文章目录 一.MySQL 常见版本 二.MySQL 安装部署 2.1 源代码编译安装 2.2 mysql服务信息 2.3 MySQL 登 ...

  6. mysql 命令行访问_Mysql 命令行模式访问操作mysql数据库操作

    使用环境 在cmd模式下输入 mysql --version (查看mysql安装的版本). 完整的命令可以通过mysql --help来获取. 本测试使用的Mysql版本是mysql5, 本测试使用 ...

  7. mysql select表达式_MySQL数据库SELECT查询表达式解析

    数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...

  8. mysql select符合查询_数据库select group by 和having语句 多表连接查询 复合查询

    1.SELECT --group by 子句 group by子句按照指定的列column_name对表数据进行分组 group by 后面跟的列也叫分组特性列 使用group by后,能选择的列   ...

  9. mysql备份操作_mysql-数据备份操作

    一 MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异构系统中如Windows. #2. 逻辑备份: 备份的是建表.建库.插入等操作所执行SQL语句,适用 ...

最新文章

  1. python中字符串单引号、双引号、三引号_Python:字符串单引号(‘)、双引号(“)、三单引号(”’)和三双引号(“””)的区别...
  2. Java 动态写轮眼 SharinganJPanel (整理)
  3. c# 中文字符(全角、半角)通用处理
  4. mysql配置文件注解
  5. Docker容器安全性分析
  6. bool函数_PHP变量类型测试函数的使用:一、is_bool的用法
  7. micropython 人脸识别检测_Flask实战!从后台管理到人脸识别,六款优质Flask开源项目介绍...
  8. java 绘制sin函数图像_第11讲 数学软件Mathematica内置函数的使用规则
  9. 全国计算机比赛微课视频,“教学之星”全国总决赛 | 冠军朱琦微课及现场比赛视频...
  10. MacOS13系统升级动态壁纸无法安装解决方法
  11. ARM Cortex-M0系统简介
  12. linux 文件隐藏,Linux系统怎么隐藏文件夹和文件?
  13. 使用阿里字体彩色图标
  14. Android开发之殇
  15. JAVA——从基础学起(五)类和对象
  16. 小新计算器用户使用协议
  17. 数学中最神奇的常数-无理数e
  18. 第14周 oj 1 数组逆序
  19. 类(class)和结构体(struct)的区别
  20. redis系列之——高可用(主从、哨兵、集群)

热门文章

  1. win7系统开机启动出现蓝屏,提示BAD_SYSTEM_CONFIG_INFO
  2. 9Python全栈之路系列之Win字符编码深解
  3. .NET中可空值类型实现原理
  4. Android自动化测试之虚拟机中软件安装方法(四)
  5. sigsuspend sigprocmask函数的用法
  6. c#中泛型参数与object参数导致重写无效。
  7. 合作伙伴常见技术问题集锦
  8. 切图工具优化的几点总结
  9. 【Jmeter】 Report Dashboard 生成html图形测试报告
  10. 将webstorm设置为eclipse风格