
基于Sakila的数据库操作实验一
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本实验基于Sakila样例数据库,旨在通过SQL语言进行数据查询、插入、更新和删除等基本操作,帮助学生掌握数据库管理技能。
根据Sakila数据库中的表结构回答以下问题:
1. 在sakila.mwb模型的每个字段前面的小标记分别表示该字段的不同属性或约束条件:
- 主键:标识唯一记录的关键字。
- 外键:与其他表连接时使用的参照关键字,表明了两个实体之间的关系。
- 非空(NOT NULL): 表示此列不允许为NULL值。
- 自动递增 (AUTO_INCREMENT): 当插入新数据行时不指定该字段的值,则自动增加其数值。
2. 图中体现影片-演员关系的部分是通过“film_actor”表来实现,它连接了“actor”和“film”两个实体。若要找出演某个影片的所有演员名字,需要访问这两张表:首先查询film_id(在“film”表),然后利用其与“actor”的映射关系查找相关联的演员信息。
3. 如果已知顾客姓名,则可以得知该顾客的 customer_id,并通过 rental 表找到所有租借记录。接着根据这些记录中的 inventory_id 在 inventory 表中查询对应的 film_id,最后使用此 id 从 film 表获取影片名称 title 即为所需结果。
4. Film 和 Language 表间存在两条线是因为一个电影可以有多种语言版本(例如字幕或配音),而每种语言对应不同的“language”表记录。这样设计便于管理不同语境下的文本信息,如标题、描述等。
问题2:
请列出所有商店的详细地址,并显示如下字段:商店 id (store_id),商店地址 (address) ,所在区域(region),所在城市(city), 所在国家(country);
查询SQL代码示例如下:
```sql
SELECT s.store_id, a.address AS store_address, c.city, co.country
FROM sakila.store AS s
JOIN address AS a ON s.address_id = a.address_id
JOIN city AS c ON a.city_id = c.city_id
JOIN country AS co ON c.country_id = co.country_id;
```
问题3:
如果向act表插入一条数据,重写如下说明:
在Sakila数据库中执行操作时,若需将新记录加入到“actor”(这里假设原题中的act为笔误)表内,则应遵循该表的结构要求准备相应的字段信息,并使用INSERT语句完成添加。例如:
```sql
INSERT INTO actor (first_name, last_name) VALUES (John, Doe);
```
此操作将创建一个新的演员记录,包含给定的名字和姓氏。
全部评论 (0)


