1. 创建商品营销管理系统数据库GMS,并在其中创建三个数据表contestants、goods、sales. 2.插入如下两条选手信息。 ('c000101''李丽'18,女') C'c000102''张凯'17.'男 3.修改选手信息,将选手编号为'c000101'的姓名更改为'张美丽'。 4.查询2021年8月的销售信息。 5. 创建一个名为v-contestants的视图,显示18岁及以下的选手号、选手名及其年龄。 6.查询超人电吹风的销售日期及相应的销售数量。 7.查询与代码'cr123'商品同一天销售的其他产品的商品代码、销售数量及销售时间。 8.创建一个名为p gid getgprice的存储过程,该存储过程要求传入商品号,传出商品价格。
时间: 2024-03-21 07:44:33 浏览: 114
好的,我可以为您解答这些问题。以下是每个问题的SQL查询语句:
1. 创建数据库和数据表:
```
CREATE DATABASE GMS;
USE GMS;
CREATE TABLE contestants (
cid VARCHAR(10) PRIMARY KEY,
name VARCHAR(20),
age INT,
gender VARCHAR(10)
);
CREATE TABLE goods (
gid VARCHAR(10) PRIMARY KEY,
gname VARCHAR(20),
gprice DECIMAL(10, 2)
);
CREATE TABLE sales (
sid INT PRIMARY KEY,
gid VARCHAR(10),
cid VARCHAR(10),
sdate DATE,
quantity INT,
FOREIGN KEY (gid) REFERENCES goods(gid),
FOREIGN KEY (cid) REFERENCES contestants(cid)
);
```
2. 插入选手信息:
```
INSERT INTO contestants (cid, name, age, gender) VALUES
('c000101', '李丽', 18, '女'),
('c000102', '张凯', 17, '男');
```
3. 修改选手信息:
```
UPDATE contestants SET name = '张美丽' WHERE cid = 'c000101';
```
4. 查询2021年8月的销售信息:
```
SELECT * FROM sales WHERE sdate BETWEEN '2021-08-01' AND '2021-08-31';
```
5. 创建视图:
```
CREATE VIEW v_contestants AS
SELECT cid, name, age FROM contestants WHERE age <= 18;
```
6. 查询超人电吹风的销售信息:
```
SELECT sdate, quantity FROM sales WHERE gid = 'cr123';
```
7. 查询与代码'cr123'商品同一天销售的其他产品的商品代码、销售数量及销售时间:
```
SELECT gid, quantity, sdate FROM sales WHERE sdate IN (SELECT sdate FROM sales WHERE gid = 'cr123') AND gid <> 'cr123';
```
8. 创建存储过程:
```
CREATE PROCEDURE p_gid_getgprice (IN gid_input VARCHAR(10), OUT gprice_output DECIMAL(10, 2))
BEGIN
SELECT gprice INTO gprice_output FROM goods WHERE gid = gid_input;
END;
```
上述查询语句已经按照您提供的要求编写了。您可以根据自己的实际情况进行调整和修改。
阅读全文