- 浏览: 196898 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (139)
- 软件 (0)
- Pattern (6)
- CSDN导入 (19)
- Struts (3)
- [网站分类]1.网站首页原创 (27)
- [网站分类]6.转载区 (4)
- Hibernate (10)
- Error (8)
- [网站分类]2.Java新手区 (20)
- Java (8)
- [网站分类]4.其他技术区 (10)
- Web (1)
- C++ (2)
- Algorithm (4)
- Linux (2)
- Skill (1)
- Tech (2)
- Note (2)
- [网站分类]3.非技术区 (1)
- Database (1)
- Winty (7)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
最新评论
-
haohao-xuexi02:
很不错哦。
O'Reilly cos上传组件的使用(1/3) - 上传文件 -
yoin528:
useUnicode=true&charact ...
[原]向MySQL数据库插入Blob数据的问题 -
xiaoqing20:
下载来看看!呵呵
[原]Struts2类型转换 -
xiaoqing20:
[原]Struts2类型转换
-- Author:Winty(天堂露珠)
-- Date:2009-6-14
use test;
-- 创建表
CREATE TABLE Student(
sid VARCHAR(20),
sname VARCHAR(50),
cid VARCHAR(20),
PRIMARY KEY(sid)
);
CREATE TABLE Course(
cid VARCHAR(20),
cname VARCHAR(50),
PRIMARY KEY(cid)
);
INSERT INTO Student values('S001','张三','C100');
INSERT INTO Student values('S002','李四','C200');
INSERT INTO Student values('S003','王五','C300');
-- C000是Course表中没有的
INSERT INTO Student values('S004','赵六','C000');
INSERT INTO Course values('C100','操作系统');
INSERT INTO Course values('C200','编译原理');
INSERT INTO Course values('C300','网络安全');
-- C400是Student表中没有引用的
INSERT INTO Course values('C400','软件技术');
-- 笛卡尔积
SELECT * FROM Student , Course;
/*
结果
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C100 | 操作系统 |
| S003 | 王五 | C300 | C100 | 操作系统 |
| S004 | 赵六 | C000 | C100 | 操作系统 |
| S001 | 张三 | C100 | C200 | 编译原理 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C200 | 编译原理 |
| S004 | 赵六 | C000 | C200 | 编译原理 |
| S001 | 张三 | C100 | C300 | 网络安全 |
| S002 | 李四 | C200 | C300 | 网络安全 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | C300 | 网络安全 |
| S001 | 张三 | C100 | C400 | 软件技术 |
| S002 | 李四 | C200 | C400 | 软件技术 |
| S003 | 王五 | C300 | C400 | 软件技术 |
| S004 | 赵六 | C000 | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- 自然连接:NATURAL JOIN
SELECT * FROM Student NATURAL JOIN Course;
/*
结果:
+------+------+-------+----------+
| cid | sid | sname | cname |
+------+------+-------+----------+
| C100 | S001 | 张三 | 操作系统 |
| C200 | S002 | 李四 | 编译原理 |
| C300 | S003 | 王五 | 网络安全 |
+------+------+-------+----------+
*/
-- 内连接:INNER JOIN
SELECT * FROM Student s INNER JOIN Course c ON s.cid=c.cid;
/*
结果:
+------+------+-------+----------+
| cid | sid | sname | cname |
+------+------+-------+----------+
| C100 | S001 | 张三 | 操作系统 |
| C200 | S002 | 李四 | 编译原理 |
| C300 | S003 | 王五 | 网络安全 |
+------+------+-------+----------+
*/
-- 与使用INNER JOIN结果类似,但包含重复列(cid)
SELECT * FROM Student s , Course c WHERE s.cid=c.cid;
/*
结果:
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
+------+-------+------+------+----------+
*/
-- 左外连接: LEFT OUTER JOIN
SELECT * FROM Student AS s LEFT JOIN Course AS c ON s.cid=c.cid;
/*
结果:
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | NULL | NULL |
+------+-------+------+------+----------+
*/
-- 右外连接: RIGHT OUTER JOIN
SELECT * FROM Student s RIGHT JOIN Course c ON s.cid=c.cid;
/*
结果:
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| NULL | NULL | NULL | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- FULL OUTER JOIN:用左右连接实现
SELECT * FROM Student AS s LEFT JOIN Course AS c ON s.cid=c.cid
UNION
SELECT * FROM Student s RIGHT JOIN Course c ON s.cid=c.cid;
/*
结果
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | NULL | NULL |
| NULL | NULL | NULL | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- 交叉连接:CROSS JOIN
-- 与SELECT * FROM Student
SELECT * FROM Student CROSS JOIN Course;
/*
结果
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C100 | 操作系统 |
| S003 | 王五 | C300 | C100 | 操作系统 |
| S004 | 赵六 | C000 | C100 | 操作系统 |
| S001 | 张三 | C100 | C200 | 编译原理 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C200 | 编译原理 |
| S004 | 赵六 | C000 | C200 | 编译原理 |
| S001 | 张三 | C100 | C300 | 网络安全 |
| S002 | 李四 | C200 | C300 | 网络安全 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | C300 | 网络安全 |
| S001 | 张三 | C100 | C400 | 软件技术 |
| S002 | 李四 | C200 | C400 | 软件技术 |
| S003 | 王五 | C300 | C400 | 软件技术 |
| S004 | 赵六 | C000 | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- UNION
SELECT * FROM Student WHERE sid='S001'
UNION
SELECT * FROM Student WHERE sid='S002';
-- 与此等价
SELECT * FROM Student WHERE sid='S001' OR sid='S002';
/*
结果
+------+-------+------+
| sid | sname | cid |
+------+-------+------+
| S001 | 张三 | C100 |
| S002 | 李四 | C200 |
+------+-------+------+
*/
-- Date:2009-6-14
use test;
-- 创建表
CREATE TABLE Student(
sid VARCHAR(20),
sname VARCHAR(50),
cid VARCHAR(20),
PRIMARY KEY(sid)
);
CREATE TABLE Course(
cid VARCHAR(20),
cname VARCHAR(50),
PRIMARY KEY(cid)
);
INSERT INTO Student values('S001','张三','C100');
INSERT INTO Student values('S002','李四','C200');
INSERT INTO Student values('S003','王五','C300');
-- C000是Course表中没有的
INSERT INTO Student values('S004','赵六','C000');
INSERT INTO Course values('C100','操作系统');
INSERT INTO Course values('C200','编译原理');
INSERT INTO Course values('C300','网络安全');
-- C400是Student表中没有引用的
INSERT INTO Course values('C400','软件技术');
-- 笛卡尔积
SELECT * FROM Student , Course;
/*
结果
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C100 | 操作系统 |
| S003 | 王五 | C300 | C100 | 操作系统 |
| S004 | 赵六 | C000 | C100 | 操作系统 |
| S001 | 张三 | C100 | C200 | 编译原理 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C200 | 编译原理 |
| S004 | 赵六 | C000 | C200 | 编译原理 |
| S001 | 张三 | C100 | C300 | 网络安全 |
| S002 | 李四 | C200 | C300 | 网络安全 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | C300 | 网络安全 |
| S001 | 张三 | C100 | C400 | 软件技术 |
| S002 | 李四 | C200 | C400 | 软件技术 |
| S003 | 王五 | C300 | C400 | 软件技术 |
| S004 | 赵六 | C000 | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- 自然连接:NATURAL JOIN
SELECT * FROM Student NATURAL JOIN Course;
/*
结果:
+------+------+-------+----------+
| cid | sid | sname | cname |
+------+------+-------+----------+
| C100 | S001 | 张三 | 操作系统 |
| C200 | S002 | 李四 | 编译原理 |
| C300 | S003 | 王五 | 网络安全 |
+------+------+-------+----------+
*/
-- 内连接:INNER JOIN
SELECT * FROM Student s INNER JOIN Course c ON s.cid=c.cid;
/*
结果:
+------+------+-------+----------+
| cid | sid | sname | cname |
+------+------+-------+----------+
| C100 | S001 | 张三 | 操作系统 |
| C200 | S002 | 李四 | 编译原理 |
| C300 | S003 | 王五 | 网络安全 |
+------+------+-------+----------+
*/
-- 与使用INNER JOIN结果类似,但包含重复列(cid)
SELECT * FROM Student s , Course c WHERE s.cid=c.cid;
/*
结果:
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
+------+-------+------+------+----------+
*/
-- 左外连接: LEFT OUTER JOIN
SELECT * FROM Student AS s LEFT JOIN Course AS c ON s.cid=c.cid;
/*
结果:
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | NULL | NULL |
+------+-------+------+------+----------+
*/
-- 右外连接: RIGHT OUTER JOIN
SELECT * FROM Student s RIGHT JOIN Course c ON s.cid=c.cid;
/*
结果:
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| NULL | NULL | NULL | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- FULL OUTER JOIN:用左右连接实现
SELECT * FROM Student AS s LEFT JOIN Course AS c ON s.cid=c.cid
UNION
SELECT * FROM Student s RIGHT JOIN Course c ON s.cid=c.cid;
/*
结果
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | NULL | NULL |
| NULL | NULL | NULL | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- 交叉连接:CROSS JOIN
-- 与SELECT * FROM Student
SELECT * FROM Student CROSS JOIN Course;
/*
结果
+------+-------+------+------+----------+
| sid | sname | cid | cid | cname |
+------+-------+------+------+----------+
| S001 | 张三 | C100 | C100 | 操作系统 |
| S002 | 李四 | C200 | C100 | 操作系统 |
| S003 | 王五 | C300 | C100 | 操作系统 |
| S004 | 赵六 | C000 | C100 | 操作系统 |
| S001 | 张三 | C100 | C200 | 编译原理 |
| S002 | 李四 | C200 | C200 | 编译原理 |
| S003 | 王五 | C300 | C200 | 编译原理 |
| S004 | 赵六 | C000 | C200 | 编译原理 |
| S001 | 张三 | C100 | C300 | 网络安全 |
| S002 | 李四 | C200 | C300 | 网络安全 |
| S003 | 王五 | C300 | C300 | 网络安全 |
| S004 | 赵六 | C000 | C300 | 网络安全 |
| S001 | 张三 | C100 | C400 | 软件技术 |
| S002 | 李四 | C200 | C400 | 软件技术 |
| S003 | 王五 | C300 | C400 | 软件技术 |
| S004 | 赵六 | C000 | C400 | 软件技术 |
+------+-------+------+------+----------+
*/
-- UNION
SELECT * FROM Student WHERE sid='S001'
UNION
SELECT * FROM Student WHERE sid='S002';
-- 与此等价
SELECT * FROM Student WHERE sid='S001' OR sid='S002';
/*
结果
+------+-------+------+
| sid | sname | cid |
+------+-------+------+
| S001 | 张三 | C100 |
| S002 | 李四 | C200 |
+------+-------+------+
*/
发表评论
-
[原]MyEclipse location already exists
2009-07-27 00:37 1703[标题]:[原]MyEclipse location alre ... -
[原]Exception starting filter MyStruts2
2009-07-27 19:41 1016[标题]:[原]Exception starting filt ... -
[原]Struts2校验框架
2009-07-27 23:54 1087[标题]:[原]Struts2校验框架 [时间]:2009- ... -
[原]Struts2-拦截器
2009-08-01 00:21 1128[标题]:[原]Struts2-拦截器 [时间]:2009- ... -
[原]Struts2-文件上传与下载
2009-08-08 08:48 2148[标题]:[原]Struts2-文件上 ... -
[原]Struts2-国际化
2009-08-10 18:13 1872[标题]:[原]Struts2-国际化 [时间]:2009- ... -
[原]Struts2-深入探索
2009-08-29 20:32 1034[标题]:[原]Struts2-深入探索 [时间]:2009 ... -
[原]Struts2-整合JFreeChart
2009-09-03 17:10 1881[标题]:[原]Struts2-整合JFr ... -
[转]Java 小例子:数据持久化(保存数据到文件)
2009-03-16 11:00 1746说数据持久化,初学者可能还不太懂;但要说把数据保存到文件,这谁 ... -
[原]调试EL函数时,Tomcat提示NullPointerException
2009-04-03 19:02 892[标题]:调试EL函数时,Tomcat提示NullPointe ... -
[原]HelloWorldServlet
2009-05-27 22:16 905编译运行步骤: 1、将HelloWorldServlet.ja ... -
[原]getServletInfo()
2009-05-27 23:16 1347《JSP完全学习手册》学习心得之:getServletInfo ... -
[原]jsp:forward
2009-05-27 23:24 887《JSP完全学习手册》学习心得:jsp:forward Jud ... -
[原]jsp:param
2009-05-27 23:27 1545《JSP完全学习手册》学习心得:jsp:param param ... -
[原]request.getParameterValues()
2009-05-27 23:32 1187《JSP完全学习手册》学习心得:request.getPara ... -
[原]隐含对象config
2009-05-27 23:54 722《JSP完全学习手册》学习心得:隐含对象config < ... -
[原]cookie读写
2009-05-28 00:03 831《JSP完全学习手册》学习心得:cookie读写 <%@ ... -
[原]getHttpHeader
2009-05-28 00:14 818《JSP完全学习手册》学习心得:getHttpHeader g ... -
[原]向MySQL数据库插入Blob数据的问题
2009-06-03 23:45 3946[标题]:向MySQL数据库插 ...
相关推荐
SQL基本SELECT查询语句_内外连接
SqlServer连接工具SqlServer连接工具SqlServer连接工具
解决oracle sqldeveloper无法连接mysql、SQLServer问题,sqlDeveloper是ORACLE数据库开发工具,自带的是无法连接MS SQL Server以及mysql的,想连接的话需要第三方工具。 使用方法: 解压出来后将2个jar放入jlib...
SQL Server连接字段的方法 SQL Server连接字段的方法
Sqldbx连接oracle,不用安装client http://www.cnblogs.com/ycdx2001/p/5441405.html
SQLTools sql连接工具SQLTools sql连接工具SQLTools sql连接工具
sql连接myeclipse与sql的连接
sql连接器
sql左外连接、右外连接、内连接、全外连接的区别
sqlserver连接字符串大全,基本涵盖全了
SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接
SQL SERVER连接oracle数据库几种方法 查询oracle数据库中的表 在master数据库中查看已经存在的链接服务器 要在企业管理器内指定登录帐号
SQLDBX 可以连接多种数据库,比如SQLSERVER各种版本 ORECAL版本 MYSQL版本
ASP连接SQL2005数据库连接代码
主要是让初学者知道如何连接数据库,我主要连接的是SQL、ACCESS可以当参考
sqlserver连接测试工具
sqldeveloper连接TIMESTEN
sql左连接,右连接,内连接,全连接详细讲解
sqljdbc4 (SQL连接驱动包)sqljdbc4 (SQL连接驱动包) sqljdbc4 (SQL连接驱动包) sqljdbc4 (SQL连接驱动包)
本代码已经通过vs2008调试,连接sqlserver 2000\2005 并应用于项目中。sql server sql server连接数据库 ado连接sql server