SQL SERVER

 好久没有用SQL编程了,这主要是由于职业转变的原因吧,有一段时间就主要去搞英语去了,把好多东西都忘了,现在在图书馆借了一本书,又好好的研读了起来,不过,又学到了不少的东西。让自己终于第一次搞懂了什么是DML(Data Manipulate Language数据操作语言)、DDL(Data Define Language数据定议语言)、DCL(Data Control Language数据操纵语言):

    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)、主键约束(primary key 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):保证数据的完整性,与其它表的主键匹配。当删除主键表的数据时,如数据库检查到有其它的表以外键的形式引用该数据,那么就不能够删除该记录,这就保证数据的完整性。

 主键约束(primary key constraints):在同一表中,保证该列或者是列对是唯的,这为检索记录提供方便。可被其它表的外键引用。

 必需数据(required data):不能让该列的值为空,否则会报错。

 惟一性约束(uniqueness constraints):保证该列的唯一性,如自增序列号,这便于用户查询和引用记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值