用SQL语句实现下列1—8小题: 1.创建商品营销管理系统数据库GMS,并在其中创建三个数据表contestants、goods、sales。 2.插入如下两条选手信息。 ('c000101':李丽',18,女') ('c000102',张凯',17,男) 3.修改选手信息,将选手编号为'c000101的姓名更改为'张美丽”。 4.查询2021年8月的销售信息。 5.创建一个名为v-contestants的视图,显示18岁及以下的选手号、选手名及其年龄。 6.查询超人电吹风的销售日期及相应的销售数量。 7.查询与代码'cr123'商品同一天销售的其他产品的商品代码、销售数量及销售时间。 8.创建一个名为p_gid_getgprice的存储过程,该存储过程要求传入商品号,传出商品价格。(
时间: 2024-03-22 16:36:51 浏览: 86
1.创建商品营销管理系统数据库GMS,并在其中创建三个数据表contestants、goods、sales。
```sql
CREATE DATABASE GMS;
USE GMS;
CREATE TABLE contestants (
c_id VARCHAR(10) PRIMARY KEY,
c_name VARCHAR(20),
age INT,
gender VARCHAR(10)
);
CREATE TABLE goods (
g_id VARCHAR(10) PRIMARY KEY,
g_name VARCHAR(20),
price DECIMAL(10,2)
);
CREATE TABLE sales (
s_id INT PRIMARY KEY AUTO_INCREMENT,
c_id VARCHAR(10),
g_id VARCHAR(10),
s_date DATE,
s_quantity INT,
FOREIGN KEY (c_id) REFERENCES contestants(c_id),
FOREIGN KEY (g_id) REFERENCES goods(g_id)
);
```
2.插入如下两条选手信息。
```sql
INSERT INTO contestants (c_id, c_name, age, gender)
VALUES ('c000101', '李丽', 18, '女'), ('c000102', '张凯', 17, '男');
```
3.修改选手信息,将选手编号为'c000101的姓名更改为'张美丽”。
```sql
UPDATE contestants
SET c_name = '张美丽'
WHERE c_id = 'c000101';
```
4.查询2021年8月的销售信息。
```sql
SELECT *
FROM sales
WHERE s_date BETWEEN '2021-08-01' AND '2021-08-31';
```
5.创建一个名为v-contestants的视图,显示18岁及以下的选手号、选手名及其年龄。
```sql
CREATE VIEW v_contestants AS
SELECT c_id, c_name, age
FROM contestants
WHERE age <= 18;
```
6.查询超人电吹风的销售日期及相应的销售数量。
```sql
SELECT s_date, s_quantity
FROM sales
WHERE g_id = 'cr123';
```
7.查询与代码'cr123'商品同一天销售的其他产品的商品代码、销售数量及销售时间。
```sql
SELECT g_id, s_quantity, s_date
FROM sales
WHERE s_date IN (
SELECT s_date
FROM sales
WHERE g_id = 'cr123'
) AND g_id != 'cr123';
```
8.创建一个名为p_gid_getgprice的存储过程,该存储过程要求传入商品号,传出商品价格。
```sql
CREATE PROCEDURE p_gid_getgprice (IN g_id VARCHAR(10), OUT g_price DECIMAL(10,2))
BEGIN
SELECT price INTO g_price
FROM goods
WHERE g_id = g_id;
END;
```
阅读全文