百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

SQL Server中用T-SQL语句实现(建表、键约束、建关系)

liuian 2025-04-05 20:08 16 浏览

本文将会用T-SQL 语句实现建表、建约束、建关系。

一. 对表进行操作

1.1 创建表

--使用 create table 语句创建表

语法:

create table 表名(字段 数据类型 约束)

例如:

create table Student(

StudentId int ,--学生编号

StudenName varchar(50)--学生姓名

)

————————————————

1.2 删除表

--使用 drop table 删除表

--注意事项:删除表时,如果有主外建关系,必须先主表,在删除从表

语法:

drop table 表名--删除一个表

例如:

drop table Student

语法:

drop table 表名,表名...--删除多个表

例如:

drop table Result,Student

————————————————

1.3 修改表

--使用 alter table 修改表

--注意事项: []中括号中的内容可以不写

1.添加字段

语法:

alter table 表名

add 字段名 数据类型 [约束(非空)]

例如:

alter table Student

add Sex char(2) not null--修改字段的数据类型和非空约束

2.添加约束

语法:

alter table 表名

add constraint 约束命名 约束类型(约束内容)

例如:

alter table Student

add constraint PK_Student_id primary key(Id)--添加主键约束

3.删除约束

语法:

alter table 表名

drop constraint 约束名

例如:

alter table Student

drop constraint PK_Student_id--删除主键约束

4.删除列

语法:

alter table 表名

drop column 列名

例如:

alter table Student

drop column StudentId--删除 StudentId列

5.修改列

语法:

alter table 表名

alter column 列名 数据类型

咧如:

alter table Student

alter column StudentId nvarchar(50)--修改 StudentId列数据类型为 nvarchar(50)

————————————————

1.4 添加约束

--创建时 create

1. 主键约束primary key--最好在修改时添加 可以自己起名字 删除时方便

2. 检查约束check(具体条件)--最好在修改时添加 可以自己起名字 删除时方便

3. 默认约束default '写入默认值'--最好在修改时添加 可以自己起名字 删除时方便

4. 唯一约束unique--最好在修改时添加 可以自己起名字 删除时方便

5. 外键约束foreign key references 表名(字段) --最好在修改时添加 可以自己起名字 删除时方便

6. 非空 not null--最好创建时添加上

7. 标识列 identity(种子,增值) --最好创建时添加上

--修改时 alter

1. 主键约束constraint primary key(具体字段)

2. 检查约束constraint check(具体条件)

3. 默认约束constraint default ('文本、日期' 数字) for 列名

4. 唯一约束constraint unique(列名)

5. 外键约束constraint foreign key(字段) references 表名(字段)

6. 非空 alter 字段 类型 not null

--约束命名规范

1. 主键约束PK_表名_列名

2. 检查约束CK_表名_列名

3. 默认约束DF_表名_列名

4. 唯一约束UQ_表名_列名

5. 外键约束FK_表名_列名


/*

* 注意事项: 1.日期类型需要单引号括起来,数字类型不需要

* 2.创建表时添加约束,系统会自动分配名字

* 3.修改时添加约束,可以自定义名字

* 4.修改时创建主键约束,必须有非空约束

* 5.如果创建时没添加非空约束,可以通过 alter column 列名 数据类型 非空(约束) 修改

*/

--创建时添加约束

语法:

create table 表名(

字段 数据类型 约束,

字段 数据类型 约束,

...

)

例如:

create table Student(

StudentNo int primary key,--学生编号主键约束

StudentName varchar(50) not null,--学生姓名非空约束

LoginPwd varchar(255) check(len(LoginPwd)>=6)--密码检查约束

GradeIdint identity,--年级标识列 种子1,增量1

Subject int foreign key references Subject(id)--科目外键约束

Phone varchar(50) unique,--联系电话唯一约束

Address varchar(255) default('学生宿舍')--现住址默认值约束

--修改时添加约束

语法:

alter table 表名

add constraint 约束命名 约束类型(约束内容),

constraint 约束命名 约束类型(约束内容),

....

)

例如:

alter table Student

add constraint PK_Student_StudentId primary key(Id),--学生编号主键

constraint CK_Student_Pwd check(len(LoginPwd)>=6),--密码检查约束

constraint UQ_Student_GradeId unique(GradeId),--联系电话唯一约束

constraint DF_Student_Address default('学生宿舍') for Address,--现住址默认值约束

constraint FK_Student_SubjectId foreign key(SubjectId) references Subject(SubjectId)--科目外键约束


