分享

数据库基础知识3

 散落的尘埃_ 2014-04-29
                                                                     数据库基础知识3

    1. 先来看一下外键,外键主要是用来约束用于预防破坏表之间连接的动作。我们用一个例子来说明一下:

"Persons" 表:

Id_PLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijin

"Orders" 表:

Id_OOrderNoId_P
1778953
2446783
3224561
4245621


     “Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。通过建立外键就把两个表建立起了关联,这对查询很有用的。

     2. 索引主要是不读取全表的时候加查询。SQL Server中主要分为两种:聚集索引和非聚集索引。聚集索引主要特点就是调整索引表顺序的同时也会调整原表的顺序。当创建主键时自动创建聚集索引。一个表只能有一个主键,同样一个表也只能有一个聚集索引。一个聚集索引表最多有16列。非聚集索引就是调整表索引表的同时不会改变原表的顺序。当创建唯一约束时自动创建非聚集索引。一个非聚集索引表最多有249列。唯一索引表示表中任何两个记录的索引值都不同的。

  1. USE TestDB;  
  2.   
  3. --昨天我们讲的创建约束都是在定义列时直接建立的,今天我们在介绍一个指令CONSTRAINT  
  4. --用CONSTRAINT语句建立主键、唯一、默认、检查约束  
  5. CREATE TABLE Stu(  
  6.     Sno int,  
  7.     Sname varchar(50),  
  8.     Saddr varchar(100) CONSTRAINT DF_Saddr DEFAULT '北京市',  
  9.     Sage int,  
  10.     --用constraint建立约束  
  11.     CONSTRAINT PK_Sno PRIMARY KEY (Sno),  
  12.     CONSTRAINT UN_Sname UNIQUE (Sname DESC),  
  13.     CONSTRAINT CK_Sage CHECK (Sage>15)  
  14. );  
  15.   
  16. --建立外键约束  
  17. CREATE TABLE Scourse(  
  18.     Cno int,  
  19.     Cname varchar(50),  
  20.     Tno int,  
  21.     Sno int FOREIGN KEY REFERENCES Stu(Sno)  
  22.     --用constraint建立外键约束  
  23.     --CONSTRAINT FK_Scoures_Stu FOREIGN KEY(Sno)   
  24.         --REFERENCES Stu(Sno)  
  25.     --这里要注意Stu表中的Sno列一定要是主键哦^_^  
  26.     --还有主键列和外键列的这个列类型要一致哦  
  27. );  
  28.   
  29. --再建一个表,下面的例子用  
  30. CREATE TABLE Teacher(  
  31.     Tno int,  
  32.     Tname varchar(50),  
  33.     Tage int,  
  34.     CONSTRAINT PK_Teacher PRIMARY KEY(Tno)  
  35. );  
  36.   
  37. --修改表,前面修改数据库我们用的是ALTER DATABASE,我们这里也是用ALTER  
  38. --增加列  
  39. ALTER TABLE Teacher  
  40.     ADD Taddr varchar(200);  
  41. --修改列  
  42. ALTER TABLE Teacher  
  43.     ALTER COLUMN Taddr varchar(100);  
  44. --删除列  
  45. ALTER TABLE Teacher  
  46.     DROP COLUMN Taddr;  
  47. --增加约束,和上面用constraint建立约束一样的  
  48. --这里就增加一个外键了  
  49. ALTER TABLE Scourse  
  50.     ADD CONSTRAINT FK_Teacher FOREIGN KEY(Tno)  
  51.         REFERENCES Teacher(Tno);  
  52. --删除约束  
  53. ALTER TABLE Scourse  
  54.     DROP FK_Teacher;  
  55. --搜狗输入法在SQL Server里好难用啊,总变成全角的  
  56. --这里再增加一个默认约束,注意一下是怎么指定列的?  
  57. ALTER TABLE Teacher  
  58.     ADD CONSTRAINT DF_Tage DEFAULT 35 FOR Tage;  
  59.   
  60. --删除表  
  61. DROP TABLE Scourse;  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约