Đâ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”]
Để lại một bình luận