guoyu/Study-Vue-redis/快速生成SQL说明.md
2025-12-03 18:58:36 +08:00

146 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 快速生成SQL说明无需Python环境
## 方法一使用SQL模板最简单
1. **打开模板文件**
- 打开 `courseware_import_template.sql` 文件
2. **获取文件信息**
- 打开文件资源管理器,进入目录:`D:/wwwroot/study_web/web/profile/upload/upload/2025/11/18`
- 查看每个文件的:
- 文件名(包括扩展名)
- 文件大小(右键 -> 属性 -> 查看字节数)
3. **填写SQL**
- 复制模板中的一行
- 根据实际文件信息修改:
- `title`:课件标题(使用文件名,去掉扩展名)
- `type`:文件类型('video'/'document'/'image'
- `file_path`:文件路径(格式:`/profile/upload/2025/11/18/文件名`
- `file_size`:文件大小(字节)
- `file_name`:原始文件名
- `subject_id`学科ID不知道填 `NULL`
- `upload_user_id`上传人ID管理员通常是 `1`
4. **执行SQL**
- 在数据库管理工具中执行修改后的SQL
## 方法二使用Excel生成SQL推荐适合文件较多
### 步骤1在Excel中列出文件信息
创建一个Excel表格包含以下列
| 文件名 | 文件大小(字节) | 类型 | 标题 | 学科ID | 文件路径 |
|--------|---------------|------|------|--------|----------|
| 微积分第一章.mp4 | 52428800 | video | 微积分第一章 | 2 | /profile/upload/2025/11/18/微积分第一章.mp4 |
| 数学公式.pdf | 2097152 | document | 数学公式 | 2 | /profile/upload/2025/11/18/数学公式.pdf |
### 步骤2使用Excel公式生成SQL
在Excel中添加一列"SQL语句"使用以下公式假设数据从第2行开始
```excel
="('"&D2&"', '"&C2&"', '"&F2&"', "&B2&", '"&A2&"', "&IF(E2="","NULL",E2)&", NULL, NULL, NULL, 1, NULL, NULL, 'admin', NOW(), '', NULL, NULL),"
```
### 步骤3复制SQL语句
1. 复制所有生成的SQL语句
2. 在SQL模板中替换VALUES部分
3. 删除最后一行的逗号
4. 执行SQL
## 方法三:使用在线工具
可以使用在线SQL生成工具例如
- 搜索"SQL INSERT语句生成器"
- 输入字段和值自动生成SQL
## 快速参考
### 文件类型判断
- **video视频**mp4, avi, mov, wmv, flv, mkv, webm, m4v, 3gp
- **document文档**doc, docx, xls, xlsx, ppt, pptx, txt, pdf
- **image图片**jpg, jpeg, png, gif, bmp, webp
### 文件大小转换
- 1 KB = 1024 字节
- 1 MB = 1024 KB = 1048576 字节
- 1 GB = 1024 MB = 1073741824 字节
**查看文件大小(字节)的方法:**
- Windows右键文件 -> 属性 -> 查看"大小"(字节)
- 或者文件大小MB× 1048576 = 字节数
### 查询学科ID
```sql
SELECT id, subject_name FROM subject;
```
### 查询用户ID
```sql
SELECT user_id, user_name, nick_name FROM sys_user WHERE user_type = '00';
```
## 完整示例
假设您有以下文件:
- `微积分第一章.mp4` (50MB)
- `数学公式.pdf` (2MB)
- `课程封面.jpg` (500KB)
生成的SQL如下
```sql
INSERT INTO `courseware` (
`title`, `type`, `file_path`, `file_size`, `file_name`,
`subject_id`, `grade`, `course_id`, `class_id`, `upload_user_id`,
`description`, `duration`, `create_by`, `create_time`,
`update_by`, `update_time`, `remark`
) VALUES
('微积分第一章', 'video', '/profile/upload/2025/11/18/微积分第一章.mp4', 52428800, '微积分第一章.mp4', 2, NULL, NULL, NULL, 1, NULL, NULL, 'admin', NOW(), '', NULL, NULL),
('数学公式', 'document', '/profile/upload/2025/11/18/数学公式.pdf', 2097152, '数学公式.pdf', 2, NULL, NULL, NULL, 1, NULL, NULL, 'admin', NOW(), '', NULL, NULL),
('课程封面', 'image', '/profile/upload/2025/11/18/课程封面.jpg', 512000, '课程封面.jpg', 2, NULL, NULL, NULL, 1, NULL, NULL, 'admin', NOW(), '', NULL, NULL);
```
## 注意事项
1. **文件路径格式**`/profile/upload/2025/11/18/文件名`
- 注意:路径中只有一个 `upload`,不是 `upload/upload`
- 如果您的实际web访问路径不同请相应调整
2. **执行前备份**
```sql
CREATE TABLE courseware_backup AS SELECT * FROM courseware;
```
3. **验证结果**
```sql
SELECT id, title, type, file_path, file_name, create_time
FROM courseware
WHERE create_time >= '2025-11-18'
ORDER BY create_time DESC;
```
## 如果文件很多怎么办?
如果文件很多(比如几十个),建议:
1. **使用Excel方法**在Excel中列出所有文件使用公式批量生成SQL
2. **分批导入**每次导入10-20个文件避免SQL语句过长
3. **使用数据库管理工具**有些工具支持从CSV导入数据
## 需要帮助?
如果遇到问题,请检查:
- 文件路径是否正确
- 文件大小是否正确(字节数)
- 文件类型是否正确video/document/image
- SQL语法是否正确注意引号、逗号等