SQL技巧:数据导入导出与转换操作
62 浏览量
更新于2024-08-28
收藏 106KB PDF 举报
本文介绍了在SQL和SQL SERVER中处理数据导入导出及转换的一些巧妙方法,同时也涉及了与ACCESS和EXCEL的数据交互。以下是一些关键的SQL操作示例:
1. 复制表结构:
当你需要创建一个新表,只复制原表的结构而不包含数据时,可以使用如下语句:
```sql
SELECT * INTO b FROM a WHERE 1<>1
```
这里`a`是源表,`b`是新表。`WHERE 1<>1`是一个无效的条件,所以不会选取任何数据,但会创建新表的结构。
2. 拷贝表数据:
若要将数据从一个表复制到另一个已有相同结构的表中,可以执行:
```sql
INSERT INTO b (a, b, c) SELECT d, e, f FROM b
```
这里`a`, `b`, `c`是目标表`b`的字段,`d`, `e`, `f`是源表的相应字段。
3. 显示多表信息:
若要展示一篇文章及其提交人和最后的回复时间,可以使用子查询:
```sql
SELECT a.title, a.username, b.adddate
FROM table a,
(SELECT MAX(adddate) adddate FROM table WHERE table.title = a.title) b
```
子查询找到每篇文章的最后回复时间。
4. 外连接查询:
使用LEFT OUTER JOIN进行外连接查询,例如:
```sql
SELECT a.a, a.b, a.c, b.c, b.d, b.f
FROM a LEFT OUT JOIN b ON a.a = b.c
```
这会返回所有来自`a`表的记录,即使在`b`表中没有匹配项。
5. 时间条件查询:
检查日程安排是否在当前时间前五分钟内,如需提醒:
```sql
SELECT * FROM 日程安排
WHERE DATEDIFF('minute', f开始时间, GETDATE()) > 5
```
6. 删除关联表中的孤儿记录:
删除主表中已在副表中不存在的记录,可以这样操作:
```sql
DELETE FROM info
WHERE NOT EXISTS (SELECT * FROM info_bz WHERE info.info_id = info_bz.info_id)
```
7. 复杂查询示例:
示例展示了如何结合多表查询,找出特定时间段内的库存变化:
```sql
Select A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(Select X.NUM, X.UPD_DATE, Y.UPD_DATE AS PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE, 'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE, 'YYYY/MM') =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') || '/01', 'YYYY/MM/DD') - 1, 'YYYY/MM')) Y
WHERE X.NUM = Y.NUM(+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND, 0) <> X.STOCK)
```
此查询涉及到在特定月份(当前月)内,根据入库量和现有库存判断是否有库存差异。
以上技巧和示例涵盖了基本的表操作、数据迁移以及时间条件查询,对理解和操作SQL数据库十分有用。它们可以帮助你更有效地管理数据库,实现数据的灵活迁移和分析。
243 浏览量
137 浏览量
103 浏览量
2011-03-26 上传
145 浏览量
153 浏览量
399 浏览量
116 浏览量
127 浏览量

weixin_38576922
- 粉丝: 6
最新资源
- 深入理解Apache Tomcat 8.0.22 - Java Web服务器特性与管理
- 64位柯尼卡美能达bizhubC7528驱动下载安装指南
- 唐向宏版《数字信号处理》课件详解
- 使用jquery为图片添加交互热区示例
- 探索C++制作的超级玛丽源码与程序
- C#图书售卖系统源码下载与功能介绍
- Strava活动统计图形生成工具使用指南
- Android竖直滑动条实现与应用源码分享
- PDF文件对比工具:发现不同之处
- MFC实现的链表信息录入工具详解
- 握奇W5182写卡器驱动程序兼容Win7和XP
- Apache Tomcat 8.0.21版本特性与配置指南
- EVR平台:C#驱动的综合开发平台介绍
- MFC编辑框程序使用教程及源码分享
- 系统完整性审核失败解决方案及代码签名问题分析
- 学习Gogs的Dockerfile构建与部署指南