admin管理员组文章数量:1794759
【数据库】SQL Server零基础学起你必会(二)表和约束概念详解,用SQL命令建表和约束
SQL Server零基础学起你必会(二)表和约束概念详解,用SQL命令建表和约束
- 利用SQL命令建表和约束
- 六大约束
- 实战
- 指令合集
- 实例流程
- 关系
- 实战
- 指令合集
- 实例流程
- 查看数据关系的建立
- 关系图
- 总结
- 主键
- 外键
- 先删主键表还是外键表
- 相关知识链接
约束:对一个表中属性操作的限制
主键 ( P K ) (PK) (PK)约束 | 不允许重复元素,避免数据冗余 |
外键 ( F K ) (FK) (FK)约束 | 从语法上保证了本事物所关联的其他事物一定存在 |
c h e c k check check约束 | 保证事物的属性在合法的范围内 |
d e f a u l t default default约束 | 保证事物的属性一定会有一个值 |
u n i q u e unique unique唯一性约束 | 不允许重复,但允许为空, S Q L S e r v e r SQLServer SQLServer不允许多列为空 |
- 事物和事物之间的关联由外键体现
- 外键不能来自另一个表的普通键,如果是普通键则可以一致,如果有重复的就无法判断来自于哪一个。
- 不要用业务逻辑当主键,比如用户名,因为用户名可以改,加一些额外的操作,比如重新编个号。
- 外键可以有多个,主键只可以有一个
下面建一个简单的学生表,快跟着敲一遍:
指令合集建表 | c r e a t e t a b l e + 表 名 create\\,\\, table+表名 createtable+表名 | |
主键 | p r i m a r y k e y primary\\,\\,key primarykey | |
约束条件 | c h e c k ( . . . a n d . . . ) check(... \\,and\\, ...) check(...and...) | |
n o t n u l l not \\,\\,null notnull | 非空 | |
n v a r c h a r ( 100 ) nvarchar(100) nvarchar(100) | n n n表示国际化支持汉字, v a r y vary vary变量, c h a r char char表示字符, ( 100 ) (100) (100)表示最大容量 | |
d e f a u l t ( 默 认 值 ) default(默认值) default(默认值) | 默认为 . . . ... ... | |
i n s e r t insert insert插入 | i n s e r t i n t o + insert\\,\\, into+ insertinto+表名 + + +(需添加的列) v a l u e s + values+ values+(添加的信) |
数据库中单引号里面是字符串,双引号里是数据的名字
实例流程我们会遇到这样的问题,老代码运行完后新代码加进去会报错,显示已存在
- 如果是单独的指令可以
- 如果是表内进行了新的修改,需添加:
运行新表时带着该代码一起运行即可
- n o t n u l l not\\,\\, null notnull:默认 n u l l null null,用户不给该字段赋值,则字段默认值为 n u l l null null
和约束的关系 黄金三句:
- 数据库通过表来解决事物的存储问题
- 数据库通过约束来解决事物取值的有效性和合法性问题
- 建表的过程就是制定事物属性及其事物属性各种约束的过程
- 定义:表和表之间的联系
- 实现方式:通过不同形式的外键来表示表和表的不同关系
- 假设是表A和表B
一对一 | 即可以把表A的主键充当B的外键,也可以把表B的主键充当表A的外键 |
一对多 | 把表A的主键添加到表B来充当外键,或者说在多的一方添加外键 |
多对多 | 必须通过单独的一张表来表示 |
建立班级,学生,课程的具有多对多关系的表: 班级一张表,教师一张表,班级和教师的关系也是一张表。
指令合集约束及约束的命名 | c o n s t r a i n t + 命 名 constraint\\,\\, +命名 constraint+命名 | |
外键及来源表格 | f o r e i g n k e y r e f e r e n c e s foreign\\,\\, key\\,\\, references foreignkeyreferences |
- 数据库研究的是外存
- 图灵证明了用顺序,选择,循环可以解决一切问题, S Q L S e r v e r SQLServer SQLServer用的是纯命令,没有流程,把顺序,选择和循环给删掉了,可以用可流程控制的 T L S Q L ( 无 法 跨 平 台 ) TL\\,SQL(无法跨平台) TLSQL(无法跨平台)解决或者用高级语言对数据进行处理,再写入数据库
- 数据库的所有操作都可以简化成增删改查的操作
- 一列(字段)表示一个特征,一行(记录)表示这个事物,表表示的是同一个事物的集合
- 主键:能唯一标识事物的一个字段,主键不允许修改,修改可能会出现重复。
- 主键通常是整数,不建议用字符串(如果主键是用于集群式服务,才可以用字符串)
- 主键通常 不允许修改,除非被本记录删除
- 主键不要定义成 i d id id,而要定义成表名 I d Id Id或者表名_id
- 要用代理主键,不要用业务主键,通常都是单独添加一个整型的编号充当主键字段
- 外键:如果一个表中若干字段来自另外若干表的主键或唯一键
- 外键通常来 自另外表的主键 而不是唯一键,因为唯一键可能为 n u l l null null
- 外键不一定来自另外的表,也可能来自本表的主键,如下图员工上司表,每个员工的上司也属于员工
- 含有外键的表叫外键表,外键字段来自的那一张表叫做主键表
- 先删外键表,否则会报错
SQL Server零基础学起你必会(一)图形化界面建表 SQL Server零基础学起你必会(二)表和约束概念详解,用SQL命令建表和约束 SQL Server零基础学起你必会(三)九种简单查询【史上最全】 数据库入门(一)范式理解:1NF,2NF,3NF,BCNF,4NF详析 数据库 SQLServer 视频教程全集(99P)| 22 小时从入门到精通 数据库知识点 一个小时上手SQL sql语句,你肯定会听懂的 (重要顺序从上到下)
版权声明:本文标题:【数据库】SQL Server零基础学起你必会(二)表和约束概念详解,用SQL命令建表和约束 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1687070442a131126.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论