SQL习题集.docVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL习题集 数据库拆表原则 简单字段中的复合字段:解决方法:向上打通,或拆成两表 完全依赖:知道a就能知道b,返过来就不一定.实现:将同一个主题的东西放在一起 无传递依赖。将传递依赖转为直接依赖。原因:减少插入冗余。减少增删异常。 当出现一对多时不能横拆,一定拆成两个表,特别的固定范围可以横拆(签到管理) 多对多必有中间表 代码表,大量重复的或枚举型可以用代码表. 能计算的字段不要 数据定义语句DDL create alter drop 数据控制语句DCL grant deny revoke 数据操纵语句DML select update insert delete 一.SQL Server 2000 Select 变化集锦 查询所有字段(效率低) 查询所有的老师 select * from dbo.教师 2.字段枚举 查询教师的ID,及姓名两项 select 教师_ID,教师名 from dbo.教师 3.字段取别名方法有二 1)as可以省略 select 教师名 as teacher from dbo.教师 2) select teacher = 教师名 from dbo.教师 4.字段的可计算性 1) 简单字段计算 教师工资的10% select 工资*0.1 from dbo.教师 2)把一个检索结果作为查询字段 本学校的师生比例 select ( select count(*) from dbo.教师 ) /1.0/ ( select count(*) from dbo.学生 ) 5?取取select ( case when 性别_ID=1 then 男 when 性别_ID=2 then 女 end ) from dbo.教师 横向查询男女人数 select sum( case when 性别_ID=1 then 1 else 0 end ) as nan , sum( case when 性别_ID=2 then 1 else 0 end ) as nv from dbo.教师 10 可以重复列出表的的字段 select *,*,* from 教师 11 检索结果放常量 select 教师名, 出生于,出生日期 from dbo.教师 ----------------------------------- From变化集锦 1.从一个表中检索 select * from dbo.教师 2 从一个检索结果中再检索即从临时表中检索 select * from ( select 教师_ID, 教师名, 出生日期, 系_ID, 性别_ID, 职称_ID from dbo.教师 )lin –sqlserver2000中临时表通常要起别名 where lin.教师_ID 4 3.从多表中检索,构成迪卡尔乘积(效率低) select dbo.教师.*,系名 from dbo.教师,dbo.系 where dbo.教师.系_ID=dbo.系.系_ID 4 多表的联接查询 1)左连接(尊重左边) select * from dbo.系 left join dbo.教师 on dbo.系.系_ID=dbo.教师.系_ID 2)右连接(尊重右边) select * from dbo.系 right join dbo.教师 on dbo.系.系_ID=dbo.教师.系_ID 3)内连接(都不尊重,即两边都得有)下例为两个以上表的连接写法 select * from dbo.系 inner join dbo.教师 on dbo.系.系_ID=dbo.教师.系_ID inner join dbo.教师认课 on dbo.教师.教师_ID=dbo.教师认课.教师_ID 4)全连接(都尊重) select * from dbo.系 full join dbo.教师 on dbo.系.系_ID=dbo.教师.系_ID 5. 给被检索表起别名 注意:起了别名就一定用别名引用字段 错误的 select dbo.教师.教师名 from dbo.教师 js 正确的 select js.教师名 from dbo.教师 js where集锦 常规关系运算 、 =、 、 =、 !=、 、 = select 教师_ID from dbo.教师 where 教师_ID1 只检索表结构不要任何数据 Select * From dbo.教师 Where 1!=1 常规逻辑运算 not 、and 、or select 教师_ID from dbo.教师 where not( 教师_ID=1 and 教师_ID=8 ) 3.区间

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档