文章参考书目为机械工业出版社出版的《数据库系统基础教程》,介绍过程中以关系型数据库为主,是以一种通用的数据库语言来说明数据库建设原理方式等问题,后期会有文章具体实践加入诸如MySQL,xml,mongodb等实际操作。
数据库,指的是数据库管理系统DBMS管理的数据集合,需要具有以下功能:
- 允许用户使用特殊的数据定义语言建立新的数据库
- 支持合适的查询语言或者数据库操作语言提供查询,更新数据等能力
- 支持超大数据的长时间有效存储
- 面对故障或者错误情况下,保证恢复数据的一致性
- 控制多用户对数据的同时存取,不允许相互影响,不允许不完整操作
数据库关系模型
1、关系:用来描述数据的方法,是一张二维表,例如以下就是一个关系的例子,关系名字为人员
姓名 | 性别 | 年龄 | 籍贯 |
李四 | 男 | 15 | 汉 |
王二 | 女 | 16 | 汉 |
张三 | 男 | 14 | 汉 |
2、属性:关系的列命名为属性,比如上面关系的属性名分别为姓名、性别、年龄、籍贯
3、模式:关系名与其属性集合的组合,例如上面的关系模式为:人员(姓名、性别、年龄、籍贯)
4、元组:关系中除了属性名行外的其他行为元组,例如上述关系的一个元组为(李四,男,15,汉)
5、键:一种基本的约束,通过键可以区分不同的元组,直白的理解就是键可以作为一个元组的标识,用来区分彼此
SQL中的三种关系
- 表:在数据库中存储的一种关系,用户可以通过表对元组进行查询和更新
- 视图:通过计算定义的关系,但并不在数据库中存储,这里作为了解
- 临时表:在执行处理程序时构造的临时表,处理结束后会被删除
SQL系统支持的数据类型
- CHAR(n)表示最大为n个字符的固定长度字符串,未满会以空格填充;VARCHAR(n)表示最大为n字符串的可变长字符串,以一个结束符结尾,但不会填充。
- BIT(n),BIT VARYING(n)表示固定和可变长的位串,与字符串区别在于值由比特组成而非字符串
- BOOLEAN表示逻辑类型值,其值可能为:TURE、FALSE、UNKNOWN
- INT,INTEGER表示整数值,两者为同义词
- FLOAT、REAL表示浮点数值,两者为同义词
- DECIMAL(n,d)表示n位有效数字的十进制数,其中含有d位小数
- DATA,TIME表示时间类型,本质为字符串的特殊形式
表定义
关系定义举例:
CREATE TABLE Movies( title CHAR(100), data DATE, length INT, addr VARCHAR(30) ) |
删除关系:DROP TABLE Movies;
修改关系为增加一个属性:ALTER TABLE Movies ADD year INT;
修改关系为删除一个属性:ALTER TABLE Movies DROP year;
定义关系时增加默认值:title CHAR(100) DEFAULT ‘?’,
键的声明关键字为PREIMARY KEY以及UNIQUE,区别在于UNIQUE可以使用NULL值
声明方式有两种:第一种直接在在属性后面说明,例如title CHAR(100) PRIMARY KEY,另一种是在定义的最末行直接定义,例如title CHAR(100) , PRIMARY KEY (title)
关系代数操作
- 常用的操作,并、交、差
- “选择”消除元组行的操作,“投影”消除元组列的操作
- 组合关系元组的操作,“笛卡尔积”“连接”等
- “重命名”不影响关系元组,只是名称改变
这其中有不合适或者不正确的地方欢迎指正,我的QQ号码:2867221444(乔金明),谢谢,也可以相互交流下,备注信息随意,只要能看得出是开发者或者学习者即可。