————————————————

版权声明:本文为CSDN博主「自学之路←_←」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:
https://blog.csdn.net/qq_43636251/article/details/105474457


相关推荐

总结下SpringData JPA 的常用语法

SpringDataJPA常用有两种写法,一个是用Jpa自带方法进行CRUD,适合简单查询场景、例如查询全部数据、根据某个字段查询,根据某字段排序等等。另一种是使用注解方式,@Query、@Modi...

解决JPA在多线程中事务无法生效的问题

在使用SpringBoot2.x和JPA的过程中,如果在多线程环境下发现查询方法(如@Query或findAll)以及事务(如@Transactional)无法生效,通常是由于S...

PostgreSQL系列(一):数据类型和基本类型转换

自从厂子里出来后,数据库的主力就从Oracle变成MySQL了。有一说一哈,贵确实是有贵的道理,不是开源能比的。后面的工作里面基本上就是主MySQL,辅MongoDB、ES等NoSQL。最近想写一点跟...

基于MCP实现text2sql

目的:基于MCP实现text2sql能力参考:https://blog.csdn.net/hacker_Lees/article/details/146426392服务端#选用开源的MySQLMCP...

ORACLE 错误代码及解决办法

ORA-00001:违反唯一约束条件(.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。ORA-00017:请求会话以设置跟踪事件ORA-00018:超出最大会话数ORA-00...

从 SQLite 到 DuckDB:查询快 5 倍,存储减少 80%

作者丨Trace译者丨明知山策划丨李冬梅Trace从一开始就使用SQLite将所有数据存储在用户设备上。这是一个非常不错的选择——SQLite高度可靠,并且多种编程语言都提供了广泛支持...

010:通过 MCP PostgreSQL 安全访问数据

项目简介提供对PostgreSQL数据库的只读访问功能。该服务器允许大型语言模型(LLMs)检查数据库的模式结构,并执行只读查询操作。核心功能提供对PostgreSQL数据库的只读访问允许L...

发现了一个好用且免费的SQL数据库工具(DBeaver)

缘起最近Ai不是大火么,想着自己也弄一些开源的框架来捣腾一下。手上用着Mac,但Mac都没有显卡的,对于学习Ai训练模型不方便,所以最近新购入了一台4090的拯救者,打算用来好好学习一下Ai(呸,以上...

微软发布.NET 10首个预览版:JIT编译器再进化、跨平台开发更流畅

IT之家2月26日消息,微软.NET团队昨日(2月25日)发布博文,宣布推出.NET10首个预览版更新,重点改进.NETRuntime、SDK、libraries、C#、AS...

数据库管理工具Navicat Premium最新版发布啦

管理多个数据库要么需要使用多个客户端应用程序,要么找到一个可以容纳你使用的所有数据库的应用程序。其中一个工具是NavicatPremium。它不仅支持大多数主要的数据库管理系统(DBMS),而且它...

50+AI新品齐发,微软Build放大招:拥抱Agent胜算几何?

北京时间5月20日凌晨,如果你打开微软Build2025开发者大会的直播,最先吸引你的可能不是一场原本属于AI和开发者的技术盛会,而是开场不久后的尴尬一幕:一边是几位微软员工在台下大...

揭秘:一条SQL语句的执行过程是怎么样的?

数据库系统能够接受SQL语句,并返回数据查询的结果,或者对数据库中的数据进行修改,可以说几乎每个程序员都使用过它。而MySQL又是目前使用最广泛的数据库。所以,解析一下MySQL编译并执行...

各家sql工具,都闹过哪些乐子?

相信这些sql工具,大家都不陌生吧,它们在业内绝对算得上第一梯队的产品了,但是你知道,他们都闹过什么乐子吗?首先登场的是Navicat,这款强大的数据库管理工具,曾经让一位程序员朋友“火”了一把。Na...

详解PG数据库管理工具--pgadmin工具、安装部署及相关功能

概述今天主要介绍一下PG数据库管理工具--pgadmin,一起来看看吧~一、介绍pgAdmin4是一款为PostgreSQL设计的可靠和全面的数据库设计和管理软件,它允许连接到特定的数据库,创建表和...

Enpass for Mac(跨平台密码管理软件)

还在寻找密码管理软件吗?密码管理软件有很多,但是综合素质相当优秀且完全免费的密码管理软件却并不常见,EnpassMac版是一款免费跨平台密码管理软件,可以通过这款软件高效安全的保护密码文件,而且可以...