自从软件实践课老师留了一个作业后,便开始自学数据库,用了很多时间,进步不算多,但学会了很多东西。
作业题目是 网上课程辅导与资源共享平台
可能用到的知识有很多:HTML .JSP.NET 数据库 等等
对于我来说跟别人合作,自己选择了一个比较好学的吧,数据库
两天课余时间,包括熬夜到1点半,自学了SQL关系数据库标准语言。包括:模式定义与删除,表的定义、删除与修改、索引的建立与删除。4中数据查询(单表、连接、嵌套、集合查询)。数据更新(插入、修改、删除)。视图定义、查询与更新。
又用了两天课余时间安装可恶的SQL2008。。从不会安装到上网上查,再到找同学帮忙才安好,用了足足两天的时间。才发现原来有时以为最简单的却会变成最麻烦的。
然后就是照着书上例子上机各种敲代码,并注释。就当做笔记了。
表是同学给规划的,自己要做的就是照着做。想不到的是,简单的东西却总是出现大大小小的各种问题,很少的8个表,超过3天课余时间了,还是没有做完。这使得自己不得不寻求各种帮助,寝室同学都没有会的,只好去网上问。不知不觉自己学会了使用优快云论坛,虽然到目前为止发帖数仅11个,且活动范围仅局限于 MS_SQL Server中,但是学到的却很多。很庆幸我学会了使用论坛交流。虽然已经开始觉得论坛有点慢,但至少一定会有答复的,这也令我很欣慰。也许不久会找到关于数据库的QQ群、或者认识高手吧。
开通博客3天后才能写东西。只好攒到现在一起记下,这里就为自己从零基础开始学习的笔记积累吧!
1、安装SQL2008完全靠自己的话 没有经验真的很麻烦、、、
2、使用SQL2008 真的很多东西都用不明白,大多数是一个学过数据库的同学教的,一部分也是自己去网上查的、问的。
比如,最开始连写语句的地方都找不到、、还是来优快云问的。幸好很简单、、“SQL Server Management Studio=》连接=》新建查询”
3、这个现在看起来也会觉得悲催、、写了一个创建表的语句,执行后显示成功,在表选项中却看不见我的表、、故在优快云发的贴,回复“执行下,然后在左侧树形结构中选择你创建的数据库,点开后里面有个表子项,展开里面就有你的表了。
前提是需要先创建数据库,然后在创建表”
4、一个小细节、忘加括号了,不得不来发帖。 以自身为参照表“create table Course (Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint,foreign key (Cpno) references Course(Cno));”
5、这个比较悲催、、教科书印刷错误。
create CLUSTER index Stusname on Student(Sname);
CREATE、DROP 或 ALTER 语句中使用了未知的对象类型 'CLUSTER'。
这是什么原因?
答:是clustered
6、select Sname,'Year of Birth:' as 'Year of Birth:',2004-Sage as '2004-Sage',LOWER(Sdept) as 'LOWER(Sdept)' from Student;/
这里学会了给列起个别名,而书上确实自己没有看到。我试了下,可以不加as
7、我建了一个表 create table Course (Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint,foreign key (Cpno) references Course(Cno));
我没有用语句输入数据,而是选择表直接添加数据,却出现错误。
引用“未更新任何行。 未提交行1中的数据。 错误源:.Net SqlClient Data Provider.
错误消息:UPDATE 语句与FOREIGN KEY SAME TABLE 约束“FK_Course_Cpno_1272C1CD”冲突,该冲突发生于数据库“S_T”,表“dbo.Course”,column"Cno"。
语句已停止。”
请教各位什么原因呢?
这个问题出现于,自己在直接向生成的表里填数据的时候,总会出现以上问题,且不能继续添加。在这里明白了,设置了主键外键,在添加数据的时候就要注意顺序!
8、select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade from Student left out join SC on (Student.Sno=SC.Sno);
又是打印错误。。 这里的out 实际上应该是outer
9、很幸运,在写这篇博客,看以往帖子的时候又学会了 看联机丛书!
10、我学习了加入列,后来发现不知道怎么删除一列。。。
alter table Student ADD S_entrance DATE;
正确答案是这样的 alter table student drop column s_entrance
11、这回帖子的问题明显比使用层次更高了,把自己使用的几个表贴出来,叫大家纠错。呵呵 果断还是标点符号问题。
另外有新的收获。学会了一点约束的使用:mark int check(mark between 0 and 10) times int check (times >0),
12、
我建了一个表,却忘了把course_id 设置成主键,该怎么做啊
ALTER TABLE Course
ALTER
COLUMN course_id
char(20)
NOT
NULL;
go
ALTER TABLE Course ADD CONSTRAINT pk_course_id PRIMARY KEY(course_id);
go
这个我看了之后感觉特别有膜拜的感觉、、、