-- 演员表
CREATE TABLE actor
(id INTEGER NOT NULL -- 演员编号
, NAME VARCHAR(35) -- 演员姓名
, PRIMARY KEY (id)
)DEFAULT CHARSET=utf8;
CREATE INDEX actor_name ON actor(NAME);
-- 电影表
CREATE TABLE movie
(id INTEGER NOT NULL -- 电影编号
, title VARCHAR(70) -- 电影名称
, yr DECIMAL(4) -- 年份
, score FLOAT -- 评分
, votes INTEGER -- 票房
, director INTEGER -- 导演
, PRIMARY KEY (id)
, FOREIGN KEY (director) REFERENCES actor(id)
)DEFAULT CHARSET=utf8;
CREATE INDEX movie_title ON movie(title);
-- 中间表
CREATE TABLE casting (
movieid INTEGER NOT NULL -- 电影编号
, actorid INTEGER NOT NULL -- 演员编号
, movieord INTEGER -- 演员排名
, PRIMARY KEY (movieid, actorid)
, FOREIGN KEY (movieid) REFERENCES movie(id)
, FOREIGN KEY (actorid) REFERENCES actor(id)
)DEFAULT CHARSET=utf8;
CREATE INDEX casting_movie ON casting(movieid);
CREATE INDEX casting_actor ON casting(actorid);
CREATE INDEX casting_ord ON casting(movieord);-- 显示电影id=1中演员名单
SELECT a.NAME FROM movie m,actor a,casting c WHERE c.actorid=a.id AND c.movieid=m.id AND m.id=1
SELECT a.* FROM actor a,casting c WHERE c.actorid=a.id AND c.movieid=1-- 显示电影'Alien'中演员名单SELECT a.NAME FROM movie m,actor a,casting c WHERE c.actorid=a.id AND c.movieid=m.id
AND m.title='Alien'-- 显示有'Harrison Ford'参演的电影名称
SELECT m.title FROM movie m,casting c,actor a WHERE c.actorid=a.id AND m.id=c.movieid AND a.NAME='Harrison Ford'-- 显示有'Harrison Ford'参演的电影名称,但'Harrison Ford'角色排名不是第一
SELECT m.title FROM movie m JOIN casting c ON m.id=c.movieid JOIN actor a ON c.actorid=a.id WHERE a.NAME='Harrison Ford' AND c.movieord !=1-- 显示1962年发行的电影,及该影片的主角(排名第一)
SELECT m.title, a.NAME FROM movie m,casting c,actor a WHERE c.actorid=a.id AND m.id=c.movieid AND m.yr=1962 AND c.movieord =1-- 显示'John Travolta'每年出演的电影数量
SELECT m.yr,COUNT(m.id) FROM movie m,casting c,actor a WHERE c.actorid=a.id AND m.id=c.movieid AND a.NAME='John Travolta'
GROUP BY m.yr-- 列出'Julie Andrews'参演的所有电影名称以及该片的主角SELECT m.title,a.NAME FROM actor a,casting c ,movie m WHERE a.id=c.actorid AND m.id=c.movieid AND m.id IN
(SELECT m1.id FROM casting c1,movie m1,actor a1 WHERE m1.id=c1.movieid AND a1.id=c1.actorid AND a1.NAME='Julie Andrews')AND c.movieord=1;-- 列出在10部电影中出任过主角的演员
SELECT a.NAME FROM movie m,casting c,actor a WHERE c.actorid=a.id AND m.id=c.movieid
AND c.movieord =1 GROUP BY a.NAME HAVING COUNT(m.title)=10-- 按演员人数的多少依次列出1978的电影以及演员数。
SELECT m.title,COUNT(a.id) num FROM movie m,casting c,actor a WHERE c.actorid=a.id AND m.id=c.movieid
AND m.yr=1978 GROUP BY m.id ORDER BY num DESC-- 列出所有和'Art Garfunkel'合作过的演员
SELECT DISTINCT a.NAME FROM movie m,casting c,actor a WHERE c.actorid=a.id AND m.id=c.movieid
AND a.NAME !='Art Garfunkel' AND m.id IN
(SELECT c1.movieid FROM movie m1,casting c1,actor a1 WHERE c1.actorid=a1.id AND m1.id=c1.movieid AND a1.NAME='Art Garfunkel')

