SQL虚拟表应用三例
SQL虚拟表是一种通过SELECT语句查询常量表达式形成的一个结果集,和数据库的视图、物理表、临时表都差不多。一旦这个虚拟表构造出来,就可以当作实际的表来查询。
环境:
Windows XP Professional 简体中文版
mysql-5.0.45-win32
应用三例:
1、求数字对会计大写的对应表。
SELECT *
FROM (SELECT 0 AS CODE, '零' AS NAME
UNION
SELECT 1, '壹'
UNION
SELECT 2, '贰'
UNION
SELECT 3, '叁'
UNION
SELECT 4, '肆'
UNION
SELECT 5, '伍'
UNION
SELECT 6, '陆'
UNION
SELECT 7, '柒'
UNION
SELECT 8, '捌'
UNION
SELECT 9, '玖'
UNION
SELECT 10, '拾') AS RMBDX
ORDER BY CODE ASC;
查询结果:
CODE NAME
--------------
0 零
1 壹
2 贰
3 叁
4 肆
5 伍
6 陆
7 柒
8 捌
9 玖
10 拾
2、产生0~999之间的数字。
SELECT CAST(CONCAT(CONCAT(N1, N2), N3) AS UNSIGNED INTEGER) AS NUMS
FROM (SELECT '0' AS N1
UNION
SELECT '1'
UNION
SELECT '2'
UNION
SELECT '3'
UNION
SELECT '4'
UNION
SELECT '5'
UNION
SELECT '6'
UNION
SELECT '7'
UNION
SELECT '8'
UNION
SELECT '9') AS NUM1,
(SELECT '0' AS N2
UNION
SELECT '1'
UNION
SELECT '2'
UNION
SELECT '3'
UNION
SELECT '4'
UNION
SELECT '5'
UNION
SELECT '6'
UNION
SELECT '7'
UNION
SELECT '8'
UNION
SELECT '9') AS NUM2,
(SELECT '0' AS N3
UNION
SELECT '1'
UNION
SELECT '2'
UNION
SELECT '3'
UNION
SELECT '4'
UNION
SELECT '5'
UNION
SELECT '6'
UNION
SELECT '7'
UNION
SELECT '8'
UNION
SELECT '9') AS NUM3
ORDER BY NUMS ASC;
查询结果:
NUMS
---------
0
1
2
3
4
...
998
999
3、求0~999之间整数的二次方根(平方根)。
SELECT NUMS AS SQUARE, ROUND(SQRT(NUMS)) AS BASIS
FROM (SELECT CAST(CONCAT(CONCAT(N1, N2), N3) AS UNSIGNED INTEGER) AS NUMS
FROM (SELECT '0' AS N1
UNION
SELECT '1'
UNION
SELECT '2'
UNION
SELECT '3'
UNION
SELECT '4'
UNION
SELECT '5'
UNION
SELECT '6'
UNION
SELECT '7'
UNION
SELECT '8'
UNION
SELECT '9') AS NUM1,
(SELECT '0' AS N2
UNION
SELECT '1'
UNION
SELECT '2'
UNION
SELECT '3'
UNION
SELECT '4'
UNION
SELECT '5'
UNION
SELECT '6'
UNION
SELECT '7'
UNION
SELECT '8'
UNION
SELECT '9') AS NUM2,
(SELECT '0' AS N3
UNION
SELECT '1'
UNION
SELECT '2'
UNION
SELECT '3'
UNION
SELECT '4'
UNION
SELECT '5'
UNION
SELECT '6'
UNION
SELECT '7'
UNION
SELECT '8'
UNION
SELECT '9') AS NUM3) AS TMP_TAB
WHERE SQRT(NUMS) = ROUND(SQRT(NUMS))
ORDER BY SQUARE ASC;
查询结果:
SQUARE BASIS
------------------
0 0
1 1
4 2
9 3
16 4
25 5
36 6
49 7
64 8
81 9
100 10
121 11
144 12
169 13
196 14
225 15
256 16
289 17
324 18
361 19
400 20
441 21
484 22
529 23
576 24
625 25
676 26
729 27
784 28
841 29
900 30
961 31
---- 《完》。
分享到:
相关推荐
- 当对表进行UPDATE操作时,系统会自动生成两个虚拟表:`inserted`和`deleted`。`inserted`表包含所有新插入或更新后的行,`deleted`表则包含被更新或删除前的旧行。 3. **触发器的创建**: - 使用`CREATE ...
触发器的执行过程中,SQL Server 会维护两个虚拟表,分别是Inserted表和Deleted表。这两个表在触发器被触发时存在,用以存储操作所涉及的数据。具体而言,Deleted表存储的是被DELETE或UPDATE语句影响的行的副本,即...
9. **视图**:视图是虚拟表,基于一个或多个表的查询结果。创建视图`CREATE VIEW EmployeeView AS SELECT Name, Department FROM Employees;`,然后可以像查询普通表一样查询视图。 10. **存储过程**:存储过程是一...
这个虚拟表是由视图定义语句根据特定的映射关系导出的,但不同于实际的基本表,视图本身并不存储任何数据,其数据仍保留在源基本表中。因此,视图被称为“虚表”。视图的主要作用包括: 1. **简化用户操作**:用户...
《例学SQL》帮助文档是为SQL初学者和进阶者设计的一份全面教程,旨在通过实例学习的方式,深入浅出地讲解SQL语言的核心概念、语法和应用技巧。CHM(Compiled HTML Help)格式的文档使得内容易于检索,提高了学习效率...
- 视图是虚拟表,不存储数据,但提供特定查询结果的便捷访问。例9创建了一个FACULTY视图,例10创建了GRADE_TABLE视图,结合多表提供特定查询结果。 - `DROP VIEW`用于删除视图,例11删除了GRADE_TABLE视图,...
- **创建视图**:例如,`CREATE VIEW FACULTY`创建了一个只包含教师号、姓名和年龄的虚拟表FACULTY。`CREATE VIEW GRADE_TABLE`则创建了一个显示学生姓名、课程名和成绩的视图。 - **删除视图**:如例11,`DROP ...
视图是虚拟表,提供数据的不同视图。联接操作允许从多个表中合并数据。理解如何使用视图和联接可以简化复杂查询。 9. **大数据与分析** SQL Server支持大数据处理,如列式存储、数据仓库和OLAP(在线分析处理)...
- **创建视图**:基于一个或多个表构建虚拟表。 **4. 存储过程设计** - **编写存储过程**:封装SQL代码块,实现复杂逻辑。 - **执行存储过程**:通过查询分析器调用已创建的存储过程。 **5. 备份与恢复** - **...
#### 三、SQL Server的Inserted和Deleted虚拟表 在SQL Server中,`Inserted`和`Deleted`是两个非常重要的虚拟表,它们用于存储DML(数据操纵语言)操作的结果集。这两个虚拟表只存在于触发器内部,其内容取决于执行...
SQL Server为每个触发器都创建了两个专用虚拟表:inserted表和deleted表。这两个表由系统来维护,他们存在于内存中,而不是在数据库中。这两个表的结构总是与被该触发器作用的表结构相同。触发器执行完成后,与该...
本文将以`bluecrm.sql`为例,深入解析Jeesite中的SQL应用及其在实际业务场景中的运用。 `bluecrm.sql`是一个数据库脚本文件,通常用于初始化Jeesite框架下的BlueCRM(蓝鲸客户关系管理系统)的数据结构。这个文件...
视图则是虚拟表,基于一个或多个表的查询结果。索引用于加速数据检索,可以通过`CREATE INDEX`命令创建。 动态修改表的结构涉及`ALTER TABLE`语句,允许添加、删除或修改列。而读取和显示数据则需要使用`SELECT`...
- **视图**:创建虚拟表,以便简化复杂的查询或者隐藏数据的复杂性。 - **函数与过程**:利用内置函数或自定义函数/过程来执行特定任务,如计算或逻辑判断。 - **触发器**:当特定事件发生时自动执行的代码块,常...
视图是从一个或多个基本表导出的虚拟表,只保存其定义,不存储实际数据,允许用户以更方便的方式查看和操作数据。 以学生-课程数据库为例,它包括以下三个表: - 学生表(Student):Sno(学号)、Sname(姓名)、...
触发器在特定数据库事件(如INSERT、UPDATE、DELETE)发生时自动执行,视图是基于一个或多个表的虚拟表,提供了一种简化数据访问的方式。 总之,掌握SQL基础并熟悉MySQL数据库的使用,是成为一名合格的数据库管理员...
- 视图是从一个或几个基表(或视图)导出的虚拟表。 - 示例:为建工程项目建立一个供应情况的视图`V_SPJ`。 ```sql CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ, J WHERE SPJ.JNO = J.JNO AND JNAME...
- **视图(VIEW)**:虚拟表,基于一个或多个表的查询结果。 - **存储过程(Stored Procedure)**:预编译的SQL语句集合,可以包含控制流语句,用于执行复杂的业务逻辑。 这个压缩包中的T-SQL代码涵盖了数据库...