SQL数据库
来源:互联网 发布:软件下载大全 编辑:程序博客网 时间:2024/04/28 07:20
什么是关系模型?
关系模型把世界看作是由实体(Entity)和联系(Relationship)组成的。所谓实体就是指在
现实世界中客观存在并可相互区别的事物。
实体所具有的某一特性称为属性(Attribute)。实体可以用过若干属性来描述。
以关系模型来创建的数据称为关系型数据库(Relation Database)
相类似的实体被存入表中。表(table)是关系型数据库的核心单元,它是数据存储的地方。
主键
在关系型数据库表中,用一个唯一的标识符来标识每一行,这个标识符就是主键(Primary)。
外键
在关系型数据库中,外键(Forergn Key)就是用来表达表和表之间的关联关系。
一对一:一条主表记录对应一条从表记录,同时一条从表记录也对应一条主编记录。
一个公民表的编号对应一条身份证表的编号
一对多:一条主表记录对应多条从表记录,同时一条从表记录对应一条主表记录
一个班主任对应多个学生,一个学生只对应一个班主任
多对多:一条主表记录对应多条从表记录,同时一条从表记录也对应多条主条记录。
多对多需要有中间表进行关联。
关系型数据库是以表作为实体,以主键和外键的关联关系作为联系的数据库结构。
什么是数据库管理系统?
关系型数据库值是一个保存数据的容器,大多数数据库依靠一个称为数据库管理系统(DataBase Management System,简称DSMS)
的软件来管理数据库中的数据。管理关系数据库的软件称为关系型数据库管理系统(Relation DataBase Management System,简称RDBMS)
数据库应用程序通过RDBMS与关系型数据库进行交互。
什么是SQL
SQL是一种用于管理关系型数据库,并与数据库中的数据进行通讯的计算机语言。
SQL语句
数据定义语言(DDL)创建、修改、删除数据库的内部数据结构
数据查询语言(DQL)用于数据库中数据的查询
数据操作语言(DML)用于数据库中数据的修改,包括添加、删除、修改等
数据控制语言(DCL)控制数据库访问权限
Delete 和Truncate两者区别
Delete会记录日志,意味着删除后的数据还可以恢复,但是效率低,
Truncate不会记录日志,删除后的数据不能恢复,但是效率高。
为什么要保证数据库完整性?
为了防止垃圾数据的产生,从而影响数据库的执行效率。
数据完整性的分类:
1、实体完整性
保证一行数据是有效的
为什么要保证实体完整性
保证每行所代表的实体能互相区别,不能存在两条一模一样的记录。
什么是实体完整性
表中的一行数据如果与它所代表的实体完成一致,则具备实体完整性。
2、域完整性
保证一列数据是有效的
为什么要域完整性?
保证指定列的数据的有效性
为什么叫域完整性?
域完整性是指定列的输入有效性
实现方法
非空约束:Not Null
默认约束:Default
检查约束:Check(MySQL不支持)
3、引用完整性
保证引用的编号是有效的
为什么要引用完整性约束?
列如,在录入学生成绩时,所使用的学号必须是在学生表中作为主键存在的编号。
什么叫引用完整性?
引用完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。
从外表键中出现的数据,必须在主表的主键列中出现。
4、用户自定义完整性
保证自定义规则
外键与外键约束
二者是不同概念,常常被混淆
外键是值从表的某列与主表的某列存在依附关系
外键约束是值在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。
实现方法
主键约束:主键是表中的一到多个列,主键列不能为空,也不能重复。一个表中只能有一个主键。
唯一约束:唯一约束是指给定列的所有值必须唯一,该列在表中每一行的值必须唯一。它和主键约束的区别
在于该列可以为空,并且可以在一张表中给多个列设置唯一约束。
0 0
- SQL数据库
- SQL数据库
- sql数据库
- 数据库SQL
- sql数据库
- sql 数据库。。。
- 数据库SQL
- sql数据库
- SQL数据库
- sql数据库
- SQL数据库
- SQL 数据库
- SQL数据库
- sql数据库
- 数据库SQL
- SQL数据库
- SQL数据库
- SQL数据库
- win10中使用sqlserver2008r2 SQL Server 配置管理器
- 极大似然估计、拉普拉斯平滑定理、M-估计详解
- 移动支付
- 【CDP-云设计模式】第9章,1.引导程序模式(Bootstrap Pattern)
- 安装Ubuntu12.04 之前的设置工作
- SQL数据库
- 语音识别和友盟统计
- DAY68_share ida pro's plugin-ponce
- notpad++ 添加项目树,实时更新项目文件
- SQL基本操作
- C++静态绑定与动态绑定
- 虚拟机fedora下安装cuda
- request.getParameterValues与request.getParameter的区别
- myeclipse 发布 web 项目后 tomcat 无法正常启动