MySQL简单查询语句

来源:互联网 发布:网络集成版驱动精灵 编辑:程序博客网 时间:2024/05/20 01:47

SELECT语法结构

SELECT     column_1, column_2, ...FROM    table_1[INNER | LEFT |RIGHT] JOIN table_2 ON conditionsWHERE    conditionsGROUP BY column_1HAVING group_conditionsORDER BY column_1LIMIT offset, length

SELECT语句由以下列表中所述的几个子句组成:


  • SELECT之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
  • FROM指定要查询数据的表或视图。
  • JOIN根据某些连接条件从其他表中获取数据。
  • WHERE过滤结果集中的行。
  • GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。
  • HAVING过滤器基于GROUP BY子句定义的小分组。
  • ORDER BY指定用于排序的列的列表。
  • LIMIT限制返回行的数量。

语句中的SELECT和FROM语句是必须的,其他部分是可选的。

简单的查询语句

在学生表中查询学生的学号和姓名

SELECT stu_id,stu_name FROM student;

查询学生表中所有的信息

SELECT * FROM student;

*表示查询所有的列,但并不是每次都需要表中所有的列,这样写虽然方便但是会增加I/O,降低查询的速度

使用WHERE语句过滤查询结果

如果不使用WHERE子句,只是用SELECT语句就会返回数据表中所有的行,但往往不是所有的行都是需要的,比如想要查找及格的学生的学号和姓名。WHERE子句可以通过设置过滤表达式对结果集进行过滤,只返回需要的行。

WHERE子句中形成过滤表达式的比较运算符

操作符 描述 = 等于,几乎任何数据类型都可以使用它 <>或!= 不等于 < 小于,通常使用数字和日期/时间数据类型 > 大于 <= 小于或等于
=
大于或等于

还有一些有用的运算符可以在WHERE子句中使用来形成复杂的条件,例如:
* BETWEEN选择在给定范围值内的值。
* LIKE匹配基于模式匹配的值。
* IN指定值是否匹配列表中的任何值。
* IS NULL 检查该值是否为NULL。

使用BETWEEN查询所需日期(requiredDate)从2013-01-01到2013-01-31的所有订单

SELECT     orderNumber,requireddate,statusFROM    ordersWHERE requireddate BETWEEN CAST('2013-01-01' AS DATE) AND CAST('2013-01-31' AS DATE);

在mysql中提供了两个通配符,用于LIKE运算符一起使用
* 百分号%通配符允许匹配人和我字符串的零个或多个字符
* 下划线_通配符允许匹配任何单个字符

查询已字母a开头的员工的信息

SELECT employeeNumber,lastname,firstname FROM employees WHERE firstname LIKE 'a%';

为了获取像_2010%这样的数据的时候,需要使用转义,在不指定转义字符的情况下\作为转义的标志
查询包含_20字符串

SELECT productcode,productName FROM products WHERE productcode LIKE '%\_20';

也可以通过ESCAPE指定转义的符号

SELECT productcode,productName FROM products WHERE productcode LIKE '%$_20' ESCAPE '$';
原创粉丝点击