关系模型
关系数据库是以关系模型为基础的数据库,它由关系数据结构,关系操作集合,关系完整性约束三部分组成。
关系数据结构
关系:指我们常说的二维表;
元组:对应表中的一行,一行即为一个元组;
属性:对应表中的一列,一列即为一个属性;
主键:表中的某个属性组,它可以唯一确定一个元组;
域:属性的取值范围;
分量:元组中的一个属性值
关系模式: 对关系的描述,一般可表示为:关系名(属性1,属性2,。。。属性n)
关系操作集合
采用集合操作方式,操作对象和结果都是集合。
关系完整性约束
候选键(Candidate Key): 若关系数据中某一属性组的值能唯一标识一个元组,称该属性组为候选键;
主属性(Primary Attribute):若关系数据中一个属性是构成某一个候选键的属性集中的一个属性,称该属性为主属性;
主键(Primary Key): 若一个关系中有多个候选键,则选定一个为主键;
外键(Foreign Key): 如果一个属性是所在关系之外的另一关系的主键,则该属性就是它所在关系的外键。
域完整性约束:关系中属性的值应是域中的值(最基本最简单的约束);
实体完整性约束:关系中的主键不能为空值;
参照完整性约束: 关系的外键必须是另一个关系主键的有效值或是空值(外键可以没有值,但不允许是一个无效值);
用户定义完整约束: 由应用环境决定其约束条件。
关系模式
概念模式
主要出现在数据库中的每个关系的说明,包括对关系名、属性名和属性取值范围(类型)的说明。对应于关系数据库三级模式结构中的概念模式,对应于全体基本表。
外模式
由视图和部分基本表组成。
内模式
数据库的存储文件及其索引文件构成了关系数据库的内模式。
常用数据类型
数值型
INT:长整型,也可以写成INTEGER;
SMALLINT:短整型;
REAL:取决于机器精度的浮点数;
FLOAT(n):浮点数,精度至少为n位的数字。
字符型
CHAR(n):长度为n的定长字符串,n是字符串中字符的个数;
VACHAR(n):具有最大长度为n的变长字符串。
位串型
BIT(n):长度为n的二进制位串;
BIT VARYING(n):最大长度为n的变长二进制字符串。
日期型
DATE:日期,包含年,月,日,格式为:YYYY-MM-DD;
TIME:时间,包含一日的时分秒,格式为:HH:MM:SS。
运算符
比较运算符
=,!=(),,>=等;
谓词
IS NULL 和IS NOT NULL: 用于判断字符串的值是否是空值。
:不能用"="来查找NULL的值。如果使用"=",则表示要查找的是字符"NULL",而不是NULL值。
BETWEEN AND 和NOT BETWEEN AND: 用于判断值是否在给定的两个值之间,包括边界值(与一样的功能)。
IN: 用于判断值是否属于指定的集合。
LIKE: 用来进行字符串的匹配,一般语法格式如下:[NOT]LIKE[ESCAPE]
这和其他编程语言中的正则表达式很像,下面简单介绍一下:
(1) 中经常使用通配符%(百分号)和(下划线)来使用。
%代表任意长度(长度可能为0)的字符串,代表任意单个字符串。
举个例子:A%B:表示以A开头,以B结尾的任意长度的字符串。A_B则表示的是以A开头,以B结尾的长度为3的任意字符串。
(2) 如果LIke后面的匹配符中不含有通配符,则可以用“=”(等号)运算符取代谓词like,用或!=(不等于)运算符取代谓词NOT LIKE.
(3)如果要查询的字符串本身就含有"%"或"_",则需要使用由ESCAPE指定的换码字符。
EXISTS 和NOT EXISTS:格式为EXISTS(子查询)。
逻辑运算符:NOT , AND , OR .
语法规定与约定
语句格式约定符号
语法规定
一般语法规定:
SQL中,数据项(列项,表和视图)的分隔符为","
字符串常数的定界符用单引号"`"表示
SQL特殊语法规定:
SQL的关键词一般使用大写字母表示
SQL语句的结束符为";"
SQl采用格式化书写方式
数据库不区分大小写,而且空白量的多少也不影响代码的运行,但最好是不影响阅读为宜。
写在后面
好了,关于SQL的一些概念我就写到这里了,这可能不是很全,但是都是重点内容呢。下一期的笔记,则就正式进入数据库的语法的学习了。
今天的分享就到这里了,如果你有任何不懂的问题,可以发信息或者留言喽。
领取专属 10元无门槛券
私享最新 技术干货