数据库中的sql完整性约束
完整性约束
1 主键
- 创建表:定义列时指定主键:
- 创建表:定义列之后独立指定主键:
- 修改表时指定主键:
- 删除主键(只是删除主键约束,而不会删除主键列):
2 主键自增长
- 创建表时设置主键自增长(主键必须是整型才可以自增长):
- 修改表时设置主键自增长:
- 修改表时删除主键自增长:
3 非空
- 指定非空约束:
4 唯一
5 外键
- 创建t_user表,指定uid为主键列:
- 创建t_section表,指定sid为主键列,u_id为相对t_user表的uid列的外键:
- 修改t_section表,指定u_id为相对t_user表的uid列的外键:
- 修改t_section表,删除u_id的外键约束:
6 表与表之间的关系
- 一对一:例如t_person表和t_card表,即人和身份证。这种情况需要找出主从关系,即谁是主表,谁是从表。人可以没有身份证,但身份证必须要有人才行,所以人是主表,而身份证是从表。设计从表可以有两种方案:
- 在t_card表中添加外键列(相对t_user表),并且给外键添加唯一约束;
- 给t_card表的主键添加外键约束(相对t_user表),即t_card表的主键也是外键。
- 一对多(多对一):最为常见的就是一对多!一对多和多对一,这是从哪个角度去看得出来的。t_user和t_section的关系,从t_user来看就是一对多,而从t_section的角度来看就是多对一!这种情况都是在多方创建外键!
- 多对多:例如t_stu和t_teacher表,即一个学生可以有多个老师,而一个老师也可以有多个学生。这种情况通常需要创建中间表来处理多对多关系。例如再创建一张表t_stu_tea表,给出两个外键,一个相对t_stu表的外键,另一个相对t_teacher表的外键。
数据库中的sql完整性约束的更多相关文章
- .net(C#)在Access数据库中执行sql脚本
自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...
- 收集Oracle数据库中的SQL基线信息(一)基础信息收集
Oracle数据库中的SQL基线信息,当数据库出现性能问题时,在业务无法提供相应业务信息时,通过对比SQL基线信息来查找SQL的变化. 查找数据库一天内运行次数大于5000次的sqlid select ...
- 数据库中的sql语句总结
初识SQL 1. 什么是SQL:结构化查询语言(Structured Query Language). 2. SQL的作用:客户端使用SQL来操作服务器. > 启动mysql.exe,连 ...
- django----查看数据库中的sql语句
加载setting.py 文件中 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console ...
- 在数据库中分析sql执行性能
SET STATISTICS PROFILE ON SET STATISTICS IO ON SET STATISTICS TIME ON GO /*--SQL脚本开始*/ SELECT * FROM ...
- Oracle数据库中,sql中(+)(-)的含义
SELECT *FROM TABLE1 A,TABLE2 B WHERE A.ID(+)=B.ID; 右连接=RIGHT JOIN SELECT *FROM TABLE1 A,TABLE2 B WHE ...
- SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...
- MySQL数据库中.SQL文件的导出方式
转自:http://tech.watchstor.com/management-117401.htm 在MySQL数据库中导入SQL文件是件很麻烦的事情,但是这是一项大家非常值得学习的技术,本文就从最 ...
- C#将图片存放到SQL SERVER数据库中的方法
本文实例讲述了C#将图片存放到SQL SERVER数据库中的方法.分享给大家供大家参考.具体如下: 第一步: ? 1 2 3 4 5 6 7 8 9 10 //获取当前选择的图片 this.pictu ...
随机推荐
- 对c语言中static函数的理解
先看看前两篇博客:个人对头文件的理解.对声明和定义的理解. static 函数只在定义该static函数的cpp中可见,在其他cpp中是不可见的. 举个例子,我建立了一个project,该projec ...
- BurpSuite--代理和浏览器设置
上一篇文章我们完成了JAVA环境的搭建和burpsuite的安装,接下来请大家和我一起一步一步的完成burpsuite的代理和浏览器的相关设置. 关注“白帽技术与网络安全”获取安装包 1.设置浏览器代 ...
- [redis读书笔记] 第一部分 数据结构与对象 对象类型
- 从前面redis的基本数据结构来看,可以看出,redis都是在基本结构(string)的基础上,封装了一层统计的结构(SDS),这样让对基本结构的访问能够更快更准确,提高可控制度. - redis ...
- 10-SpringMVC04
FreeMarker 1.入门案例 1. 导包:freemarker.jar 2. 需要创建模板文件的路径:src/main/resources/template 3. 创建一个模板对象:hello. ...
- python yml 文件处理
安装 pip install pyyaml import yaml import io s = {'host': {'ip00': '10.0.0.1', 'ip01': {'one': '10.0. ...
- ODBC连接数据库实例
2012-12-13 22:27 (分类:默认分类) 1.首先建立数据源,正常情况下载控制面板-管理工具-数据源,打开后有用户DSN系统DSN 两者区别在于系统级的DSN,就是对该系统的所有登录用户可 ...
- Apache的那些事-查找配置文件
在CentOS 6.5 里Apache的 安装后出现两个httpd.conf配置文件,一个在 /etc/httpd/conf/httpd.conf 这个事li ...
- linux web站点常用压力测试工具httperf
一.工具下载&&安装 软件获取 ftp://ftp.hpl.hp.com/pub/httperf/ 这里使用的是如下的版本 ftp://ftp.hpl.hp.com/pub/httpe ...
- Java集合效率问题
凑算式 B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字. 比如:6+8/3 ...
- You (oracle) are not allowed to use this program (crontab)
检查一台ORACLE数据库服务器的crontab作业(用户为oracle,实际环境中可能为oracle.也有可能是其它用户)时,发现出现下面提示信息: $ crontab -l You (orac ...