SQL SELECT TOP(SQL选择顶部)
SQL中的 SELECT TOP 语句显示从数据库表中返回的有限记录或行数。语句中的TOP子句指定了返回的行数。
它在输出中显示来自表中的前N行。当数据库表中存储了成千上万条记录时,可以使用该子句。
让我们举一个简单的例子: 如果一个名为Student的表中存储了大量关于学生的数据,使用SELECT TOP语句可以确定从给定表中检索多少学生数据。
注意:并非所有的数据库系统都支持使用TOP关键字选择有限数量的记录。Oracle支持ROWNUM关键字,而MySQL支持LIMIT关键字。
SQL中TOP子句的语法
SELECT TOP number | percent column_Name1, column_Name2, ....., column_NameN FROM table_name WHERE [Condition] ;
在语法中, 数字 表示从顶部显示的行数,column_Name表示我们想要在输出中显示的列的记录。我们还可以使用WHERE子句指定条件。
SQL中TOP子句的示例
以下四个SQL示例将帮助您了解如何在查询中使用数字和百分比。
示例1: 在此示例中,我们有一个名为 Cars 的表,具有三个列:
Car Name | Car Color | Car Cost |
---|---|---|
Hyundai Creta | White | 10,85,000 |
Hyundai Venue | White | 9,50,000 |
Hyundai i20 | Red | 9,00,000 |
Kia Sonet | White | 10,00,000 |
Kia Seltos | Black | 8,00,000 |
Swift Dezire | Red | 7,95,000 |
- 假设您想要显示上表中的前三个车辆的名称和颜色。要做到这一点,您需要在SQL中键入以下查询:
SELECT TOP 3 Car_Name, Car_Color FROM Cars;
这个查询在屏幕上显示以下表格:
Car_Name | Car_Color |
---|---|
Hyundai Creta | White |
Hyundai Venue | White |
Hyundai i20 | Red |
示例2: 在这个例子中,我们有一个名为 Student 的表,包含三列:
Stu_ID | Stu_Name | Stu_Marks |
---|---|---|
1001 | Abhay | 85 |
1002 | Ankit | 75 |
1003 | Bheem | 60 |
1004 | Ram | 79 |
1005 | Sumit | 80 |
- 假设你想要在上表结果中显示前四个学生的详细信息。要做到这一点,你需要在SQL中键入以下查询:
SELECT TOP 4 * FROM Student;
这个查询在SQL输出中在屏幕上显示以下表格:
Stu_ID | Stu_Name | Stu_Marks |
---|---|---|
1001 | Abhay | 85 |
1002 | Ankit | 75 |
1003 | Bheem | 60 |
1004 | Ram | 79 |
示例3: 在此示例中,我们有一个名为 Employee 的表,它有四列:
Emp_Id | Emp_Name | Emp_Salary | Emp_City |
---|---|---|---|
201 | Abhay | 25000 | Goa |
202 | Ankit | 45000 | Delhi |
203 | Bheem | 30000 | Goa |
204 | Ram | 29000 | Goa |
205 | Sumit | 40000 | Delhi |
- 假设,您想显示上表中城市为Goa的前四名员工的详细信息。要做到这一点,您需要在SQL中键入以下查询:
SELECT TOP 4 * FROM Employee WHERE Emp_City = Goa ;
这个查询在SQL输出中在屏幕上显示如下表:
Emp_Id | Emp_Name | Emp_Salary | Emp_City |
---|---|---|---|
201 | Abhay | 25000 | Goa |
203 | Bheem | 30000 | Goa |
204 | Ram | 29000 | Goa |
示例4: 在这个例子中,我们有一个名为 Bikes 的表格,有三列:
Bike_Name | Bike_Color | Bike_Cost |
---|---|---|
KTM DUKE | Black | 185,000 |
Royal Enfield | Black | NULL |
Pulsar | Red | 90,0000 |
Apache | White | NULL |
Livo | Black | 80,000 |
KTM RC | Red | 195,000 |
- 假设你想从上面的表中显示50%的数据。为了做到这一点,您需要在SQL中键入以下查询:
SELECT TOP 50 PERCENT * FROM Bikes;
这个查询在屏幕上显示以下表格:
Bike_Name | Bike_Color | Bike_Cost |
---|---|---|
KTM DUKE | Black | 185,000 |
Royal Enfield | Black | NULL |
Pulsar | Red | 90,0000 |
MySQL中LIMIT子句的语法
SELECT column_Name1,column_Name2, ....., column_NameN FROM table_name LIMIT value;
在语法中,我们必须在LIMIT关键字后指定值。该值表示要在输出中显示的从顶部开始的行数。
MySQL中LIMIT子句的示例
以下SQL示例将帮助您了解如何在查询中使用LIMIT子句。在此示例中,我们有一个名为 Cars 的表,其中包含三列:
Car Name | Car Color | Car Cost |
---|---|---|
Hyundai Creta | White | 10,85,000 |
Hyundai Venue | White | 9,50,000 |
Hyundai i20 | Red | 9,00,000 |
Kia Sonet | White | 10,00,000 |
Kia Seltos | Black | 8,00,000 |
Swift Dezire | Red | 7,95,000 |
- 假设你想在MySQL中使用LIMIT子句显示Car的前三条记录。为了做到这一点,你需要在MySQL中输入以下查询:
SELECT * FROM Cars LIMIT 3;
此查询在屏幕上显示以下表格:
Car Name | Car Color | Car Cost |
---|---|---|
Hyundai Creta | White | 10,85,000 |
Hyundai Venue | White | 9,50,000 |
Hyundai i20 | Red | 9,00,000 |
在Oracle数据库的WHERE子句中,ROWNUM关键字的语法
SELECT column_Name1,column_Name2, ....., column_NameN FROM table_name WHERE ROWNUM <= value;
在语法中,我们必须在WHERE子句中为ROWNUM赋值。该值表示从顶部显示的行数。
在Oracle中使用WHERE子句中ROWNUM关键字的示例
下面的SQL示例将帮助您了解如何在查询中使用ROWNUM关键字。在此示例中,我们有一个名为 Cars 的表,有三列:
Car Name | Car Color | Car Cost |
---|---|---|
Hyundai Creta | White | 10,85,000 |
Hyundai Venue | White | 9,50,000 |
Hyundai i20 | Red | 9,00,000 |
Kia Sonet | White | 10,00,000 |
Kia Seltos | Black | 8,00,000 |
Swift Dezire | Red | 7,95,000 |
- 假设您想使用Oracle中的ROWNUM关键字显示Car的前三条记录。要做到这一点,您必须在Oracle数据库中输入以下查询:
SELECT * FROM Cars WHERE ROWNUM <= 3;
此查询在屏幕上显示以下表格:
Car Name | Car Color | Car Cost |
---|---|---|
Hyundai Creta | White | 10,85,000 |
Hyundai Venue | White | 9,50,000 |
Hyundai i20 | Red | 9,00,000 |