创建主键

创建SQL的主键和外键约束的方法:

 

create table Student --建表格式:create table 自定义的表名

( --字段名一般为有一定意义的英文

StudentName nvarchar(15), -- 格式:字段名类型()括号里面的是允许输入的长度

StudentAge int, --int型的后面不需要接长度

StudentSex nvarchar(2) --最后一个字段后面不要逗号

)

 

--在创建表时就可以对字段加上约束:

create table Student

(

StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性)

StudentName nvarchar(15) not null, --加非空约束,不加"not null" 默认为:可以为空

StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名)

StudentAge int DEFAULT ((0)), --加默认值约束

StudentSex nvarchar(2) CHECK(StudentSex=N‘男‘ or StudentSex=N‘女‘) --加检查约束,格式:check (条件表达式)

)

 

--如果在表创建好了以后再加约束,则格式分别为:

 

-- 主键:

alter table 表名

add constraint PK_字段名--"PK"为主键的缩写,字段名为要在其上创建主键的字段名,‘PK_字段名‘就为约束名

primary key (字段名) --字段名同上

 

--唯一约束:

alter table 表名

add constraint UQ_字段名

unique (字段名)

 

--外键约束:

alter table 表名

add constraint FK_字段名--"FK"为外键的缩写

foreign key (字段名) references 关联的表名(关联的字段名) --注意‘关联的表名‘和‘关联的字段名‘

 

alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)

alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)

 

alter table 成绩表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo)

ON UPDATE CASCADE ON DELETE CASCADE

级联更新,级联删除,这样在删除主表Student时,成绩表中该学生的所有成绩都会删除。

 

 

--检查约束:

alter table 表名

add constraint CK_字段名

check (条件表达式) --条件表达式中的条件用关系运算符连接

 

--默认值约束:

alter table 表名

add constraint DF_字段名

default ‘默认值‘ for 字段名--其中的‘默认值‘为你想要默认的值,注意‘for‘

 

--删除创建的约束:

alter table 表名

drop constraint 约束名--约束名为你前面创建的如:PK_字段这样的约束名

--注意:如果约束是在创建表的时候创建的,则不能用命令删除

--只能在‘企业管理器‘里面删除

 

 

 

 

 

-- 获取SqlServer中表结构

SELECT syscolumns.name,systypes.name,syscolumns.isnullable,

syscolumns.length

FROM syscolumns,systypes

WHERE syscolumns.xusertype = systypes.xusertype

AND syscolumns.id = OBJECT_ID(‘Student‘)

 

-- 单独查询表递增字段

SELECT [name] FROM syscolumns WHERE

id = OBJECT_ID(N‘Student‘) AND COLUMNPROPERTY(id,name,‘IsIdentity‘)=1

 

-- 获取表主外键约束

EXEC sp_helpconstraint ‘StuResults‘
时间: 2024-10-12 14:56:47

创建主键的相关文章

数据库中创建表(包括创建主键,外键,非空列,唯一)

创建表(包括创建主键,外键,非空列,唯一) - PROS - 博客园 http://www.cnblogs.com/CodingArt/articles/1621921.html **************** 创建主键(三种方法) **************** 创建学生表: 第一种: create table student (sno char(5) primary key,/*学号*/ /*可以直接指定主键*/ sname char(20) not null,/*姓名*/ ssex c

关于创建主键和索引的关系一个小小测试

创建主键时,所对应的列如果没有索引,数据库默认会自动创建一个索引:如果对于列有索引,那么创建主键不会再创建索引.这里要注意,列值必须满足主键的要求(唯一,非空),简单测试如下: SQL> create table wxlun_pri(a number); Table created. SQL> alter table wxlun_pri add constraint PRIMARY_KEY_REPLY primary key (a);     ------创建主键约束 Table altere

oracle建表的时候同时创建主键,外键,注释,约束,索引

--主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));--外键create table emp1(id number references emp(id),name varchar(8)); --复合外键create

Oracle创建主键自增表

Oracle创建主键自增表 1.创建表 create table Test_Increase( userid number(10) NOT NULL primary key,  /*主键,自动增加*/ username varchar2(20) ); 2.创建自动增长序列 CREATE SEQUENCE TestIncrease_Sequence INCREMENT BY 1   -- 每次加几个 START WITH 1     -- 从1开始计数 NOMAXVALUE       -- 不设

创建主键(举例)

SQL> alter table emp_ogg add constraint PK_empno primary key(empno); --创建主键 查询某表有哪些约束 SQL> desc user_constraints; Name                                      Null?    Type ----------------------------------------- -------- ----------------------------

Oracle 创建主键自增表

200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍在oracle中如果创建自增长表,这里要用到序列. create table tb_student ( id NUMBER(10) not null, createtime DATE not null, constraint PK_tb_student primary key (id) ); comment on table "tb_student"

SQL Server(第一章) 创建表 删除表 创建主键约束、唯一约束、外键约束、CHECK约束、默认约束

1.Employees员工表 /** 创建Employees员工表 **/ USE TSQL2012 IF OBJECT_ID('dbo.Employees','U') IS NOT NULL DROP TABLE dbo.Employees CREATE TABLE dbo.Employees ( empid INT NOT NULL, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, hiredate DATE NO

mysql 创建主键,修改主键

//添加一个字段pid并且设置为主键(auto_increment)自增(auto_increment),不可为null,类型为int unsigned alter table table1 add pid int unsigned not null auto_increment primary key; //可以将一个主键修改为0 update table1 set pid=0 where pid=6; 假设id为主键,id可以保证字段数据唯一性,但是一张表只有一个主键.主键的值:修改成的0,

oracle创建主键序列和在ibatis中应用

oracle创建主键序列 oracle主键序列的查询和ibitas中应用