菜鸟SQL基础6问

mysqlquestion 2010-02-08 03:18:40
1 怎么设置某数据项可以为NULL?
2 如果数据项为NULL时,插入时怎么写?
3 如何规定某项数据只能为1 ,2,3,NULL其中之一?
4 如何实现某数据项从0开始自动增长?
5 在VC下用ADO链接SQLSERVER2000,且登录模式是WINDOWS下验证,那么链接的语句怎么?
6 推荐一本SQL语句使用例子的电子书(可免费下载)?
小弟为某大学大一菜鸟,在家自己看数据库原理
希望各位达人多多指导。
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
老黎 2010-03-16
  • 打赏
  • 举报
回复

[Quote=引用楼主 mysqlquestion 的回复:]
1 怎么设置某数据项可以为NULL?
2 如果数据项为NULL时,插入时怎么写?
3 如何规定某项数据只能为1 ,2,3,NULL其中之一?
4 如何实现某数据项从0开始自动增长?
5 在VC下用ADO链接SQLSERVER2000,且登录模式是WINDOWS下验证,那么链接的语句怎么?
6 推荐一本SQL语句使用例子的电子书(可免费下载)?
小弟为某大学大一菜鸟,在家自己看数据库原理……
[/Quote]

--3约束
create table CheckTest(
id int check(id in(1,2,3)
)
go

insert into CheckTest
select 1 union all
select 2 union all
select 3 union all
select NULL

select * from CheckTest

/*
--结果
id
-----------
1
2
3
1
2
3
NULL

(7 行受影响)
*/
cxmcxm 2010-02-10
  • 打赏
  • 举报
回复
1 怎么设置某数据项可以为NULL?
创建表时在字段类型定义后加上null
例:
create table table1 (字段1 int null,字段2 int not null)
表table1 字段1可以为null,字段2 不能为null
与null相关的命令有SET ANSI_NULL_DFLT_OFF ,SET ANSI_NULL_DFLT_on 等用于指定表定义时
未指定null或not null时字段是null或not null,详细说明可查看帮助.

2 如果数据项为NULL时,插入时怎么写?
插入时用null,可不指定列
如1的表,如字段2为null,字段1为1
可用如下命令插入
insert into table1 (字段1 ) values (1)
或insert into table1 (字段1,字段2) values (1,null)

3 如何规定某项数据只能为1 ,2,3,NULL其中之一?
在字段规则中定义,可在触发器中作检查,不是1,2,3,null时回滚事务
4 如何实现某数据项从0开始自动增长?
字段1 int identity(0,1)
5 在VC下用ADO链接SQLSERVER2000,且登录模式是WINDOWS下验证,那么链接的语句怎么?
连接字符串为:Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=连接数据库名;
Data Source=数据库服务器名
老黎 2010-02-10
  • 打赏
  • 举报
回复
1 怎么设置某数据项可以为NULL?
答:在建表的时候可以这样建:

create table my_table
(
name varchar(10) NOT NULL,--不能为空
age int NULL --可以为空
)


2 如果数据项为NULL时,插入时怎么写?
答:假如建好的表是上面的表,那么插入空值这样这些

insert into my_table values('your_name',NULL)--插入了一条记录,name 为'your_name',age 为空的

3 如何规定某项数据只能为1 ,2,3,NULL其中之一?
答:用约束吧,具体请百度
4 如何实现某数据项从0开始自动增长?
答:在建表的时候这样写就实现了自增

create table newTable
(
ID int identity(0,1),--从0开始,一次增加1
name varchar(10),
age int
)
--插入数据时,不需要理会自增列,直接插入即可
insert into newTable values('your_name',NULL)


5 在VC下用ADO链接SQLSERVER2000,且登录模式是WINDOWS下验证,那么链接的语句怎么?
答:VC没用过
6 推荐一本SQL语句使用例子的电子书(可免费下载)?
答:百度之,然后迅雷之
小弟为某大学大一菜鸟,在家自己看数据库原理
希望各位达人多多指导。
xiaolingyanjituan 2010-02-09
  • 打赏
  • 举报
回复
、不设定,就可以为空了。默认值即为可以为空。 也可以在企业管理器里打开后按ctrl+0
2、不用管它正常的insert方法即可!
3、两种方法,check约束,或者触发器。建议用约束
4、identity
5、[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=DK;Data Source=WWW-616A813036B
6、迅雷一下吧有很多。 比如由浅入深...
ChinaITOldMan 2010-02-09
  • 打赏
  • 举报
回复
1、不设定,就可以为空了。默认值即为可以为空。 也可以在企业管理器里打开后按ctrl+0
2、不用管它正常的insert方法即可!
3、两种方法,check约束,或者触发器。建议用约束
4、identity
5、[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=DK;Data Source=WWW-616A813036B
6、迅雷一下吧有很多。 比如由浅入深...
starseeker7 2010-02-08
  • 打赏
  • 举报
回复
(local)或.是指连接本地
WWW-616A813036B 是服务器名称
check
多查联机帮助吧
mysqlquestion 2010-02-08
  • 打赏
  • 举报
回复
如何规定某项数据只能为1 ,2,3,NULL其中之一?
check约束
怎么我老是写不对啊?

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=DK;Data Source=WWW-616A813036B
Data Source不是应该写(local)或.吗?
maxch1225 2010-02-08
  • 打赏
  • 举报
回复
1、不设定,就可以为空了。默认值即为可以为空。 也可以在企业管理器里打开后按ctrl+0
2、不用管它正常的insert方法即可!
3、两种方法,check约束,或者触发器。建议用约束
4、identity
5、[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=DK;Data Source=WWW-616A813036B
6、迅雷一下吧有很多。 比如由浅入深...
Mr_Nice 2010-02-08
  • 打赏
  • 举报
回复
1、不设定,就可以为空了。默认值即为可以为空。
2、插入时不写,就是默认为空了。
3、两种方法,check约束,或者触发器。建议用约束
4、identity
5、不详VC
6、迅雷一下吧有很多。 比如由浅入深...

个人建议仅供参考!。。。

34,576

社区成员

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

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