怎么用is null 另外怎么删除原有的主键

itcoco 2003-10-16 12:29:37
我的表如下
课程号 课程名 先修课
C801 数学
C802 C++ C807
C803 数据结构 C802
C804 数据库 C803
为什么我用
select * from 课程表
where 先修课 IS NULL
查询结果是空呢?无一条记录
而用select *from 课程表
where 先修课 IS not null (我这样写也不知道对不对)却所有的记录
都出来了

想问大家怎么写判断字段是否为空,就是怎么用is null 和 not null

另在问个问题 怎么在键好的表中删除掉已有的主键?用查询语句怎么写?
...全文
46 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
itcoco 2003-10-17
  • 打赏
  • 举报
回复
我现在的问题是怎么样删除 一个主建
alter table tablename
drop constraint pk_name
我用了不行 说我的主建名字不正确 所以我想问怎么样察看我的主建名字
alter table 学生表
drop constraint Pk_学号
服务器: 消息 3728,级别 16,状态 1,行 20
'pk_学号' 不是约束。
我的学生表(学号,姓名,年龄)
学号是主键
伍子V5 2003-10-17
  • 打赏
  • 举报
回复
我用的pk_name是用在建主键的使用用了constraint关键字指定了名字的

既然你没有指定名字,那系统就自动默认了

系统默认的一般是PK_表名
你可以用企业管理器查看一下
itcoco 2003-10-16
  • 打赏
  • 举报
回复
我不是要删除为空的记录
我上边是两个问题
一个怎么使用is null查询为空的记录

一个怎么删除表中原先键好的主键 用语句完成
shaken 2003-10-16
  • 打赏
  • 举报
回复
null 与 ''不同,如果你要删除 '' 必须使用:
delete from 课程表
where 先修课 like ''
cannou 2003-10-16
  • 打赏
  • 举报
回复
你那个表中
课程号 课程名 先修课
C801 数学 -------很可能是 ''而非null

查一下,表中的“是否允许空字符”设置,是不是这里有问题。
itcoco 2003-10-16
  • 打赏
  • 举报
回复
up
伍子V5 2003-10-16
  • 打赏
  • 举报
回复
select * from 课程表
where 先修课 IS NULL
是正确的
没有结果是因为你那个字段的数据是''而不是null

alter table tablename
drop constraint pk_name
itcoco 2003-10-16
  • 打赏
  • 举报
回复
我的先修课是允许为空的 我那个表示这样建立的
create table 课程表
(课程号 char(4) not null primary key,
课程名 char(12),
先修课 char(4)
)
是不是我这样写不对?因为我记录里确实是‘’,而非空
我插入纪录是这样写的
insert 课程表 values('c801','数学','')
mib3000 2003-10-16
  • 打赏
  • 举报
回复
课程号 课程名 先修课
C801 数学 //此记录先修课的值为''而非 'NULL'
C802 C++ C807
C803 数据结构 C802
C804 数据库 C803

因此


select * from 课程表
where 先修课 IS NULL
查询结果是空呢?无一条记录
而用select *from 课程表
where 先修课 IS not null 却所有的记录都出来了


34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