SQL Server如何建表

一、数据表的组成

实现完整性的约束有:

–6个约束
–非空 not null
–主键 primary key
–唯一 unique
–检查 check
–默认 default
–主键自增 identity

表约束
主键约束:值不能为null,且不能重复
非空约束:不能为null
默认约束:默认为xx
检查check约束:判断(男和女)
唯一约束:不能重复,可以能为null

–create 创建
–table 表

–建表语句
create table student(
–格式:列名 类型 约束
);

字符全部都是 单引号 ’
或者 or , 并且 and
 

方法二:使用T-SQL语句创建

        1、点击新建查询

use DBAliSys--使用DBAliSys数据库库名可任意更改成存在的库名
create table student(            --创建名为student的表
ID int primary key identity(1, 1), --primary key 主键,identity(起始值, 自增量)
sno varchar(10) unique not null, --unique 唯一约束not nu11非空
sname char(6) not null,          --不为空
Age int default 18, --default设置默认值
sex char(2) default '男'      --默认为男
--age int check (age between 0 and 30)--范围在0到30之间
)

(1)主键约束

关键字:primary key

作用:用来标识这个表中唯一的列,这一列里面的数必须都不相同,就像我们的身份证号。

用SQL Server语句创建一个名为 visits 的新表来跟踪客户的店内访问:

CREATE TABLE sales.visits ( visit_id INT PRIMARY KEY IDENTITY (1, 1),first_name VARCHAR (50) NOT NULL,last_name VARCHAR (50) NOT NULL,visited_at DATETIME, phone VARCHAR(20), store_id INT NOT NULL,FOREIGN KEY (store_id) REFERENCES sales.stores (store_id)
);

示例中的解析:
(1)visit_id 列是表的主键列。 IDENTITY(1,1) 指示SQL Server自动生成从 1 开始的列的整数,并为每个新行递增 1 。
(2)first_name 和 last_name 列是 VARCHAR 类型的字符串列。这些列最多可以存储 50 个字符
(3)visited_at 是 DATETIME 数据类型的列,记录客户访问商店的日期和时间。
(5)phone 列是一个接受 NULL 的 VARCHAR 字符串列。
(6)store_id 列存储标识客户访问商店的标识号
(7)表定义的末尾是 FOREIGN KEY 约束。此外键确保visit表的store_id列中的值必须在stores 表的store_id 列中可用。可在后续教程中了解有关 FOREIGN KEY 约束的更多信息。
 

1)每个表应该有一个由一列或多列组成的主键。通常,首先列出主键列,然后列出其他列。如果主键只包含一列,则可以在列名后使用 PRIMARY KEY 关键字如果主键由两列或更多列组成,则需要将 PRIMARY KEY 约束指定为表约束。 每个列都在语句中的名称后面指定了关联的数据类型。 列可能具有一个或多个列约束,例如: NOT NULL 和 UNIQUE 。
2)表可能在表约束部分中指定了一些约束,例如:FOREIGN KEY,PRIMARY KEY,UNIQUE和CHECK 。

4.创建外键

create table 表名(
列名1 参数,
列名2 参数,
foreign key(列名) references 目标表名(目标列名)
)

5.添加外键

比如stuInfo(学生信息表)表是主表。他的主键是stuID,
另外还有一个stuExam表(学生考试成绩表)。在这个表中也有个列是stuID,但是要引用主表中的stuID.
那么在创建约束的时候:
alter table stuExam
add constraint fk_stuID foreign key(stuID) references stuInfo(stuID)
go

约束
非空约束 --NN,ont null constraint
必须填写数据不能为空
--指定表 Student 添加名为NN_Student_sClassId非空约束(指定列名sClassId),括号输入表达式
alter table Student add constraint NN_Student_sClassId check(sClassId is not null)主键约束 --PK,primary key constraint
唯一且不为空
--指定表 Student 添加名为PK_Student_sId主键约束(指定列名sId)
alter table Student add constraint PK_Student_sId primary key(sId)唯一约束 --UQ,unique constraint
唯一,允许为空,但是同样的数据只能出现一次
--指定表 Student 添加名为UQ_Student_sName唯一约束(指定列名sName)
alter table Student add constraint UQ_Student_sName unique(sName)默认约束 --DF,default constraint
设置默认值
--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),获取当前日期
alter table Student add constraint DF_Student_sName default(getdate()) for sBirthday--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),指定日期  
alter table Student add constraint DF_Student_sName default('1995-12-12') for sBirthday  
--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sSex),指定性别
alter table Student add constraint DF_Student_sSex default('男') for sSex     检查约束 --CK,check constraint
设置范围以及格式限制
--指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sSex),限制为'男'或者'女'
alter table Student add constraint CK_Student_sSex check(sSex='男' or sSex='女')   
--指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sAge),限制为0-100之间的数字
alter table Student add constraint CK_Student_sAge check(sAge>=0 and sAge<=100)   外键约束  --FK,foreign key constraint
表关系
alter table Student add constraint Fk_Student_sClassId foreign key(sClassId) references Class(cId)
--指定表Student添加sClassId外键为Class的主键cId
on delete cascade on update  cascade --级联删除 --级联更新删除约束
alter table Student drop Constraint NN_Student_sClassId    --删除指定表中的约束

