设为首页 收藏本站
查看: 924|回复: 0

[经验分享] 再学SQL SERVER(1)

[复制链接]

尚未签到

发表于 2016-10-30 07:42:12 | 显示全部楼层 |阅读模式
  一直就喜欢SQL编程,我觉得用SQL进行编程是一种艺术、是一种享受。用的最熟的可能还是那个SELECT语句吧,因为我每次用它加上WHERE和ADN组成的条件语句都够从多个表中选出需要的数据,那种感觉真是爽。在毕业以前,其实的我都是很少用多表联查,可能当时没有这个项目需求,平时自己练的时候也就毕竟少,加上自己当时就一门心思的想多学几门语言,这方面的功能就花得相对少得多。就拿自己做得一个商业网站来说,也是那样的,几十个表没有那两个之间是有关系的,基本都是单表。直到去了一次广东后,接触到ORACLE后,从几个老数据库操作人员那里才慢慢的学到多表之间的艺术查询,呵呵,夸张了点,不过,确实有那么种感觉。
  好久没有用SQL编程了,这主要是由于职业转变的原因吧,有一段时间就主要去搞英语去了,把好多东西都忘了,现在在图书馆借了一本书,又好好的研读了起来,不过,又学到了不少的东西。让自己终于第一次搞懂了什么是DML(Data Manipulate Language数据操作语言)、DDL(Data Define Language数据定议语言)、DCL(Data ControlLanguage数据操纵语言):
  DML:数据操纵语言,可以让用户对SQL数据库做五件事:向表中添加数,提取并显示表列中的数据,修改表中的数据及从表中删除语句.以这五条语句组成:INSERT INTO、SELECT、UPDATE、DELETE FROM、TRUNCATE
  DDL:是由人们创建、修改并删除数据库中对象(表、视图、索引、域、约束)的语句组成。是一套SQL语句(ALTER、CREATE、DROP、GRANT(向用户或者用户组授予对单独的数据库对象的特定SQL语句访问权限))。
  DCL:DML可以让用户对数据库的数据作出改变,但DCL却保护数据不受伤害。是(COMMIT、ROLLBACK、GRANT、REVOKE(从用户或者是用户组撤消以前授予的对单独的数据库对象的特定SQL语句访问权))。(注:GRANT是DLL和DCL的一部份)。
  对七种约束(断言(assertions)、域(domains)、检查约束(check constraints)、外键约束(foreign key constrainsts)、主键约束(primarykey constraints)、必需数据(required data)和惟一性约束(uniqueness constraints))有了更深的理解:
  断言(assertions):(不熟)一个约束是限制用户或应用程序输入到表的列内数据的数据库对象。一个断言是用来检查约束以限制可以数据库作为作为整体输入的数据值的数据库对象。不过,二者都是作为检查条件而指定的。如下示例:
  如果想要防止投资者从保值基金中提取多于某一数量的金额,可以使用以下SQL语句创造一个断言:
  Create assertion maximum_withdrawal check (inventor.withdrawal_limit>select sum(withdrawal.amount) from withdrawals where withdrawals.investor_id=inventor.id) (注:没有测试,请测试)
  域(domains):(不熟)域是表中特定列中合法值的集合。保证用户和应用程序向表列中只能键入合法值。使用语句“CREATE DOMAIN”定义域。如下面示例:
  创建一个保证某只能是 a-z 26个小写字母中的任一个,其它的输入都是错误的,可写在一个:(注,我的SQL个人版不能够运行,要报错,从网上查了一下资料,ORACLE可以用,不知道其它的SQL SERVER版是否可用)
  create domain letter_check char(1) check (value in ('a','b','c','d','e','f','g','h','i','j','k'))
  create table #t
(
id int unique identity(1,1),
letter letter_check
)
  检查约束(check constraints):对输入的数据进行合法性检查
  外键约束(foreign key constrainsts):保证数据的完整性,与其它表的主键匹配。当删除主键表的数据时,如数据库检查到有其它的表以外键的形式引用该数据,那么就不能够删除该记录,这就保证数据的完整性。
  主键约束(primarykey constraints):在同一表中,保证该列或者是列对是唯的,这为检索记录提供方便。可被其它表的外键引用。
  必需数据(required data):不能让该列的值为空,否则会报错。
  惟一性约束(uniqueness constraints):保证该列的唯一性,如自增序列号,这便于用户查询和引用记录。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293119-1-1.html 上篇帖子: SQL SERVER性能优化综述 下篇帖子: SQL Server 索引使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表