sqlserver建表(设置主键 外键)约束
一、通过sql命令建表
create table dept
(dept_id int primary key,dept_name nvarchar(100) not null,dept_address nvarchar(100) not null
)
以上代码解释
create table + 表名(表名的命名可参考SqlServer数据库命名规则)
nvarchar(100)-----数据类型(输入数据的大小)
not null--表示再向表内输入数据时这一列必须写数据,也可以设置为空null
设置主键(primary key)
是为了防止有重复数据,防止数据冗余,int是主键的数据类型。一般会选用无实际意义的编号来设置主键。
可以命名主键(constraint(约束)+主键名) 如果不命名默认是随机命名
create table dept
(dept_id int constraint pk_id_hahaha primary key,dept_name nvarchar(100) not null,dept_address nvarchar(100) not null
)
设置外键(foreign key)
外键可以联系表与表之间的关系,外键来自另一个表的主键
同样可以命名外键(constraint(约束)+外键名) 如果不命名默认是随机命名
--表一
create table dept
(dept_id int constraint pk_id_hahaha primary key,dept_name nvarchar(100) not null,dept_address nvarchar(100) not null
)
--表二
create table emp
(emp_id int constraint pk_id_haha primary key,emp_name nvarchar(20) not null,emp_sex nchar(1),emp_id int constraint fk_dept_id_heihei foreign key references dept (dept_id)
)
两表之间的关系图
二、约束
check约束
check约束可以去控制一些数据的范围,如果输入的数据超出范围会报错
create table student
(student_id int primary key,student_sal int check (student_sal>=1000 and student<=8000)--check约束
)
--写入数据
insert into student values (1,1000)
insert into student values (2,10000)--error
default约束
default约束是用来设置默认值
create table student
(student_id int primary key,student_sal int check (student_sal>=1000 and student<=8000),--check约束student_sex nchar(1) default('男')--default约束
)
--写入数据
insert into student values (1,1000)
--查询数据
select * from student
unique约束
unique约束是指定数据不能有重复
create table student
(student_id int primary key,student_sal int check (student_sal>=1000 and student<=8000),--check约束student_sex nchar(1) default('男')--default约束student_name nvarchar(200) unique --unique约束 选择在项目中有实际意义的属性作为唯一约束
)
--写入数据
insert into student values (1,1000,'男','张三')
insert into student values (2,1000,'男','张三')--error 因为指定name这个数据中有重复
insert into student values (2,1000,'男',null)--OK 说明唯一键允许为空但是可以在建表是设置为not null
主键和唯一键建表
如何实现多对多关系
sqlserver建表(设置主键 外键)约束相关推荐
- sqlserver 建表指定主键_3-自增字段;主键约束
按照上表写出一条建表语句 ①id字段为整型数据,主键约束,自增 ②dt字段为日期格式,非空 ③weather字段为可变长度字符串,最大长度为30,非空 ④min_tem与max_tem字段为整型数据, ...
- MySQL建表,主键,外键
1.创建表 MySql中,创建表是通过SQL语句create table实现的.语法形式如下: create table 表名( 属性名 数据类型[完整性约束条件], 属性名 数 ...
- java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键
文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...
- 约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏
文章目录 1. 约束(constraint)概述 2. 非空约束 3. 唯一性约束 4. PRIMARY KEY 约束 5. 自增列:AUTO_INCREMENT 6. FOREIGN KEY 约束 ...
- mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作
1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...
- 数据库 主键 外键 唯一键区别
下面我通过一个小栗子来说明我们应该如何选择主键,外键和唯一键. 现在我们想建立学生表,用来存储,一个系统的登陆信息.建表如下: create table student4 ( stu_id in ...
- mysql中表的约束,主键外键唯一键
mysql2 表的约束 空属性(NULL) 默认值 列描述 zerofill 主键 主键属性 复合主键 追加主键 删除主键 自增长 唯一键 外键 表的约束 空属性(NULL) 此时 name 的 Nu ...
- [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式
[数据库03]-约束(唯一性-主键-外键)/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式 一.约束 1.1 唯一性约束(unique) 1.2 主键约束 1.3 外键约束 二.存储引擎 2 ...
- 主键主键外键和索引_主键和外键的目的/用途是什么?
主键主键外键和索引 Primary and foreign keys are a way in which to constrain related data together to ensure d ...
- wamp mysql外键设置_数据库外键是什么意思
数据库外键是什么意思? 外键(FK)是用于建立和加强两个表数据之间的链接的一列或多列.通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接.这个列就成为第二个表的外键. 当创建或更 ...
最新文章
- Spring Boot + Redis 操作多种实现
- jvm优化_使用Java流和In-JVM-Memory的超低延迟查询
- Android Studio:依赖异常问题解决
- Java刷题知识点之方法覆盖(方法重写)和方法重载的区别
- 转为win64后, MS的lib问题
- python代码块缩进_Python代码需要缩进吗
- Unity3D 的物理渲染和光照模型
- 宅在家里写数据库中DML(增删改)
- [Web开发] Web程序调式的利器 - Fiddler (HTTP协议监视工具)
- netlify支持php吗,用 hugo 和 netlify 搭建blog【转】
- fortran95 文件读写等操作的字段参数总结
- 用计算机观察声音的波形,用计算机观察声音的波形
- 伊诺ET-33夹式校(音器吉他/贝司/小提琴/尤克里里 使用
- RT-Thread 模拟器 simulator 搭建 LVGL 的开发调试环境
- 2021最新Android常用开源库总结,最强技术实现
- css 上中下三行布局 4种方式
- 平安产险深圳分公司:温暖护航 2021中国平安中超联赛圆满落幕
- Big Faceless Applet PDF阅读器
- PWM直流马达速度控制
- MongoDB——高级——集群和安全:安全认证(八)
热门文章
- React教程之使用create-react-app构建你的第一个react应用
- java 的发展历史
- 信号完整性(SI)电源完整性(PI)学习笔记(十六)有损线、上升边退化与材料特性(三)
- Verilog:【2】伪随机数生成器(c_rand.v)
- fixed定位 input在IOS设备上光标位置异常问题
- 建模助手(Revit)插件如何生成基坑开挖和地下连续墙?
- 创新“芯”引擎 | 国民技术N32G457 RT-Thread设计大赛 -基于RT-Thread的远程智能空气质量检测系统
- yf-flash-tree 发布了
- 推荐一门边开车边赚钱的小生意跟游戏推广有关
- 由力扣K 个一组翻转链表到360原创题