sql实训

1.ER实体关系图与数据库模型图绘制

 

 

2.DDL与DML语句

CREATE TABLE `administrators` (
  `admin_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理员ID,主键,自增',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `password` varchar(255) NOT NULL COMMENT '员密码',
  `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '管理员创建时间',
  PRIMARY KEY (`admin_id`),
  UNIQUE KEY `username` (`username`),
  KEY `created_at` (`created_at`),
  CONSTRAINT `administrators_ibfk_1` FOREIGN KEY (`created_at`) REFERENCES `users` (`created_at`) ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `courier_companies` (
  `company_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '快递公司ID,主键,自增',
  `company_name` varchar(100) NOT NULL COMMENT '快递公司名称,唯一标识',
  `contact_info` varchar(255) DEFAULT NULL COMMENT '快递公司联系方式或地址',
  PRIMARY KEY (`company_id`),
  UNIQUE KEY `company_name` (`company_name`),
  CONSTRAINT `courier_companies_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `express_status_history` (`history_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
CREATE TABLE `express_orders` (
  `order_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '快递单ID,主键,自增',
  `user_id` int(11) NOT NULL COMMENT '用户ID,外键,关联users表的user_id',
  `company_id` int(11) NOT NULL COMMENT '快递公司ID,外键,关联courier_companies表的company_id',
  `tracking_number` varchar(50) NOT NULL COMMENT '快递单号',
  `sender_name` varchar(100) DEFAULT NULL COMMENT '寄件人姓名',
  `receiver_name` varchar(100) DEFAULT NULL COMMENT '收件人姓名',
  `send_address` varchar(255) DEFAULT NULL COMMENT '寄件地址',
  `receive_address` varchar(255) DEFAULT NULL COMMENT '收件地址',
  `status` varchar(50) NOT NULL COMMENT '快递状态',
  PRIMARY KEY (`order_id`),
  UNIQUE KEY `tracking_number` (`tracking_number`),
  KEY `user_id` (`user_id`),
  KEY `company_id` (`company_id`),
  CONSTRAINT `express_orders_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
CREATE TABLE `express_status_history` (
  `history_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '历史记录ID,主键,自增',
  `order_id` int(11) NOT NULL COMMENT '快递单ID,外键,关联express_orders表的order_id',
  `status_id` int(11) NOT NULL COMMENT '快递状态ID,外键,关联express_statuses表的status_id',
  `status_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '状态变更时间',
  PRIMARY KEY (`history_id`),
  KEY `status_id` (`status_id`),
  KEY `order_id` (`order_id`),
  CONSTRAINT `express_status_history_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `express_statuses` (`status_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
CREATE TABLE `express_statuses` (
  `status_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '快递状态ID,主键,自增',
  `status_name` varchar(50) NOT NULL COMMENT '快递状态名称,唯一标识',
  PRIMARY KEY (`status_id`),
  UNIQUE KEY `status_name` (`status_name`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
CREATE TABLE `system_logs` (
  `log_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '日志ID,主键,自增',
  `admin_id` int(11) NOT NULL COMMENT '管理员ID,外键,关联administrators表的admin_id',
  `operation` varchar(100) NOT NULL COMMENT '操作名称',
  `target` varchar(100) DEFAULT NULL COMMENT '操作目标',
  `details` text COMMENT '操作详情',
  `log_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '日志记录时间',
  PRIMARY KEY (`log_id`),
  KEY `admin_id` (`admin_id`),
  KEY `log_time` (`log_time`),
  KEY `operation` (`operation`),
  KEY `target` (`target`),
  CONSTRAINT `system_logs_ibfk_1` FOREIGN KEY (`admin_id`) REFERENCES `administrators` (`admin_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `system_logs_ibfk_2` FOREIGN KEY (`target`) REFERENCES `courier_companies` (`company_name`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `users` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键,自增',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `password` varchar(255) NOT NULL COMMENT '密码',
  `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `gender` enum('男','女') NOT NULL COMMENT '性别',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '用户创建时间',
  PRIMARY KEY (`user_id`),
  UNIQUE KEY `username` (`username`),
  KEY `created_at` (`created_at`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `administrators` VALUES (1, 'admin', '123', 'admin@example.com', '1234567890', '2024-6-26 23:52:02');
INSERT INTO `administrators` VALUES (2, 'operator', '123', 'operator@example.com', '0987654321', '2024-6-26 23:52:02');
INSERT INTO `courier_companies` VALUES (1, '顺丰速运', '4008111111');
INSERT INTO `courier_companies` VALUES (2, '中通快递', '4008270270');
INSERT INTO `courier_companies` VALUES (3, '圆通速递', '95554');
INSERT INTO `express_orders` VALUES (1, 1, 1, '123456789012', '诸葛亮', '张三', '蜀国 成都', '魏国 许昌', '待揽收');
INSERT INTO `express_orders` VALUES (2, 2, 2, '234567890123', '关羽', '李四', '蜀国 荆州', '吴国 建业', '运输中');
INSERT INTO `express_orders` VALUES (3, 3, 3, '345678901234', '曹操', '王五', '魏国 洛阳', '蜀国 成都', '已签收');
INSERT INTO `express_orders` VALUES (4, 1, 2, '456789012345', '诸葛亮', '赵六', '蜀国 成都', '吴国 柴桑', '已退回');
INSERT INTO `express_orders` VALUES (5, 2, 1, '567890123456', '刘备', '孙七', '蜀国 汉中', '魏国 邺城', '待揽收');
INSERT INTO `express_orders` VALUES (6, 3, 3, '678901234567', '曹操', '周八', '魏国 许昌', '蜀国 绵竹', '运输中');
INSERT INTO `express_status_history` VALUES (1, 1, 2, '2024-6-26 23:52:02');
INSERT INTO `express_status_history` VALUES (2, 2, 3, '2024-6-26 23:52:02');
INSERT INTO `express_status_history` VALUES (3, 3, 4, '2024-6-26 23:52:02');
INSERT INTO `express_status_history` VALUES (4, 4, 2, '2024-6-26 23:52:02');
INSERT INTO `express_statuses` VALUES (3, '已签收');
INSERT INTO `express_statuses` VALUES (4, '已退回');
INSERT INTO `express_statuses` VALUES (1, '待揽收');
INSERT INTO `express_statuses` VALUES (2, '运输中');
INSERT INTO `users` VALUES (1, '诸葛亮', '123', 'zhugeliang@example.com', '13800138000', '男', '2024-6-26 23:52:02');
INSERT INTO `users` VALUES (2, '刘备', '123', 'liubei@example.com', '13900139000', '男', '2024-6-26 23:52:02');
INSERT INTO `users` VALUES (3, '曹操', '123', 'caocao@example.com', '13700137000', '男', '2024-6-26 23:52:02');
INSERT INTO `users` VALUES (4, '孙权', '123', 'sunquan@example.com', '13600136000', '男', '2024-6-26 23:52:02');
INSERT INTO `system_logs` VALUES (1, 1, '运送', '顺丰速运', NULL, '2024-6-27 17:26:27');
INSERT INTO `system_logs` VALUES (2, 2, '运送', '中通快递', NULL, '2024-6-27 17:31:07');
INSERT INTO `system_logs` VALUES (3, 2, '运送', '圆通速递', NULL, '2024-6-27 17:32:05');

3.简单查询与多表联合复杂查询

简单查询

复杂查询

4.触发器-修改-插入 

 

5.存储过程创建

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值