Bài tập sql có lời giải
|

Bài tập câu lệnh SELECT trong SQL – P2

Đây là loạt bài tập sql từ cơ bản tới nâng cao dành cho các bạn sinh viên đang học môn Cơ sở dữ liệu. Lập trình không khó sẽ cùng các bạn đi qua từng phần kiến thức từ lệnh select cơ bản, select nâng cao, select lồng nhau, join,… và còn nhiều hơn thế. Hãy follow lộ trình này và cùng học các kiến thức về sql thông qua series bài tập sql cơ bản này nhé.

Đề bài:

Cho bảng “World” có các trường và một vài giá trị như bảng dưới đây:

name continent area population gdp capital
Algeria Africa 2381741 38700000 207021000000 Algiers
Andorra Europe 468 76098 3222000000 Andorra la Vella
Barbados Caribbean 430 285000 4533000000 Bridgetown
Belize North America 22966 349728 1554000000 Belmopan
Brazil South America 8515767 202794000 2254109000000 Brasília

 

Hãy lần lượt giải các yêu cầu sau:

Câu hỏi về SQL cơ bản

1. Hiển thị các thông tin name, continent và population của tất cả các quốc gia.

SELECT name, continent, population FROM world

2. Hiển thị tên của tất cả các quốc gia có dân số nhiều hơn 200 triệu người.

SELECT name FROM world
WHERE population>200000000

3. Hiển thị tên quốc gia, GDB bình quân đầu người của các quốc gia có dân số nhiều hơn 200 triệu người.

Chú ý: GDP bình quân đầu người = Tổng GDP / Tổng số dân

SELECT name, gdp/population FROM world
  WHERE population > 200000000

4. Hiển thị tên quốc gia, số dân dưới đơn vị (triệu người) của các quốc gia thuộc lục địa(continent)  Nam Mỹ(`South America`).

SELECT name, population/1000000 FROM world
  WHERE continent = 'South America'

5. Hiển thị tên quốc gia, dân số của các nước ‘France’, ‘Germany’ và ‘Italy’

SELECT name,population FROM world
  WHERE name IN ('France','Germany','Italy')

6. Hiển thị thông tin các nước có tên quốc gia chứa cụm từ ‘United’

SELECT name FROM world
  WHERE name LIKE '%United%'

7. Hiển các trường thị tên, dân số và diện tích của các quốc gia có dân số đông(nhiều hơn 250 Triệu dân) hoặc có diện tích lớn(> 3M km2)

select name, population, area from world
  where population > 250000000 or area > 3000000

8. Hiển thị các trường tên, dân số và diện tích của các quốc gia thỏa mãn chỉ 1 trong 2 điều kiện sau: dân số đông(nhiều hơn 250 Triệu dân) hoặc có diện tích lớn(> 3M km2). Tức là không hiển thị các quốc gia thỏa mãn cả 2 điều kiện trên.

Gợi ý: Dùng toán tử XOR

select name, population, area from world
  where population > 250000000 xor area > 3000000

9. Hiển thị các trường tên, dân số ở đơn vị triệu người, gdp ở đơn vị tỉ USD của các quốc gia ở lục địa South America. Yêu cầu các trường số(dân số, gdp) làm tròn tới chữ số thập phân thứ 2.

Gợi ý: Sử dụng hàm ROUND

select name, ROUND(population/1000000,2), ROUND(gdp/1000000000,2) from world
  where continent = 'South America'

Câu hỏi về SQL nâng cao

10. Hiển thị tên và GDP bình quân đầu người(làm tròn tới bội của 1000) ở đơn vị nghìn $, của các quốc gia có tổng GDP lớn hơn 1000 tỉ USD.

select name, ROUND(gdp/population,-3) from world
  where gdp > 1000000000000

11. Hiển thị tên quốc gia, tên thủ đô của các nước có tên quốc gia và tên thủ đô có độ dài bằng nhau(có số lượng ký tự bằng nhau).

Gợi ý: Dùng hàm LENGTH

SELECT name, capital
  FROM world
 WHERE LENGTH(name) = LENGTH(capital)

12. Hiển thị tên quốc gia, tên thủ đô của các nước mà nước đó có tên thủ đô khác tên quốc gia nhưng chúng có ký tự đầu tiên giống nhau.

Gợi ý: Sử dụng hàm LEFT và toán tử khác <>

SELECT name, capital 
FROM world
WHERE name <> capital and LEFT(name,1) = LEFT(capital,1)

13. Hiển thị tên các quốc gia không có chứa dấu cách và phải có sự xuất hiện của đầy đủ các nguyên âm (u, e, o, a, i) trong tên quốc gia.

SELECT name
FROM world
WHERE name LIKE '%u%'
AND name LIKE '%e%'
AND name LIKE '%o%'
AND name LIKE '%a%'
AND name LIKE '%i%'
AND name NOT LIKE '% %'

Các bạn có thể làm các bài tập này trực tiếp [eafl id=”3768″ name=”SqlZoo” text=”tại đây”]

Similar Posts

Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments