学习sqlserver的条件
我是个大专生,说是计算机应用毕业的可实际在上学的时候学的很差,连foxpro都不会,基本的增删查改感觉也很难,现在做软件维护工作,感觉很吃力,正在自学sqlserver,...
我是个大专生,说是计算机应用毕业的可实际在上学的时候学的很差,连foxpro都不会,基本的增删查改感觉也很难,现在做软件维护工作,感觉很吃力,正在自学sqlserver,可是2年过去了也没什么进步,还是连段增删查改语句都感觉写不出来,不是我不努力,我感觉是我应该有什么基础没学所以才会这样,不知道我是差了什么呢,我感觉我智商一般,但新同事90后都可以做的我都看不懂,不知道他是如何一看就明白的
展开
3个回答
展开全部
不要灰心,不要气馁!学习SQL SERVER不需要什么条件,况且你读过大专,关键是你要掌握好基础,sql靠的是一种思想,但是这种思想是建立在你具有一定sql基础上的,sql语句就那么多,但是演变出来的东西却无穷。
你要专心的去记住一些东西,就哪怕是一句简单的select * from tablename,你也要去分析它,比如:
select的执行顺序:它是先执行from后面的语句,再执行select,而不是select后在from。学东西要用心去学,不要什么都学,要培养出自己的一套思想。再给个复杂的select的语句给你:
select
O.name tablename,
C.name column_1 ,
isnull(X.xtname, isnull(get_xtypename(C.xtype,C.xdbid), T.name)) typename_1 ,
case isnull(X.xtname, isnull(get_xtypename(C.xtype,C.xdbid), T.name)) when 'decimal' then convert (varchar(4) ,C.prec)else convert (varchar(4) ,C.length ) end length_1 ,
case isnull(X.xtname, isnull(get_xtypename(C.xtype,C.xdbid), T.name)) when 'decimal' then convert (varchar(4) , C.scale )end scale_1 ,
case C.status when 8 then 'Y' ELSE 'N' end isnull_1 ,
(
select rtrim(ltrim((str_replace(str_replace( text, "DEFAULT'",'' ) , "'",''))))
FROM syscomments D,sysprocedures P
WHERE D.id = C.cdefault AND P.id = D.id
AND P.sequence = 0 AND P.status & 4096 = 4096
)default_1 ,
(select 'PK' from
(
SELECT object_name(id) tabname, index_col( object_name(id) ,indid,1) columnname FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,2) FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,3) FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,4) FROM sysindexes WHERE status & 2048=2048
union ALL
select object_name(id), index_col( object_name(id) ,indid,5) FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,6) FROM sysindexes WHERE status & 2048=2048
) pk
where columnname is not null
and tabname = O.name
and columnname = C.name
)pk_1,
( select 'FK' from (
select a.name as tablename ,b.name as reftabname ,sysreferences.fokey1 fokey from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
union all
select a.name , b.name ,sysreferences.fokey2 from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
union all
select a.name , b.name ,sysreferences.fokey3 from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
union all
select a.name , b.name as reftabname ,sysreferences.fokey4 from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
)fk where fk.tablename= O.name and fokey =C.colid
) fk_1 ,
0 null_1,
0 no_1,
0 count_1
--into tab_struct
FROM syscolumns C, systypes T, sysxtypes X, sysobjects O
WHERE C.usertype *= T.usertype
AND C.xtype *= X.xtid
AND C.id = O.id
AND O.type = 'U'
你要专心的去记住一些东西,就哪怕是一句简单的select * from tablename,你也要去分析它,比如:
select的执行顺序:它是先执行from后面的语句,再执行select,而不是select后在from。学东西要用心去学,不要什么都学,要培养出自己的一套思想。再给个复杂的select的语句给你:
select
O.name tablename,
C.name column_1 ,
isnull(X.xtname, isnull(get_xtypename(C.xtype,C.xdbid), T.name)) typename_1 ,
case isnull(X.xtname, isnull(get_xtypename(C.xtype,C.xdbid), T.name)) when 'decimal' then convert (varchar(4) ,C.prec)else convert (varchar(4) ,C.length ) end length_1 ,
case isnull(X.xtname, isnull(get_xtypename(C.xtype,C.xdbid), T.name)) when 'decimal' then convert (varchar(4) , C.scale )end scale_1 ,
case C.status when 8 then 'Y' ELSE 'N' end isnull_1 ,
(
select rtrim(ltrim((str_replace(str_replace( text, "DEFAULT'",'' ) , "'",''))))
FROM syscomments D,sysprocedures P
WHERE D.id = C.cdefault AND P.id = D.id
AND P.sequence = 0 AND P.status & 4096 = 4096
)default_1 ,
(select 'PK' from
(
SELECT object_name(id) tabname, index_col( object_name(id) ,indid,1) columnname FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,2) FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,3) FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,4) FROM sysindexes WHERE status & 2048=2048
union ALL
select object_name(id), index_col( object_name(id) ,indid,5) FROM sysindexes WHERE status & 2048=2048
union ALL
SELECT object_name(id), index_col( object_name(id) ,indid,6) FROM sysindexes WHERE status & 2048=2048
) pk
where columnname is not null
and tabname = O.name
and columnname = C.name
)pk_1,
( select 'FK' from (
select a.name as tablename ,b.name as reftabname ,sysreferences.fokey1 fokey from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
union all
select a.name , b.name ,sysreferences.fokey2 from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
union all
select a.name , b.name ,sysreferences.fokey3 from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
union all
select a.name , b.name as reftabname ,sysreferences.fokey4 from sysreferences
LEFT OUTER join sysobjects a
on sysreferences.tableid = a.id
LEFT OUTER join sysobjects b
on sysreferences.reftabid = b.id
)fk where fk.tablename= O.name and fokey =C.colid
) fk_1 ,
0 null_1,
0 no_1,
0 count_1
--into tab_struct
FROM syscolumns C, systypes T, sysxtypes X, sysobjects O
WHERE C.usertype *= T.usertype
AND C.xtype *= X.xtid
AND C.id = O.id
AND O.type = 'U'
展开全部
首先我觉得楼主不必拿学历妄自菲薄,我们公司有个同事,也只有中专学历,但是自己非常爱钻研,尤其在数据库方面,给公司解决了很多技术问题,现在这个同事已经是总监职位了。
SQL Server 我从毕业就开始接触,到现在已经10年了,虽然不是专业的,但是在实际使用中相关的开发问题还是能做到一一解决的。感觉要提高,只要本着多看,多写,多记的原则,就可以。
楼主是做维护工作的,我的理解,做维护的,应该可以自己抽出一些时间的。建议楼主多去CSDN论坛转转,上论坛的好处是问题比较多,很多问题你现在可能没遇到,看到别人的解决方法就学会了,那以后你自己如果遇到的话,就简单了。另外还有一个好处是你有不明白的,有人可以帮你解答。
有问题多提问,别人提的问题多看,不要着急,一口吃不了胖子,一点一点来,时间一长,你就会发现其实问题就这么多,转来转去也转不出什么花样。当然学习的时候,因为很多问题是固定的,所以要善于整理一些问题,还有很多东西,是要记下来的,先记下来,才有可能去做深一步的理解和分析。有问题一定要做到理解,一问到底,当然也不能钻牛角尖。
增删改查的语法比较固定,一点一点的看,关键字就那么几个,一天能弄懂一个,全部弄懂也用不了一个月。你说的另外的同事看语句一看就明白,那说明他对关键字的理解是非常好的,知道每个关键字是干啥的。
另外还有一点,上论坛的时候,对于别人提出的问题,如果看起来比较简单一点的,那就尝试去回答,回答的慢不要紧,回答错了也不要紧,关键是给你自己一个动手的机会。每天坚持写一个语句,那水平应该提高的很快。
上面说了这么多,可能也是比较空,具体还是要楼主自己慢慢体会。
我在csdn用户也是 coolingpipe ,最近不是总泡在上面了,但是有空还是回上去看看,欢迎加我好友,有问题请留言。
SQL Server 我从毕业就开始接触,到现在已经10年了,虽然不是专业的,但是在实际使用中相关的开发问题还是能做到一一解决的。感觉要提高,只要本着多看,多写,多记的原则,就可以。
楼主是做维护工作的,我的理解,做维护的,应该可以自己抽出一些时间的。建议楼主多去CSDN论坛转转,上论坛的好处是问题比较多,很多问题你现在可能没遇到,看到别人的解决方法就学会了,那以后你自己如果遇到的话,就简单了。另外还有一个好处是你有不明白的,有人可以帮你解答。
有问题多提问,别人提的问题多看,不要着急,一口吃不了胖子,一点一点来,时间一长,你就会发现其实问题就这么多,转来转去也转不出什么花样。当然学习的时候,因为很多问题是固定的,所以要善于整理一些问题,还有很多东西,是要记下来的,先记下来,才有可能去做深一步的理解和分析。有问题一定要做到理解,一问到底,当然也不能钻牛角尖。
增删改查的语法比较固定,一点一点的看,关键字就那么几个,一天能弄懂一个,全部弄懂也用不了一个月。你说的另外的同事看语句一看就明白,那说明他对关键字的理解是非常好的,知道每个关键字是干啥的。
另外还有一点,上论坛的时候,对于别人提出的问题,如果看起来比较简单一点的,那就尝试去回答,回答的慢不要紧,回答错了也不要紧,关键是给你自己一个动手的机会。每天坚持写一个语句,那水平应该提高的很快。
上面说了这么多,可能也是比较空,具体还是要楼主自己慢慢体会。
我在csdn用户也是 coolingpipe ,最近不是总泡在上面了,但是有空还是回上去看看,欢迎加我好友,有问题请留言。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实学东西有的时候看了很多都不明白,可是突然有一天你就什么都明白了。
你去网上看看视频,搜一下:sqlserver,有很多的。视频比看书来的容易接受,容易看懂的。
你去网上看看视频,搜一下:sqlserver,有很多的。视频比看书来的容易接受,容易看懂的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询