1.selecte.name,e.salarywheree.managerid=(selectidfromemployeewherename='zxx
');
2.selecte.name,e.salary,m.name,m.salaryfromemployeese,employeesmwhere
e.managerid=m.idandm.name='zxx';
表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等
将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟!
sql 语句全部大写,特别是列名和表名都大写。特别是 sql 命令的缓存功能,更加需要统一
大小写,sql 语句 à 发给 oracle 服务器 à 语法检查和编译成为内部指令 à 缓存和执行指令。
根据缓存的特点,不要拼凑条件,而是用?和 PreparedStatment
还有索引对查询性能的改进也是值得关注的。
备注:下面是关于性能的讨论举例
4 航班®3 个城市
m*n
select*fromflight,citywhereflight.startcityid=city.cityidandcity.name='beijing';
m+n
select*fromflightwherestartcityid=(selectcityidfromcitywherecityname='beijing');
selectflight.id,'beijing',flight.flightTimefromflightwherestartcityid=(selectcityidfromcity
wherecityname='beijing')
6、union 和 unionall 有什么不同?
假设我们有一个表 Student,包括以下字段与数据:
droptablestudent;
createtablestudent
(
idintprimarykey,
namenvarchar2(50)notnull,
scorenumbernotnull
);
insertintostudentvalues(1,'Aaron',78);
insertintostudentvalues(2,'Bill',76);
insertintostudentvalues(3,'Cindy',89);
insertintostudentvalues(4,'Damon',90);
insertintostudentvalues(5,'Ella',73);