有如下的几个数据表:
CREATE TABLE 学生 (学生ID INT, 姓名 VARCHAR(20))
CREATE TABLE 课程 (课程ID INT, 课程名 VARCHAR(20))
CREATE TABLE 成绩表 (学生ID INT, 课程ID INT, 成绩 INT)INSERT INTO 学生
SELECT 1,'张三' UNION ALL
SELECT 2,'李四' UNION ALL
SELECT 3,'王五'INSERT INTO 课程
SELECT 1,'语文' UNION ALL
SELECT 2,'化学' UNION ALL
SELECT 3,'外语' UNION ALL
SELECT 4,'物理'INSERT INTO 成绩表
SELECT 1,1,60 UNION ALL
SELECT 1,2,70 UNION ALL
SELECT 1,3,65 UNION ALL
SELECT 1,4,90 UNION ALL
SELECT 2,1,80 UNION ALL
SELECT 2,2,65 UNION ALL
SELECT 2,3,85 UNION ALL
SELECT 2,4,80 UNION ALL
SELECT 3,1,50 UNION ALL
SELECT 3,2,75 UNION ALL
SELECT 3,3,85 UNION ALL
SELECT 3,4,60
表结构大家一看就知道了,
学生Id 姓名
1 张三
2 李四
3 王五
课程表:
课程Id 课程名
1 语文
2 化学
3 外语
4 物理
成绩表:
学生Id 课程Id 成绩
1 1 60
1 2 70
1 3 65
1 4 90
2 1 80
2 2 65
2 3 85
2 4 80
3 1 50
3 2 75
3 3 85
3 4 60
下面两个sql语句得到的结果是一样的,
语句一
select a.姓名,b.课程名,c.成绩 from 学生 a,课程 b,成绩表 c where a.学生id=c.学生id and b.课程id=c.课程id[/code.语句二[code=SQL]
SELECT B.姓名,C.课程名,D.成绩 FROM 成绩表 D
INNER JOIN 学生 B ON B.学生ID=D.学生ID
INNER JOIN 课程 C ON C.课程ID=D.课程ID
我的问题是:
1、两种写法有本质区别否?有的话区别在什么地方
2、有区别的话,那种写法更好理解,更科学,执行效率更高,
CREATE TABLE 学生 (学生ID INT, 姓名 VARCHAR(20))
CREATE TABLE 课程 (课程ID INT, 课程名 VARCHAR(20))
CREATE TABLE 成绩表 (学生ID INT, 课程ID INT, 成绩 INT)INSERT INTO 学生
SELECT 1,'张三' UNION ALL
SELECT 2,'李四' UNION ALL
SELECT 3,'王五'INSERT INTO 课程
SELECT 1,'语文' UNION ALL
SELECT 2,'化学' UNION ALL
SELECT 3,'外语' UNION ALL
SELECT 4,'物理'INSERT INTO 成绩表
SELECT 1,1,60 UNION ALL
SELECT 1,2,70 UNION ALL
SELECT 1,3,65 UNION ALL
SELECT 1,4,90 UNION ALL
SELECT 2,1,80 UNION ALL
SELECT 2,2,65 UNION ALL
SELECT 2,3,85 UNION ALL
SELECT 2,4,80 UNION ALL
SELECT 3,1,50 UNION ALL
SELECT 3,2,75 UNION ALL
SELECT 3,3,85 UNION ALL
SELECT 3,4,60
表结构大家一看就知道了,
学生Id 姓名
1 张三
2 李四
3 王五
课程表:
课程Id 课程名
1 语文
2 化学
3 外语
4 物理
成绩表:
学生Id 课程Id 成绩
1 1 60
1 2 70
1 3 65
1 4 90
2 1 80
2 2 65
2 3 85
2 4 80
3 1 50
3 2 75
3 3 85
3 4 60
下面两个sql语句得到的结果是一样的,
语句一
select a.姓名,b.课程名,c.成绩 from 学生 a,课程 b,成绩表 c where a.学生id=c.学生id and b.课程id=c.课程id[/code.语句二[code=SQL]
SELECT B.姓名,C.课程名,D.成绩 FROM 成绩表 D
INNER JOIN 学生 B ON B.学生ID=D.学生ID
INNER JOIN 课程 C ON C.课程ID=D.课程ID
我的问题是:
1、两种写法有本质区别否?有的话区别在什么地方
2、有区别的话,那种写法更好理解,更科学,执行效率更高,
解决方案 »
- 扩展回退段4失败
- 高手请进,谢谢!!!
- Oracle11g安装问题
- oracle 关系数据库和ldap轻量目录访问协议数据库的区别
- 帮帮忙!递归如何优化啊
- ORACLE 9i数据库优化,statspack报告,请大侠救命呀。
- 现在做的一个项目需要通过SQL*Loader进行程序导入问题,分数不够可以再加!或者当面酬谢也行!
- 请问SQLCODE ,-1001代表什么错误?
- 求教:如何将一个文本文件或电在表格文件导入ORCAL中的一个表中?
- oracle9i连接时出现的问题
- 请问如何删除重复行(留下我指定的行)?
- Oracle10g 报ORA-12514:TNS:listenendoes not currently know of
SELECT B.姓名,C.课程名,D.成绩 FROM 成绩表 D
INNER JOIN 学生 B ON B.学生ID=D.学生ID
INNER JOIN 课程 C ON C.课程ID=D.课程ID
这个语句中
B.学生ID=D.学生ID
换成
D.学生ID=B.学生ID
结果相同,在效率上有区别么?
或者写法上有什么注意的么?