当前位置 : 主页 > 网络推广 > seo >

3.检索数据-SELECT语句

来源:互联网 收集:自由互联 发布时间:2021-06-16
本章将介绍如何使用SELECT语句从表中检索一个或多个数据列。 1.SELECT语句 SQL语句是由简单的英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。大概,

本章将介绍如何使用SELECT语句从表中检索一个或多个数据列。

1.SELECT语句

SQL语句是由简单的英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。大概,最经常使用的SQL语句就是SELECT语句了。它的用途是从一个或多个表中检索信息。

为了使用SELECT检索表数据,必须至少给出两条信息——想选择什 么,以及从什么地方选择。

1.1 检索单个列

输入:

SELECT  receive_count 
FROM   products;

输出 :

分析

从products中检索要给名为receive_count的列。
如果上的SELECT 语句查询到的是没有过滤的且没有排序的数据。

??SQL结束语句必须要加分号。

SQL语句大小写

SQL语句是不区分大小写的,许多SQL开发人员喜欢对所有的SQL关键字使用大写,而对多有的列和表名使用小写,这样做使代码更易于阅读和调试。

1.2 检索多个列

SELECT关键字后给出多个列明,列名之间必须以逗号分割。

?? 当心逗号 在选择多个列时,一定要在列名之间加上逗号,但最后一个列名不加,如果最后一个列名加上逗号,将出现错误。

使用SELECRT 语句从products表中选择3列:

输入:

SELECT  uid,receive_count,profile  
FROM  products

输出:

分析:

这个例子中指定了3个列名,列名之间用逗号分开。

1.3 检索所有列

使用*(通配符)来达到。

输入:

SELECT  *  FROM  products

分析: 如果给定一个通配符(*),则返回表中所有列。列的顺序一般是出现在表定义中出现的顺序。但有时候并不是这样,表的模式的变化(如添加或者删除列)可能会导致顺序的变化

?使用通配符

一般,除非你确实需要表中的每个列,否则最好不要使用*通配符。因为这会降低检索和应用程序的性能。

1.4 检索不同的列

DISTINCT可以实现检索出的数据是去重的

输入:

SELECT  DISINCT   vend_id  
FROM   products

? 不能部分使用DISTINCT

DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id,prod_price,除非指定的两个列的类型都不同,否则所有列都将被检索出来。

1.5 限制结果

LIMIT子句

SELECT语句返回所有匹配的行,他们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。

输入:

SELECT profile  
FROM  products LIMIT 5

输出

分析:
此语句使用SELECT语句检索单个列。LIMIT 5 指示MySQL返回不多于5行。

指定检索的开始行和行数可以得出下一个5行。

输入:

SELECT   profile   
FROM   products  LIMIT   5,5

输出:

分析:
LIMIT 5,5 指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

?行0

索出来的第一行为行0而不是行1。因此,LIMIT 1,1将检索出第二行而不是第一行。

??在行数不够时

LIMIT中指定要检索的行数为检索的最大行数,如果没有足够的行,MySQL将只返回它能够返回的那么多行。

?? MYSQL 5支持LIMIT 的另一种替代语法 LIMIT 4 OFFSET 3 意为从行3开始取4行

1.6 使用完全限定的表名

输入:

SELECT products.pro_name 
FROM  products;

这是一条完全限定的列名。

表名也可以完全限定:

输入:

SELECT products.pro_name   
FROM crashcourse.products;

这条语句在功能上也等于刚使用的那条语句(当然,假定products 表确实位于crashcourse数据库中)。

正如以后章节所介绍的那样,有一些情形需要完全限定名。现在, 需要注意这个语法,以便在遇到时知道它的作用。

1.7 小结

本章学习了如何使用SQL的SELECT语句来检索单个表列、多个表列 以及所有表列

网友评论