sql用命令创建主键与外键。
用命令创建默认值对象,并与表中字段绑定.
用命令创建CHECK约束定义某字段.
用命令创建规则对象,并与表中字段绑定.
用命令创建用户自定义数据类型,并用该数据类型定义表中字段. 展开
1、为了方便大家理解,使用一个例子来帮助大家理解。意思大概就是通过引用表二中的字段完成对表一字段的约束。方法:
2、这里一共两个表,先创建外键表,因为先有外键,主键才能引用。首先创建数据库,新建查询。
3、新建外键表【teacher】,输入命令:create table teacher。添加需要的字段teacher_xingming并设置它为【主键】。输入命令:teacher_xingming nchar(10) primary key,
4、选中需要执行的命令行,单击【执行】,下方会有是否成功的提示。现在对表进行刷新操作后,会发现已经成功创建了一个新表【teacher】。
5、接下来就要创建学生表了,create table student( student_xingming nchar(10) primary key not null,——该程序段意思为创建一个【student】表,表中新建一个主键【student_xingming字段,类型为nchar(10) ,并不允许为空。】
6、继续写,输入:student_banji nchar(10) not null,——表中新建一个【student_banji字段,类型为nchar(10) ,并不允许为空。】
7、创建外键,输入命令student_jiaoshi nchar(10) foreign key references teacher(teacher_xingming)看起来很长,实际意思很简单:表中新建一个【student_jiaoshi字段】,它是外键,nchar(10)类型,它来至 teacher_xingming中的内容。
8、选中,点击【执行】,没有错误,就说明成功了。刷新一下表,看看是不是多了一个表【student】?所有约束已经创建好了。
9、来试一下看看是否真正实现所说的功能。打开【teacher表】,填写“刘老师”。打开【student表】,前面任意填,最后填写“刘老师”,没有错误说明没问题。
10、如何想测试约束是否真的有效,填写其他内容,看看是否成功,只要不是【teacher】字段中的内容,他就会报错。
创建主键约束,语法: alter table 表名 add constraint [主键名称] primary key (主键字段)。
举例:alter table Student Add constraint PK_Student primary key (Id).
创建外键约束,语法: alter table 表名 add constraint [外键名称] foreign key (字段) references 外链表名(字段)。
举例:alter table Student Add constraint FK_Student_Cid foreign key (Id) references Grade(Id).
扩展资料:
通过创建主键约束可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。
在有些数据库中,虽然主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键。它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除。
--使用SQL语句创建主键约束可以在创建表(Create Table)或修改表(Alter Table)时进行 创建。
--例创建表时
create table tablename
(
id int (CONSTRAINT pk_id) PRIMARY KEY
)
--例修改表时
ALTER TABLE tablename --修改表
ADD
CONSTRAINT tb_PRIMARY
PRIMARY KEY CLUSTERED (列名) /*将你要设置为主键约束的列*/
--用命令创建默认值对象,并与表中字段绑定.
--使用SQL语句创建主默认值对象可以在创建表(Create Table)或修改表(Alter Table)时进行 创建。
--例创建表时
create table tablename
(
id int DEFAULT 0
)
--例修改表时
ALTER TABLE tablename --修改表
ADD
CONSTRAINT tb_DEFAULT
DEFAULT '10011' FOR 列名 /*将你要设置为默认值对象的列*/
--用命令创建CHECK约束定义某字段.
USE 销售管理系统 --引入数据库
ALTER TABLE 销售表 --修改表
ADD CONSTRAINT ck_sl --创建检查约束
CHECK (数量 >= 1 and 数量 <= 10000) --添加约束条件
--用命令创建规则对象,并与表中字段绑定.
--创建规则使用CREATE RULE语句创建
CREATE RULE RULE_AGE --创建规则
AS
@AGE !> 40 --规则条件不能大于40
CREATE RULE list_rule --创建规则
AS
@list IN ('1001', '1002', '1003') --规则条件只能输入1001、1002、1003
CREATE RULE pattern_rule --创建规则
AS
@value LIKE '_ _-%[0-9]' --规则条件在任意两个字符的后面跟一个连字符和任意多个字符,并以 0 到 9 之间的整数结尾
--创建好一个规则后,必须使用绑定才能够使用规则,一般情况下,规则可以绑定在用户自定义数据类型或是数据列中。下面可以使用SQL Server中的系统存储过程sp_bindrule将规则绑定在数据表中。
EXEC sp_bindrule 'RULE_AGE','操作员信息表.操作员年龄'
--用命令创建用户自定义数据类型,并用该数据类型定义表中字段.
--在“student”数据库中,创建用来存储邮政编码信息的“postalcode”用户定义数据类型。
--SQL语句如下:
USE student
EXEC sp_addtype postalcode,'char(8) ','not null'
参考资料: 明日系列编程词典--SQL Server 编程词典体验版
--用命令创建主键与外键.
--使用SQL语句创建主键约束可以在创建表(Create
Table)或修改表(Alter
Table)时进行
创建。
--例创建表时
create
table
tablename
(
id
int
(CONSTRAINT
pk_id)
PRIMARY
KEY
)
--例修改表时
ALTER
TABLE
tablename
--修改表
ADD
CONSTRAINT
tb_PRIMARY
PRIMARY
KEY
CLUSTERED
(列名)
/*将你要设置为主键约束的列*/
(
id int primary key identity(int,1,1) not null,
name varchar(20) not null,
class int foreign key(class.code)
}