数据库基础知识3 1. 先来看一下外键,外键主要是用来约束用于预防破坏表之间连接的动作。我们用一个例子来说明一下: "Persons" 表: Id_P | LastName | FirstName | Address | City |
---|
1 | Adams | John | Oxford Street | London | 2 | Bush | George | Fifth Avenue | New York | 3 | Carter | Thomas | Changan Street | Beijin |
"Orders" 表: Id_O | OrderNo | Id_P |
---|
1 | 77895 | 3 | 2 | 44678 | 3 | 3 | 22456 | 1 | 4 | 24562 | 1 |
“Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。通过建立外键就把两个表建立起了关联,这对查询很有用的。 2. 索引主要是在不读取全表的时候加速查询。SQL Server中主要分为两种:聚集索引和非聚集索引。聚集索引主要特点就是调整索引表顺序的同时也会调整原表的顺序。当创建主键时自动创建聚集索引。一个表只能有一个主键,同样一个表也只能有一个聚集索引。一个聚集索引表最多有16列。非聚集索引就是调整表索引表的同时不会改变原表的顺序。当创建唯一约束时自动创建非聚集索引。一个非聚集索引表最多有249列。唯一索引表示表中任何两个记录的索引值都不同的。 - USE TestDB;
-
-
-
- CREATE TABLE Stu(
- Sno int,
- Sname varchar(50),
- Saddr varchar(100) CONSTRAINT DF_Saddr DEFAULT '北京市',
- Sage int,
-
- CONSTRAINT PK_Sno PRIMARY KEY (Sno),
- CONSTRAINT UN_Sname UNIQUE (Sname DESC),
- CONSTRAINT CK_Sage CHECK (Sage>15)
- );
-
-
- CREATE TABLE Scourse(
- Cno int,
- Cname varchar(50),
- Tno int,
- Sno int FOREIGN KEY REFERENCES Stu(Sno)
-
-
-
-
-
- );
-
-
- CREATE TABLE Teacher(
- Tno int,
- Tname varchar(50),
- Tage int,
- CONSTRAINT PK_Teacher PRIMARY KEY(Tno)
- );
-
-
-
- ALTER TABLE Teacher
- ADD Taddr varchar(200);
-
- ALTER TABLE Teacher
- ALTER COLUMN Taddr varchar(100);
-
- ALTER TABLE Teacher
- DROP COLUMN Taddr;
-
-
- ALTER TABLE Scourse
- ADD CONSTRAINT FK_Teacher FOREIGN KEY(Tno)
- REFERENCES Teacher(Tno);
-
- ALTER TABLE Scourse
- DROP FK_Teacher;
-
-
- ALTER TABLE Teacher
- ADD CONSTRAINT DF_Tage DEFAULT 35 FOR Tage;
-
-
- DROP TABLE Scourse;
|