create table 仓库
(  
仓库编号 int primary key , --主键的关键字primary key--  
仓库号 varchar(50) unique, --唯一索引关键字unique--  
城市 varchar(50) default '青岛', --不能为空not null--  
面积 int check (面积>=300 and 面积<=1800)  
) create table 职工表  
(  
职工编号 int identity (1,1) primary key,  
职工号 varchar(50) unique,  
仓库号 varchar(50),  
基本工资 int check(基本工资>=800 and 基本工资<=2100)
)  
create table 订单表  
(  
订单编号 int identity(1,1) primary key,  
订单号 varchar(50) unique,  
职工号 varchar(50) references 职工表(职工号),--references两张表通过“职工号”关联--  
订购日期 datetime,  
销售金额 int  
) create table 工资表  
(  
职工编号 int identity (1,1) primary key,  
职工号 varchar(50) unique,  
仓库号 varchar(50),  
基本工资 int check(基本工资>=800 and 基本工资<=2100),  
加班工资 int,  
奖金 int,  
扣率 int,  
应发工资 as (基本工资+加班工资+奖金-扣率) --as为自动计算字段,不能输入值--  
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/188810.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlite与mysql的差异

差异点 安装过程&#xff1a;MySQL服务器通常需要单独安装&#xff0c;这涉及下载适用于特定操作系统的MySQL安装程序&#xff0c;运行安装程序并按照指示完成安装过程。SQLite作为嵌入式数据库&#xff0c;可以直接使用其库文件&#xff0c;不需要单独的安装过程。 配置和管理…

SourceTree提示128错误

错误&#xff1a; SourceTree打开报错&#xff1a;git log 失败&#xff0c;错误代码128 错误截图&#xff1a; 解决方法&#xff1a; 第一种&#xff1a; 打开电脑路径 C:\Users\Administrator &#xff0c;删除下面的【.gitconifg】文件 第二种&#xff1a; 如果上述方法…

23111704[含文档+PPT+源码等]计算机毕业设计springboot办公管理系统oa人力人事办公

文章目录 **软件开发环境及开发工具&#xff1a;****功能介绍&#xff1a;****实现&#xff1a;****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 软件开发环境及开发工具&#xff1a; 前端技术&#xff1a;jsc…

基于共生生物算法优化概率神经网络PNN的分类预测 - 附代码

基于共生生物算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于共生生物算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于共生生物优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

3.5 Linux 用户管理

1、账号 & 组账号 inux基于用户身份对资源访问进行控制&#xff0c;Linux 属于多用户的操作系统 a. Linux 用户 按建立方式分类&#xff1a; 内建账户: 由系统或程序自行建立的账户自定义账户: 管理员或特权人员手工建立 按权限分类&#xff1a; 特权账户: 有对系统或…

如何编写分层清晰、通用性好的LCD驱动?

网络上配套STM32开发板有很多LCD例程&#xff0c;主要是TFT LCD跟OLED的。从这些例程&#xff0c;大家都能学会如何点亮一个LCD。但这代码都有下面这些问题&#xff1a; 分层不清晰&#xff0c;通俗讲就是模块化太差。 接口乱。只要接口不乱&#xff0c;分层就会好很多了。 可…

〖大前端 - 基础入门三大核心之JS篇㊱〗- JavaScript 的DOM节点操作

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;不渴望力量的哈士奇(哈哥)&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

长距离工业读写器选型要求

RFID在工业领域中的应用有很多&#xff0c;从货物的出入库到库存商品的管理再到产品的生产和销售&#xff0c;都可以看到RFID的身影。具体应用中不同的应用场景下对RFID读写器的要求不同&#xff0c;下面我们就一起来了解一下&#xff0c;长距离工业读写器的应用场景和选型要求…

上机练习 8: DataFrame 综合练习

记录一下做的练习题 目录 1)自定义一个 Series 并命名为 s1&#xff0c;自定义索引值&#xff0c;采用随机数作为其中数据尝试使用 s1.sum(计算其中所有数据的和,使用 s.mean(计算其中所有数据的平均值。 2)创建一个形状为4*6的 DataFrame 并命名为 df1,并指定行索引为[“a”…

高德地图系列(三):vue项目利用高德地图实现地址搜索功能

目录 第一章 效果图 第二章 源代码 第一章 效果图 高德地图为我们提供了搜索联想&#xff0c;以及搜索结果标记&#xff0c;该案例已将基础功能打通&#xff0c;后续我们肯定还会对功能有所修改,想实现自己想要的效果&#xff0c;基本上看高德地图文档对着改就好了&#xf…

【深度学习实验】网络优化与正则化(七):超参数优化方法——网格搜索、随机搜索、贝叶斯优化、动态资源分配、神经架构搜索

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、优化算法0. 导入必要的库1. 随机梯度下降SGD算法a. PyTorch中的SGD优化器b. 使用SGD优化器的前馈神经网络 2.随机梯度下降的改进方法a. 学习率调整b. 梯度估计修正 3. 梯度估计修正&#xff1a;动量法Momen…

Es 拼音搜索无法高亮

目录 背景&#xff1a; Es 版本&#xff1a; 第一步 第二步 &#xff08;错误步骤 - 只是记录过程&#xff09; 第三步 第四步 第五步 第六步 第七步 背景&#xff1a; app 原有的搜索功能无法进行拼音搜索&#xff0c;产品希望可以支持&#xff0c;例如内容中含有&a…