CITY表: Field Type ID number NAME VARCHAR2(17) COUNTRYCODE VARCHAR2(3) DISTRICT VARCHAR2(20) POPULATION number 1.Query all columns for all American cit ...
CITY表:
Field | Type |
ID | number |
NAME | VARCHAR2(17) |
COUNTRYCODE | VARCHAR2(3) |
DISTRICT | VARCHAR2(20) |
POPULATION | number |
1.Query all columns for all American cities in the CITY table with populations larger than 100000
. The CountryCode for America is USA
.
select * from CITY where POPULATION>=100000 and COUNTRYCODE='USA';
2.Query the NAME field for all American cities in the CITY table with populations larger than 120000
. The CountryCode for America is USA
.
select Name from CITY where COUNTRYCODE ='USA' and POPULATION>=120000;
3.Query all columns (attributes) for every row in the CITY table.
select * from CITY;
4.Query all columns for a city in CITY with the ID 1661
.
select * from CITY where ID =1661;
5.Query all attributes of every Japanese city in the CITY table. The COUNTRYCODE for Japan is JPN
.
select * from CITY where COUNTRYCODE='JPN';
6.Query the names of all the Japanese cities in the CITY table. The COUNTRYCODE for Japan is JPN
.
select NAME from CITY where COUNTRYCODE='JPN'
7.Query a count of the number of cities in CITY having a Population larger than 10,000.
select count(NAME) from CITY where POPULATION>100000;
8.Query the total population of all cities in CITY where District is California.
select sum(POPULATION) from CITY where DISTRICT ='California';
9.Query the average population of all cities in CITY where District is California.
select avg(POPULATION) from CITY where DISTRICT='California';
10.Query the average population for all cities in CITY, rounded down to the nearest integer.
select ROUND(avg(POPULATION),0) from CITY;
11.Query the sum of the populations for all Japanese cities in CITY. The COUNTRYCODE for Japan is JPN.
select sum(POPULATION) from CITY where COUNTRYCODE='JPN';
12.Query the difference between the maximum and minimum populations in CITY.
select max(POPULATION)-min(POPULATION) from CITY;
13.
STATION表:
Field | Type |
ID | number |
CITY | VARCHAR2(21) |
STATE | VARCHAR2(2) |
LAT_N | number |
LONG_W | number |
1.Query a list of CITY and STATE from the STATION table.
select CITY,STATE from STATION;
2.Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer.
從 STATION 查詢具有偶數 ID 號的城市的 CITY 名稱列表。 以任意順序列印結果,但從答案中排除重覆項。
select DISTINCT(CITY) from STATION where mod(ID,2)=0;
3.Find the difference between the total number of CITY entries in the table and the number of distinct CITY entries in the table.
求表中 CITY 條目總數與表中不同 CITY 條目數之間的差值。
select COUNT(CITY)-COUNT(DISTINCT(CITY)) from STATION;
4.Query the two cities in STATION with the shortest and longest CITY names, as well as their respective lengths (i.e.: number of characters in the name). If there is more than one smallest or largest city, choose the one that comes first when ordered alphabetically.
用最短和最長的 CITY 名稱查詢 STATION 中的兩個城市,以及它們各自的長度(即:名稱中的字元數)。 如果有多個最小或最大的城市,請選擇按字母順序排列的第一個城市。
方法1: where子句+limit
select CITY,length(CITY) from STATION where length(CITY)>=ALL(select length(CITY) from STATION) or length(CITY)<=ALL(select length(CITY) from STATION) order by 2 desc,1 limit 2;
解題思路:
方法2:union+limit
(select CITY,length(CITY) from STATION order by 2 desc,1 desc limit 1) union (select CITY,length(CITY) from STATION order by 2,1 limit 1);
解題思路:兩個表組合。
5.Query the list of CITY names starting with vowels (i.e., a
, e
, i
, o
, or u
) from STATION. Your result cannot contain duplicates.
從 STATION 查詢以母音開頭的 CITY 名稱列表(即 a.e.i.o 或 u)。 您的結果不能包含重覆項。
select DISTINCT(CITY) from STATION where CITY LIKE'a%' or CITY LIKE'e%' or CITY LIKE'i%' or CITY LIKE'o%' or CITY LIKE'u%';
6.Query the list of CITY names ending with vowels (a, e, i, o, u) from STATION. Your result cannot contain duplicates.
從 STATION 查詢以母音結尾的 CITY 名稱列表(即 a.e.i.o 或 u)。 您的結果不能包含重覆項。
select DISTINCT(CITY) from STATION where CITY LIKE '%a' or CITY LIKE '%e' or CITY LIKE '%i' or CITY LIKE '%o' or CITY LIKE '%u';
7.Query the list of CITY names from STATION which have vowels (i.e., a, e, i, o, and u) as both their first and last characters. Your result cannot contain duplicates.
從 STATION 查詢以母音開頭和結尾的 CITY 名稱列表(即 a.e.i.o 或 u)。 您的結果不能包含重覆項。
select DISTINCT(CITY) from STATION where (CITY LIKE '%a' or CITY LIKE '%e' or CITY LIKE '%i' or CITY LIKE '%o' or CITY LIKE '%u') and (CITY LIKE'a%' or CITY LIKE'e%' or CITY LIKE'i%' or CITY LIKE'o%' or CITY LIKE'u%');
8.Query the list of CITY names from STATION that do not start with vowels. Your result cannot contain duplicates.
從 STATION 查詢不能以母音開頭的 CITY 名稱列表(即 a.e.i.o 或 u)。 您的結果不能包含重覆項。
select DISTINCT(CITY) from STATION where CITY NOT LIKE 'a%' and CITY NOT LIKE 'e%' and CITY NOT LIKE 'i%' and CITY NOT LIKE 'o%' and CITY NOT LIKE 'u%';
9.Query the list of CITY names from STATION that do not end with vowels. Your result cannot contain duplicates.
從 STATION 查詢不能以母音結尾的 CITY 名稱列表(即 a.e.i.o 或 u)。 您的結果不能包含重覆項。
select DISTINCT(CITY) from STATION where CITY NOT LIKE '%a' and CITY NOT LIKE '%e' and CITY NOT LIKE '%i' and CITY NOT LIKE '%o' and CITY NOT LIKE '%u';
10.Query the list of CITY names from STATION that either do not start with vowels or do not end with vowels. Your result cannot contain duplicates.
從 STATION 查詢不以母音開頭或不以母音結尾的 CITY 名稱列表。 您的結果不能包含重覆項。
select DISTINCT(CITY) from STATION where (CITY NOT LIKE 'a%' and CITY NOT LIKE 'e%' and CITY NOT LIKE 'i%' and CITY NOT LIKE 'o%' and CITY NOT LIKE 'u%') or (CITY NOT LIKE '%a' and CITY NOT LIKE '%e' and CITY NOT LIKE '%i' and CITY NOT LIKE '%o' and CITY NOT LIKE '%u');
11.Query the list of CITY names from STATION that do not start with vowels and do not end with vowels. Your result cannot contain duplicates.
從 STATION 查詢不以母音開頭和不以母音結尾的 CITY 名稱列表。 您的結果不能包含重覆項。
select DISTINCT(CITY) from STATION where (CITY NOT LIKE 'a%' and CITY NOT LIKE 'e%' and CITY NOT LIKE 'i%' and CITY NOT LIKE 'o%' and CITY NOT LIKE 'u%') and (CITY NOT LIKE '%a' and CITY NOT LIKE '%e' and CITY NOT LIKE '%i' and CITY NOT LIKE '%o' and CITY NOT LIKE '%u');
12.Query the following two values from the STATION table:
The sum of all values in LAT_N rounded to a scale of 2 decimal places.
The sum of all values in LONG_W rounded to a scale of 2 decimal places.
select ROUND(sum(LAT_N),2),ROUND(sum(LONG_W),2) from STATION;
13.Query the sum of Northern Latitudes (LAT_N) from STATION having values greater than 38.7880 and less than 137.2345. Truncate your answer to 4 decimal places.
select ROUND(sum(LAT_N),4) from STATION where LAT_N>38.7880 and LAT_N<137.2345;
14.Query the greatest value of the Northern Latitudes (LAT_N) from STATION that is less than137.2345 . Truncate your answer to 4 decimal places.
select ROUND(max(LAT_N),4) from STATION where LAT_N<137.2345;
15.Query the Western Longitude (LONG_W) for the largest Northern Latitude (LAT_N) in STATION that is less than 137.3245. Round your answer to 4 decimal places.
select ROUND(LONG_W,4) from STATION where LAT_N<137.2345 order by LAT_N desc limit 1;
16.Query the smallest Northern Latitude (LAT_N) from STATION that is greater than 38.7880. Round your answer to 4 decimal places.
STUDENTS表:
Field | Type |
ID | INTEGER |
Name | String |
Maks | INTEGER |
1.Query the Name of any student in STUDENTS who scored higher than Marks. Order your output by the last three characters of each name. If two or more students both have names ending in the same last three characters (i.e.: Bobby, Robby, etc.), secondary sort them by ascending ID.
查詢 STUDENTS 中任何得分高於 75 的學生的姓名。 按每個名稱的最後三個字元對輸出進行排序。 如果兩個或多個學生的名字都以相同的最後三個字元結尾(即:Bobby.Robby 等),則按 ID 升序對他們進行二次排序。
select Name from STUDENTS where Marks>75 order by right(Name,3),ID;
解題思路,按照每個名字的最後三個字元排序,order by 和right函數結合使用。
Employee表:
Field | Type |
employee_id | INTEGER |
name | String |
months | INTEGER |
salary | INTEGER |
1.Write a query that prints a list of employee names (i.e.: the name attribute) from the Employee table in alphabetical order.
select name from Employee order by name;
2.Write a query that prints a list of employee names (i.e.: the name attribute) for employees in Employee having a salary greater than per month who have been employees for less than months. Sort your result by ascending employee_id.
編寫一個查詢,列印員工姓名列表(即:名稱屬性),用於 Employee 中薪水大於每月且工作時間少於幾個月的員工。 按employee_id 升序對結果進行排序。
select name from Employee where salary>2000 and months<10 order by employee_id;
3.We define an employee's total earnings to be their monthly salary*months worked, and the maximum total earnings to be the maximum total earnings for any employee in the Employee table. Write a query to find the maximum total earnings for all employees as well as the total number of employees who have maximum total earnings. Then print these values as 2 space-separated integers.
我們將員工的總收入定義為他們的月薪*工作月數,最大總收入定義為 Employee 表中任何員工的最大總收入。 編寫查詢以查找所有員工的最大總收入以及擁有最大總收入的員工總數。 然後將這些值列印為 2 個空格分隔的整數。
select salary*months as earning,count(name) from Employee group by earning order by earning desc limit 1;
4.