当前位置:Gxlcms > 数据库问题 > MySQL--内联语句练习

MySQL--内联语句练习

时间:2021-07-01 10:21:17 帮助过:19人阅读

 

  1. DROP TABLE track;
  2. DROP TABLE album;
  3. CREATE TABLE album(
  4. albumCode VARCHAR(10) NOT NULL PRIMARY KEY -- 专辑编号
  5. ,title VARCHAR(50) -- 专辑标题
  6. ,artist VARCHAR(50) -- 作者
  7. ,price DECIMAL(10,2) -- 售价
  8. ,rdate DATETIME -- 发行日期
  9. ,label VARCHAR(50) -- 唱片公司
  10. ,rank INTEGER -- 专辑排名
  11. )DEFAULT CHARSET=utf8;
  12. CREATE TABLE track(
  13. album VARCHAR(10) NOT NULL -- 专辑编号
  14. ,dsk INTEGER NOT NULL -- 碟片编号
  15. ,posn INTEGER NOT NULL -- 歌曲在碟片位置
  16. ,song VARCHAR(255) -- 歌曲名
  17. ,PRIMARY KEY(album,dsk,posn)
  18. ,FOREIGN KEY (album) REFERENCES album(albumCode)
  19. )DEFAULT CHARSET=utf8;
  20. SELECT * FROM album;
  21. SELECT * FROM track;
  22. -- 找出包含song(歌曲)‘Alison‘的专辑title(名称)和artist(作者)
  23. SELECT a.title,a.artist FROM album a ,track t WHERE a.albumCode=t.album AND t.song=‘Alison‘
  24. -- 哪个artist(作者)录制了song(歌曲)‘Exodus‘
  25. SELECT artist FROM album a,track t WHERE a.albumCode=t.album AND t.song=‘Exodus‘
  26. -- 列出track(曲目表)中所有属于‘Blur‘ album(专辑)的song(歌曲)
  27. SELECT song FROM track t,album a WHERE title=‘Blur‘ AND a.albumCode=t.album
  28. -- 显示每张album(专辑)的title(名称)和包含track曲目数
  29. SELECT a.title,COUNT(song) FROM track t ,album a WHERE a.albumCode=t.album GROUP BY a.title
  30. -- 显示每张album(专辑)的title(名称),以及曲目名称中包含‘Heart‘的曲目总数
  31. SELECT a.title,COUNT(t.song) FROM album a LEFT JOIN track t ON a.albumCode=t.album WHERE t.song LIKE ‘%Heart‘ GROUP BY a.albumCode
  32. -- 找出所有song(歌名)和title(专辑名)相同的曲目
  33. SELECT t.song FROM track t,album a WHERE a.albumCode=t.album AND a.title=t.song
  34. -- 找出所有专辑名(title)和artist(作者名)相同的专辑
  35. SELECT a.title FROM track t,album a WHERE a.title=a.artist
  36. -- 找出在两张以上专辑中出现过的歌曲,同时包含出现的次数
  37. SELECT t.song,COUNT(a,albumCode) c FROM track t JOIN album a ON a.albumCode=t.album GROUP BY t.song HAVING c>2
  38. -- 找出每首歌曲的定价低于0.5的专辑,显示专辑标题、价格和曲目总数
  39. SELECT a.title,a.price,COUNT(t.song)c FROM track t,album a WHERE a.albumCode=t.album
  40. GROUP BY t.song HAVING a.price/c<0.5
  41. -- 按专辑包含曲目多少从多到少依次列出专辑名称(title)和包含曲目总数
  42. SELECT title,COUNT(t.song)c FROM track t,album a WHERE a.albumCode=t.album GROUP BY a.albumCode
  43. ORDER BY c DESC

  

 

MySQL--内联语句练习

标签:tab   order   rac   多少   价格   tle   tis   次数   select   

人气教程排行