从此刻开始良好习惯

最近总想发现些什么,总想发现那些虽非法则但是行之有效的常理,于是我通过探索发现自己,总结了以下这些:

充足精力从良好睡眠开始;

健康身体从不断锻炼开始;

发现进步从制定目标开始;

提高能力从总结自己开始;

明晰机理从深入观察开始;

触摸人生从小小自传开始;

创造未来从写BLOG开始;

良好的习惯是开始的一切。

如果我的发现和你产生了共鸣,那我们应该从此刻开始!

好的,让我来逐一回答你的问题。 1. 新建数据库和表 创建数据库: ```sql CREATE DATABASE taobao_db; ``` 创建商品分类表: ```sql USE taobao_db; CREATE TABLE tb_goodscate ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL ); ``` 创建商品信息表: ```sql CREATE TABLE tb_goods ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, price DECIMAL(8,2) NOT NULL, score DECIMAL(2,1) NOT NULL, goodscate_id INT NOT NULL, FOREIGN KEY (goodscate_id) REFERENCES tb_goodscate(id) ); ``` 创建客户信息表: ```sql CREATE TABLE tb_customer ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT NOT NULL, address VARCHAR(100) NOT NULL ); ``` 2. 添加数据 添加商品分类数据: ```sql INSERT INTO tb_goodscate (name) VALUES ('衣服'), ('鞋子'), ('数码'), ('食品'), ('家居'), ('化妆品'), ('运动'), ('图书'), ('玩具'), ('母婴'); ``` 添加商品数据: ```sql -- 生成随机商品分类id DELIMITER // CREATE PROCEDURE random_goodscate_id() BEGIN DECLARE i INT DEFAULT 0; DECLARE goodscate_id INT DEFAULT 0; WHILE i < 50000 DO SET goodscate_id = FLOOR(1 + RAND() * 10); INSERT INTO tb_goods (name, price, score, goodscate_id) VALUES (CONCAT('商品', i), FLOOR(1 + RAND() * 1000), ROUND(1 + RAND() * 4, 1), goodscate_id); SET i = i + 1; END WHILE; END // DELIMITER ; CALL random_goodscate_id(); ``` 添加客户信息数据: ```sql -- 生成随机客户信息 DELIMITER // CREATE PROCEDURE random_customer() BEGIN DECLARE i INT DEFAULT 0; WHILE i < 1000 DO INSERT INTO tb_customer (name, age, address) VALUES (CONCAT('客户', i), FLOOR(1 + RAND() * 100), CONCAT('地址', i)); SET i = i + 1; END WHILE; END // DELIMITER ; CALL random_customer(); ``` 3. 使用游标修改商品表中商品价格低于500的商品价格为1000 ```sql DELIMITER // CREATE PROCEDURE update_goods_price() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE goods_id INT; DECLARE goods_price DECIMAL(8,2); DECLARE goods_cursor CURSOR FOR SELECT id, price FROM tb_goods WHERE price < 500; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN goods_cursor; goods_loop: LOOP FETCH goods_cursor INTO goods_id, goods_price; IF done THEN LEAVE goods_loop; END IF; UPDATE tb_goods SET price = 1000 WHERE id = goods_id; END LOOP; CLOSE goods_cursor; END // DELIMITER ; CALL update_goods_price(); ``` 4. 删除商品表中评分低于3分的商品 ```sql DELETE FROM tb_goods WHERE score < 3; ``` 5. 使用触发器完成购物车商品的添加操作 ```sql CREATE TABLE tb_shopping_cart ( id INT PRIMARY KEY AUTO_INCREMENT, customer_id INT NOT NULL, goods_id INT NOT NULL, quantity INT NOT NULL ); CREATE TRIGGER add_to_shopping_cart AFTER INSERT ON tb_order FOR EACH ROW BEGIN INSERT INTO tb_shopping_cart (customer_id, goods_id, quantity) VALUES (NEW.customer_id, NEW.goods_id, NEW.quantity); END; ``` 6. 使用事件完成商品分类表从此刻开始10分钟后添加建材分类 ```sql CREATE EVENT add_building_materials ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 10 MINUTE ON COMPLETION PRESERVE DO INSERT INTO tb_goodscate (name) VALUES ('建材'); ``` 7. 使用事件完成商品分类表从此刻开始5个月内每天添加10条记录到商品表中 ```sql CREATE EVENT add_goods ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP ON COMPLETION PRESERVE DO BEGIN DECLARE i INT DEFAULT 0; WHILE i < 10 DO INSERT INTO tb_goods (name, price, score, goodscate_id) VALUES (CONCAT('商品', FLOOR(1 + RAND() * 50000)), FLOOR(1 + RAND() * 1000), ROUND(1 + RAND() * 4, 1), FLOOR(1 + RAND() * 10)); SET i = i + 1; END WHILE; END; ``` 8. 修改7题的事件从每天为每周添加 ```sql ALTER EVENT add_goods ON SCHEDULE EVERY 1 WEEK STARTS CURRENT_TIMESTAMP ON COMPLETION PRESERVE DO BEGIN DECLARE i INT DEFAULT 0; WHILE i < 10 DO INSERT INTO tb_goods (name, price, score, goodscate_id) VALUES (CONCAT('商品', FLOOR(1 + RAND() * 50000)), FLOOR(1 + RAND() * 1000), ROUND(1 + RAND() * 4, 1), FLOOR(1 + RAND() * 10)); SET i = i + 1; END WHILE; END; ``` 9. 修改8题的事件从此刻开始6个月3天2小时后添加建材分类并且事件执行完毕后保留 ```sql ALTER EVENT add_building_materials ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 6 MONTH + INTERVAL 3 DAY + INTERVAL 2 HOUR ON COMPLETION PRESERVE DO INSERT INTO tb_goodscate (name) VALUES ('建材'); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值