sql的两个小问题 表的修改 查询

来源:百度知道 编辑:UC知道 时间:2024/06/12 04:56:42
sql server 2005
第一个问题
我已经再表students中建好列sex,但是我忘了建默认值
alter table
alter column sex char(2) null default '男'
这个语句为什么不对?

第二个问题
两张表a和b,我要查询笛卡尔连接后元组的数目
select count(*)
from(select a.*,b.* from a,b)
这个语句为什么不对?
1.table后面的表名字我忘了打了
2.如果不能跟default,那么我怎么才能加上默认值呢?
3.select count(*) from a,b 确实正确,但是我想问一下,是不是from后面不能接查询,要想在查询中再查询怎么办
4.如果解决了这个问题,悬赏分再加50分

5.a和b中有重复的列,结果显示多次为 't' 指定了列 'sno',怎么办?

1、可以添加默认值
ALTER TABLE 表名 --修改表

ADD CONSTRAINT df_sex /*将sex列添加默认约束为男*/

DEFAULT '男' FOR sex
2、可以接查询
select count(*)
from(select a.*,b.* from a,b) t --任何合法名都可以

第一句 talbe 后面没有表名字啊 而且是不是不能跟defalut啊
第二句
select count(*) from a,b

嗯 豆花兄正解

from 面可以跟任何子查询语句,但是有些情况需要在子查询查询后面给个别名,也就是把这个查询的结果作为一个表对打,而这个表的名字就是你在子查询的括号后面给指定一个,可以是任何合法的名字(如豆花给的”t“),在主查询中如果要用这个子查询中的数据时可以 别名.列名 来引用。

子查询中这样啊
select a.列1,a.列2,b.列1,b.列2 from a,b
把重复的列去掉就行了