自 SQL 构造在 DB2 for OS/390® V6 中修订之后,如果我相信有一种 SQL 构造已经造成了最多的疑惑,那一定就是外连接。
V6 扩展了在 ON 子句中编写谓词的能力,并引入了大量其它的优化和查询改写方面的增强。虽然增强语法的确增加了外连接的潜在用法,但这也意味着需要去理解更多的内容。而语法也与它在 UNIX®、Linux、Windows 和 OS/2® 平台上的兄弟更加接近,使得在 DB2 系列中更容易保持 SQL 编码的一致性。
这篇文章由两个部分组成,我试图在文章中为编写外连接总结出一个指南以实现两个目的:
- 最重要的目标是获得正确的结果。
- 其次,考虑用不同的方法编写谓词的性能含义。
第 1 部分是关于外连接的更简单构造,就在 ON 和 Where 子句中编写谓词的效果进行简单的比较。在第 2 部分,我会涉及更复杂的主题,如简化外连接和嵌套外连接。
本文中的例子使用了取自 DB2 通用数据库(UDB)(非 OS/390)样本数据库的摘录。 图 1 中的数据是一整张表的子集。为了满足所有外连接中组合的需要,Project 表中含有 PROJNO = 'IF2000'
的行已被更新为设置 DEPTNO = 'E01'
。
对于 z/OS® 和 OS/390 的用户,表名将有所不同:
工作站上 DB2 表的名称 | OS/390 和 z/OS 版本的 DB2 表的名称 |
EMPLOYEE | EMP |
DEPARTMENT | DEPT |
PROJECT | PROJ |
Tags: 面试题
Create PROCEDURE demo_deptadd
@name varchar(20),@description varchar(20),@leader varchar(20),@phone varchar(20),
@address varchar(20),@starttime varchar(20),@info varchar(40)
AS
insert into department
(name,description,leader,phone,address,starttime,info)values
(@name,@description,@leader,@phone,@address,@starttime,@info)
Tags: SQL Server SQL存储过程
mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成。错误之处,请大家指正。
1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1009:不能删除数据库文件导致删除数据库失败
1010:不能删除数据目录导致删除数据库失败
1011:删除数据库文件失败
1012:不能读取系统表中的记录
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:关键字重复,更改记录失败
1023:关闭时发生错误
MYSQL初学者使用指南与介绍
一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110
.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
Tags: MYSQL