MySQL多对多创建表语句(防忘记)相关推荐

  1. 在线MySQL,SQL Server建表语句生成JSON测试数据工具

    在线MySQL,SQL Server建表语句生成JSON测试数据工具 在线MySQL,SQL Server建表语句生成JSON测试数据工具 本工具可以将SQL建表语句生成JSON测试数据,支持MySQ ...

  2. SQL Server创建表语句介绍

    SQL Server创建表是最常见也是最常用的操作之一,下面就为您介绍SQL Server创建表的语句写法,供您参考,希望可以让您对SQL Server创建表方面有更深的认识. USE suntest ...

  3. java oracle 建表语句_在oracle数据库中创建表语句如何写?

    表名:servicelogs 字段名称类型 idint (主键,自增) servicetypevarchar (100) outsysvarchar (100) methodnamevarchar ( ...

  4. mysql创建表语句 引擎、编码和字符集设置

    2019独角兽企业重金招聘Python工程师标准>>> 创建语句最后加上如下语句: InnoDB 转自:原文忘记是哪的了... 转载于:https://my.oschina.net/ ...

  5. mysql创建表语句和修改表语句

    每天创建一个表,来练习表设计. 这种图叫做syntax diagram,非常适合用来描述sql语法规则,基本上看到这种图,就知道语句要怎么写了,但是我还没有发现能够方便画syntax diagram的 ...

  6. mysql建表语句enum_mysql创建表语句格式

    SQL创建表格式:DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` ( `id`                   bigint    ...

  7. oracle创建表语句_利用FME去拼接SQL语句并创建表

    在之前的工作中,我遇到了这么一个需求,需要将数据库内一千多个旧表按其原来表结构,重新创建对应的新表.然后对旧数据的进行处理后,存储新的数据. 不只是结构需要保持一致,还有用户.表空间.约束.备注等也需 ...

  8. Mysql建库建表语句分享

    前言:在生产环境中,常常会被叫发一下sql脚本,建库脚本,那么我们怎么创建呢,给大家分享一下吧! 建库语句: CREATE DATABASE test DEFAULT CHARACTER SET ut ...

  9. SQL创建表语句文档

    关系数据库的主要特点之一就是用表的方式组织数据.表是SQL语言存放数据.查找数据以及更新数据的基本数据结构.在SQL语言中,表有严格的定义,它是一种二维表,对于这种表有如下规定:<?xml:na ...

最新文章

  1. 三、6Gbps SAS冲锋队——Cheetah 15K.7、NS.2
  2. C#以post方式调用struts rest-plugin service的问题
  3. XCode连接手机时提示A Valid provisioning profile for this executable was not found
  4. [探索][管理]《现在,发现你的优势》
  5. VSCode+Win10安装
  6. IOS-—UICollectionView使用综述(二 )(基础篇--画廊展示图片,瀑布流展示图片)
  7. python实现排队论模型_Logistic模型拟合COVID-19疫情以及Python实现
  8. iscsi-target
  9. 基于 socket.io 实现实时你画我猜游戏
  10. 算法学习(6)----整数转换为格雷码
  11. Android SDK Tools 历史版本下载
  12. 美国薪资最高的技术技能:Golang、Kafka、DynamoDB、Redshift、Cassandra
  13. Linux高级存储管理【2】(lvm快照、删除,vdo)
  14. Firefox与chrome 远程调试标签页初体验,顺便解决PC移动端网页因为safe-browsing表现不一致问题。
  15. C++算法 | 比较大小
  16. 一个站长找回域名的艰辛之路
  17. oCPC实践录 | 摸石头过河,oCPC先跑起来再说
  18. Revit中添加了标高看不见原来轴网解决方法及轴网转化
  19. rm: cannot remove `/usr/local/tmp/‘: Directory not empty
  20. 径向基网络(RBF)实现函数插值(拟合)

热门文章

  1. Python--第4次平时作业
  2. 机器学习前的热身(必备)
  3. Codeforces Round #588 (Div. 2) E. Kamil and Making a Stream 数学 + 暴力
  4. P1972 [SDOI2009]HH的项链
  5. 牛客题霸 [ 大数乘法] C++题解/答案
  6. 牛客网【每日一题】5月19日题目精讲 比赛
  7. 内存管理(ybtoj-二叉堆)
  8. 粉刷木板(ybtoj-单调队列)
  9. P3835-[模板]可持久化平衡树【无旋Treap】
  10. P2151-[SDOI2009]HH去散步【矩阵乘法】