个人关于SQLzoo的总结
这是一些我在刷SQLZoo题中总结下来的一些,希望对你们有所帮助。
1.你不能把一個单引号直接的放在字符串中。但您可连续使用兩個单引号在字符串中當作一個单引号
例。查找尤金•奧尼爾EUGENE O’NEILL得獎的所有細節
SELECT *
FROM nobel
WHERE winner = 'EUGENE O''NEILL';
2.LEFT的用法。
一个字符串’12345’
select left(‘12345’,2)选取的一个字符串位数。
结果
‘12’
例.SELECT winner, yr, subject FROM nobel
WHERE left(winner, 3) = 'Sir'
order by yr desc;
3.The expression subject IN (‘Chemistry’,‘Physics’) can be used as a value - it will be 0 or 1.
Show the 1984 winners and subject ordered by subject and winner name; but list Chemistry and Physics last.
例.SELECT winner, subject
FROM nobel
WHERE yr=1984
ORDER BY subject IN ('Physics','Chemistry'), subject,winner
4.其中LIMIT用于SELECT语句中,可以强制返回指定的记录数.如果写作 LIMIT n(补全为 LIMIT 0,n),则表示显示前n条记录
列出洲份名稱,和每個洲份中國家名字按子母順序是排首位的國家名。(即每洲只有列一國)
SELECT continent,name
FROM world x
WHERE x.name=(SELECT y.name FROM world y WHERE y.continent=x.continent
ORDER BY name LIMIT 1);
5.有些國家的人口是同洲份的所有其他國的3倍或以上。列出 國家名字name 和 洲份 continent。
SELECT name,continent FROM world x
WHERE x.population / 3 >= ALL(SELECT population FROM world y
WHERE y.continent = x.continent
AND population >0
AND y.name != x.name);
6.哪幾年的得獎者人數多於12人呢? 列出得獎人數多於12人的年份,獎項和得獎者。
select yr,subject,winner
from nobel
where yr in (select yr
from nobel
group by yr
having count(winn