一、通过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建表(设置主键 外键)约束相关推荐

  1. sqlserver 建表指定主键_3-自增字段;主键约束

    按照上表写出一条建表语句 ①id字段为整型数据,主键约束,自增 ②dt字段为日期格式,非空 ③weather字段为可变长度字符串,最大长度为30,非空 ④min_tem与max_tem字段为整型数据, ...

  2. MySQL建表,主键,外键

    1.创建表 MySql中,创建表是通过SQL语句create table实现的.语法形式如下: create table 表名( 属性名 数据类型[完整性约束条件],            属性名 数 ...

  3. java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键

    文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...

  4. 约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏

    文章目录 1. 约束(constraint)概述 2. 非空约束 3. 唯一性约束 4. PRIMARY KEY 约束 5. 自增列:AUTO_INCREMENT 6. FOREIGN KEY 约束 ...

  5. mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作

    1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...

  6. 数据库 主键 外键 唯一键区别

    下面我通过一个小栗子来说明我们应该如何选择主键,外键和唯一键.  现在我们想建立学生表,用来存储,一个系统的登陆信息.建表如下: create table student4 (   stu_id in ...

  7. mysql中表的约束,主键外键唯一键

    mysql2 表的约束 空属性(NULL) 默认值 列描述 zerofill 主键 主键属性 复合主键 追加主键 删除主键 自增长 唯一键 外键 表的约束 空属性(NULL) 此时 name 的 Nu ...

  8. [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式

    [数据库03]-约束(唯一性-主键-外键)/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式 一.约束 1.1 唯一性约束(unique) 1.2 主键约束 1.3 外键约束 二.存储引擎 2 ...

  9. 主键主键外键和索引_主键和外键的目的/用途是什么?

    主键主键外键和索引 Primary and foreign keys are a way in which to constrain related data together to ensure d ...

  10. wamp mysql外键设置_数据库外键是什么意思

    数据库外键是什么意思? 外键(FK)是用于建立和加强两个表数据之间的链接的一列或多列.通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接.这个列就成为第二个表的外键. 当创建或更 ...

最新文章

  1. Spring Boot + Redis 操作多种实现
  2. jvm优化_使用Java流和In-JVM-Memory的超低延迟查询
  3. Android Studio:依赖异常问题解决
  4. Java刷题知识点之方法覆盖(方法重写)和方法重载的区别
  5. 转为win64后, MS的lib问题
  6. python代码块缩进_Python代码需要缩进吗
  7. Unity3D 的物理渲染和光照模型
  8. 宅在家里写数据库中DML(增删改)
  9. [Web开发] Web程序调式的利器 - Fiddler (HTTP协议监视工具)
  10. netlify支持php吗,用 hugo 和 netlify 搭建blog【转】
  11. fortran95 文件读写等操作的字段参数总结
  12. 用计算机观察声音的波形,用计算机观察声音的波形
  13. 伊诺ET-33夹式校(音器吉他/贝司/小提琴/尤克里里 使用
  14. RT-Thread 模拟器 simulator 搭建 LVGL 的开发调试环境
  15. 2021最新Android常用开源库总结,最强技术实现
  16. css 上中下三行布局 4种方式
  17. 平安产险深圳分公司:温暖护航 2021中国平安中超联赛圆满落幕
  18. Big Faceless Applet PDF阅读器
  19. PWM直流马达速度控制
  20. MongoDB——高级——集群和安全:安全认证(八)

热门文章

  1. React教程之使用create-react-app构建你的第一个react应用
  2. java 的发展历史
  3. 信号完整性(SI)电源完整性(PI)学习笔记(十六)有损线、上升边退化与材料特性(三)
  4. Verilog:【2】伪随机数生成器(c_rand.v)
  5. fixed定位 input在IOS设备上光标位置异常问题
  6. 建模助手(Revit)插件如何生成基坑开挖和地下连续墙?
  7. 创新“芯”引擎 | 国民技术N32G457 RT-Thread设计大赛 -基于RT-Thread的远程智能空气质量检测系统
  8. yf-flash-tree 发布了
  9. 推荐一门边开车边赚钱的小生意跟游戏推广有关
  10. 由力扣K 个一组翻转链表到360原创题