注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

肖雅峰 廊坊师范学院信息技术提高班十四期

 
 
 

日志

 
 

SQL入门经典第四章  

2017-07-16 21:11:28|  分类: VB与数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 1.三个范式:
第一范式:
  • 定义所需要的数据项,并将相关的数据项放置在一个表中
  • 确保没有重复的数据组
  • 确保存在一个主键
第二范式:
  • 主键中的任意列必须没有局部相关性
第三范式:
  • 它符合第二范式
  • 所有非主键字段都依赖于主键
2.利用约束确保数据的有效性
约束的目的是为了在第一时间内防止不正确的数据,从而提高数据的安全性与正确性
(1)NOT NULL约束
例子:用SQL创建一个MyTable表,添加三列,其中两列column1和column3,不接受NULL数据
CREATE TABLE MyTable
Column1   int MOT NULL ,
Column2   varchar( 20 ) ,
Column3   varchar( 12 )  NOT NULL
);
在创建完表之后,只能通过更改列定义本身,并利用NOT NULL约束重新创建它
ALTER TABLE MyTable
ALTER COLUMN Column2 varchar( 20 ) NOT NULL ;
(2)UNIQUE约束
UNIQUE约束防止一个特定的列中两个记录具有一致的值。
应用UNIQUE时有两种方式,分别是:在创建表时添加它,或者在创建表之后添加它
例子:创建一个名为MyUniqueTable的表,并对Column2和Column3添加Unique约束。
CREATE TABLE MyUniqueTable
Column1   int ,
Column2   varchar( 20 )  UNIQUE ,
Column3   varchar( 12 )  UNIQUE
);
例子:如何将一个名为MyUniqueConstraint的约束添加到YetAnotherTable表中:
CREATE TABLE YetAnotherTable
Column1   int ,
Column2   varchar( 20 )   ,
Column3   varchar( 12 )  
);
ALTER TABLE YetAnotherTable
ADD CONSTRAINT MyUniqueConstraint UNIQUE  ( Column2 , Column3 ) ;
使用ALTER TABLE删除约束
MySQL数据库:
ALTER TABLE YetAnotherTable
DROP INDEX MyUniqueConstraint ;
(3)CHECK约束
CHECK约束检查输入到记录中的值是否满足一个条件。如果条件为假,则记录违反约束,并不被输入表中。
例子:创建一个Employee表,约束名为HourlyLess,包含一个条件:检查AvgMonthly是否大于HourRate
CREATE TABLE Employee
(
  EmployeeName  varchar ( 50 ) ,
  AvgMonthlyWage  decimal ( 12 , 2 )
  HourlyRate  decimal ( 12 , 2 ) ,
  CONSTRAINT HourlyLess CHECK  ( AvgMonthlyWage > HourlyRate )
)
(4)主键和PRIMARY KEY约束
PRIMARY KEY约束是UNIQUE约束与NOT NULL约束的结合,具有唯一性。
例子:新建一个表加入PRIMARY KEY约束
CREATE TABLE HolidayBookings
(
  CustomerId int PRIMARY KEY ,
  BookingId int ,
  Destination varchar ( 50 )
) ;
PS:如果在一个现有表中,想对一个或多个列添加主键,首先要对这些列添加NOT NULL约束。
(5)外键
创建外键的基本语法:
ATLER TABLE name _ of _ table _ to _ add _ foreign _ key
ADD CONSTRAINT name _ of _ foreign _ key
FOREIGN KEY ( name _ of _ column _ that _ is _ foreign _ key _ column )
REFERENCES name _ of _ table _ that _ is _ referenced ( name _ of _column _ being _referenced )
3利用索引加速结果查询
索引语句基本格式:
CREATE INDEX < index _ name >
ON < table _ name >  ( < column _ names > )

4.设计数据库的一些技巧
  • 不要设计仅满足普通情形的数据库
  • 为表和字段选择有意义的名称
  • 尽量使名称简单
  • 命名和数据类型的选择要一致
  • 首先在纸上分析数据需求
  • 仔细选择主键
  • 创建一个索引
  • 添加一个多列索引
  • 避免使用保留字作为表明或者字段名
  • 考虑存储空间要求
  评论这张
 
阅读(8)| 评论(6)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018