必须会的SQL语句(六) 数据查询

一、SELECT语句

SQL语句中最基本的语句就是SELECT语句,用来从表中查询数据。

1. 查询所有数据

SELECT * FROM table_name;

其中,*表示所有字段,table_name表示查询的表名。

2. 查询指定字段的数据

SELECT field1, field2, ... FROM table_name;

其中,field1, field2表示查询的字段名,table_name表示查询的表名。

3. 查询不重复的数据

SELECT DISTINCT field FROM table_name;

其中,DISTINCT用来去除重复数据,field表示查询的字段名,table_name表示查询的表名。

4. 查询前n条数据

SELECT * FROM table_name LIMIT n;

其中,LIMIT用来限制查询数据的条数,n表示查询的前n条记录,table_name表示查询的表名。

5. 查询指定范围的数据

SELECT * FROM table_name WHERE field BETWEEN value1 AND value2;

其中,WHERE用来筛选符合条件的数据,BETWEEN用来筛选在某个范围内的数据,value1, value2表示范围的起始值和结束值,field表示查询的字段名,table_name表示查询的表名。

二、ORDER BY语句

ORDER BY语句用来按照指定字段对查询结果进行排序。

1. 按照单个字段排序

SELECT * FROM table_name ORDER BY field;

其中,ORDER BY用来指定排序方式,field表示排序的字段名,table_name表示查询的表名。

2. 按照多个字段排序

SELECT * FROM table_name ORDER BY field1, field2;

其中,field1, field2表示按照这两个字段排序,table_name表示查询的表名。

3. 按照字段降序排序

SELECT * FROM table_name ORDER BY field DESC;

其中,DESC表示按照降序排序,field表示排序的字段名,table_name表示查询的表名。

三、GROUP BY语句

GROUP BY语句根据字段对查询结果分组。

1. 按照单个字段分组

SELECT field, COUNT(*) FROM table_name GROUP BY field;

其中,COUNT(*)用来统计各个字段的记录数,field表示分组的字段名,table_name表示查询的表名。

2. 按照多个字段分组

SELECT field1, field2, COUNT(*) FROM table_name GROUP BY field1, field2;

其中,field1, field2表示按照这两个字段分组,table_name表示查询的表名。

四、JOIN查询

JOIN查询用来查询来自多个表的数据。

1. INNER JOIN

SELECT * FROM table1 INNER JOIN table2 ON table1.field = table2.field;

其中,INNER JOIN表示使用内联接,table1, table2表示查询的表名,table1.field = table2.field表示连接的字段。

2. LEFT JOIN

SELECT * FROM table1 LEFT JOIN table2 ON table1.field = table2.field;

其中,LEFT JOIN表示使用左连接,table1, table2表示查询的表名,table1.field = table2.field表示连接的字段。

3. RIGHT JOIN

SELECT * FROM table1 RIGHT JOIN table2 ON table1.field = table2.field;

其中,RIGHT JOIN表示使用右连接,table1, table2表示查询的表名,table1.field = table2.field表示连接的字段。

五、子查询

子查询是查询语句嵌套在另一个查询语句中的查询。

1. SELECT语句中使用子查询

SELECT field1, field2 FROM table_name WHERE field1 = (SELECT field1 FROM table_name WHERE field2 = value);

其中,SUBSELECT用来指定子查询,WHERE field1 = (SELECT field1 FROM table_name WHERE field2 = value)表示子查询部分,field1, field2表示查询的字段名,table_name表示查询的表名。

2. FROM语句中使用子查询

SELECT * FROM (SELECT * FROM table_name WHERE field = value) AS subquery WHERE subquery.field2 = value2;

其中,AS用于将子查询命名,subquery表示子查询的名称,subquery.field2 = value2表示对子查询中的数据进行筛选,table_name表示查询的表名。

六、UNION查询

UNION查询可以将来自两个或多个 SELECT 语句的结果合并成同一个结果集。

SELECT field1, field2 FROM table_name1 UNION SELECT field1, field2 FROM table_name2;

其中,UNION用于将两个查询的结果合并成同一个结果集,查询结果中的字段数量和类型必须相同,table_name1, table_name2表示两个查询的表名。

结语

以上就是SQL语句中比较基础和常用的查询语句,借助这些语句可以完成大部分的数据库查询操作。

数据库标签