SQL 查询“仅仅”至少“全部”的问题
“全部的问题”在上一篇中已经写过一点了。
“仅仅”
:这个问题可以使用多表连接来处理。例如:查询仅仅选修了课程A和课程B的学生的信息,sql如下:
其中表student定义了学生的信息。transcript定义了学生的选课情况。crscode字段表示课程代码。
select s.id
from student s,transcript t1,transcript t2
where s.id = t1.studid and t1.studid = t2.studid
and t1.crscode = 'cs305' and t2.crscode = 'mgt123'
这里是三个表的连接。
“至少”:至少的问题,如果
至少的内容是预先知道的,如:查询至少选修了课程A和B的学生,这样也是可以使用多表连接的。
sql如下:
select t1.studid
from transcript t1,transcript t2,student s
where t1.crscode = 'cs305' and t2.crscode = 'cs315' and s.id = t1.studid and t1.studid = t2.studid
但是如果
至少的内容事先是不知道的,就不能用多表连接了。如:查询至少选修了学生S选修的课程的学生。就是说学生S选修了一些课程,
查查看哪些学生的选课中包含
这些课程的。很显然sql中没有”包含“这样的谓词。但是可以将这个需求转换为其他的描述方式:
不存在这样的课程,学生S选了,但是该学生
没有选。
这里红字的”该学生“就是我们要查询出来的内容。
sql如下:
相关文档:
create or replace procedure pro_insert_dbms
is
cid number;
cid_DDL number;
selectsql varchar2(1000);
ddlsql varchar2(1000);
row_count number;
nofrows integer;
lrowid & ......
1.选择操作的数据库
连接到服务器之后,首先需要选择要进行操作的数据库。使用PHP的MSSQL扩展库中的mssql_select_db()函数即可实现连接服务器上的数据库。该函数格式如下:
bool mssql_select_db(string database_name[,resource link_identifier)
该函数各参数意义:
a. 参数 database_name为指定的服务器上可用的数据 ......
自:http://blog.csdn.net/AJAXBloger/archive/2007/08/29/1764506.aspx
子查询:
使用子查询的原则
1.一个子查询必须放在圆括号中。
2.将子查询放在比较条件的右边以增加可读性。
子查
询不包含 ORDER BY 子句。对一个 SELECT 语句只能用一个 ORDER BY 子句,
并且如果指定了它就必须放在主
SELECT 语句的最 ......
具有固定有效位数和小数位数的数值资料类型。
decimal[ (p[ , s] )] and numeric[ (p[ , s] )]
固定有效位数和小数位数的数字。当使用最大有效位数时,有效值是从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义字是 dec 和 dec(p, s)。numeric 的功能相当於 decimal。
p (有效位数)
可储存的最大十进位数总数,小 ......
学习sql的必经问题。
学生表student (id学号 Sname姓名 Sdept所在系)
课程表Course (crscode课程号 name课程名)
学生选课表transcript (studid学号 &nbs ......