网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

Sakila数据库中都有哪些详细信息和表结构?

GG网络技术分享 2025-10-28 21:03 1


一、 Sakila数据库概览

Sakila数据库,作为MySQL的示例数据库,自MySQL 5.0版本引入以来已成为学关系型数据库特性的绝佳案例。它不仅涵盖了表的关系和连接,还展示了SQL语句的基本用法。

二、 基本上表结构解析

1. 客户信息查询

通过以下SQL语句,我们能查询出客户信息,包括客户ID、名字、邮箱地址、地址以及租借订单数。

SELECT customer.customer_id, CONCAT AS name, customer.email, address.address, address.phone, COUNT AS total_rentals
FROM customer
INNER JOIN address ON customer.address_id=address.address_id
INNER JOIN rental ON customer.customer_id=rental.customer_id
GROUP BY customer.customer_id
ORDER BY total_rentals DESC;

2. 电影信息查询

查询电影信息是Sakila数据库中常见的操作。以下SQL语句可用于查询电影表格中全部电影的信息,包括电影ID、标题、说说、长远度以及评级等。

SELECT film.film_id, film.title, film.description, film.length, rating.rating
FROM film
INNER JOIN film_rating ON film.film_id = film_rating.film_id
INNER JOIN rating ON film_rating.rating_id = rating.rating_id
ORDER BY film.length DESC;

3. 表格film_category

表格film_category存储了个个电影的类别信息, 如动作、科幻、经典、新鲜片等。film_id和category_id分别对应着表格film和表格category中的主键。

CREATE TABLE film_category (
    film_id SMALLINT UNSIGNED NOT NULL,
    category_id TINYINT UNSIGNED NOT NULL,
    last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY ,
    KEY fk_film_category_category ,
    CONSTRAINT fk_film_category_film FOREIGN KEY  REFERENCES film  ON UPDATE CASCADE,
    CONSTRAINT fk_film_category_category FOREIGN KEY  REFERENCES category  ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4. 表格payment

表格payment存储了关于客户租赁订单的相关信息, 包括支付方式、租赁时候以及返回时候等。payment_id是该表格的主键。

CREATE TABLE payment (
    payment_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    customer_id SMALLINT UNSIGNED NOT NULL,
    staff_id TINYINT UNSIGNED NOT NULL,
    rental_id INT DEFAULT NULL,
    amount DECIMAL NOT NULL,
    payment_date DATETIME NOT NULL,
    last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY ,
    KEY idx_fk_staff_id ,
    KEY idx_fk_customer_id ,
    KEY idx_fk_rental_id ,
    CONSTRAINT `fk_payment_customer` FOREIGN KEY  REFERENCES `customer`  ON DELETE NO ACTION ON UPDATE CASCADE,
    CONSTRAINT `fk_payment_rental` FOREIGN KEY  REFERENCES `rental`  ON DELETE SET NULL ON UPDATE CASCADE,
    CONSTRAINT `fk_payment_staff` FOREIGN KEY  REFERENCES `staff`  ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

三、 Sakila数据库的用

1. 查询客户信息

Sakila数据库基本上用于演示基本的关系型数据库知识,包括表的关系、表之间的连接以及SQL语句的用。

2. 表格address

地址表包含客户、员工和商店的地址信息。以下为address表格的创建语句:

CREATE TABLE address (
    address_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    address VARCHAR NOT NULL,
    address2 VARCHAR DEFAULT NULL,
    district VARCHAR NOT NULL,
    city_id SMALLINT UNSIGNED NOT NULL,
    postal_code VARCHAR DEFAULT NULL,
    phone VARCHAR NOT NULL,
    last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY ,
    KEY idx_fk_city_id ,
    CONSTRAINT `fk_address_city` FOREIGN KEY  REFERENCES `city`  ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3. 更新鲜数据

以下SQL语句用于更新鲜表格store的地址信息,将store_id为1的门店复制到prague地址。

UPDATE store
SET address_id = 
WHERE store_id = ;

Sakila数据库是学MySQL关系型数据库特性以及查询、更新鲜数据的最佳实践示例。通过深厚入了解Sakila数据库表格以及运用SQL语句, 能帮巨大家更优良地搞懂关系型数据库的特点和优势,为之后的数据库设计和应用开发打下基础。

预测:因为巨大数据和人造智能的飞迅速进步,Sakila数据库作为学材料的关键性将进一步提升。欢迎用实际体验验证这一观点。

标签:

提交需求或反馈

Demand feedback