刚刚开始主要是一些概念,先掌握一些概念对接下来的学习是必要的;
一个关系就是一张表,元组就是表中的一行,
对于关系中的每个属性,都存在一个允许取值的集合,称为该属性的域。
如果某个域中元素师不可再分的单元,则域是原子的。比如属性phone_number的域就不是原子的,它可以分为国家编号,区号等等的,或者是一个人有多个电话号码;
空值是一个特殊的值,代表未知或者不存在;
数据库模式是逻辑设计,数据库实例是数据库模式的一个实例;
关系模式:department(dept_name,building,budget) 关系实例是关系模式的一个实例;
有关于一个关系(表)的码:
超码:超码是一个或者多个属性的集合,这些属性的组合可以是我们在一个关系中唯一的标识一个元组;
主码:也称为候选码,最小超码就是主码,一个关系的主码可能有多个。主码应该选择那些值从来不变化或者很少变化的属性。
一个关系模式可能在在它的属性中包含另外一个关系的主码。这个属性在R1上称作参照R2的外码,关系R1称为外码依赖的参照关系,R2叫做外码的被参照关系。
SQL:
SQL由IBM开发的。ANSI美国国家标准化组织,ISO国际标准化组织
数据定义语言DDL,数据操作语言DML
SQL基本类型:
char(n)n位固定长度字符串
varchar(n)变长字符串,最长为N
int(n)整数类型(长度跟机器相关)
smallint小整数类型
number(p,d)比如number(3,1)可以表示44.5,但是不可以表示444.5或者0.32
real,double,precision:浮点数与双精度浮点数,精度与机器相关
float(n)精度至少为n位的浮点数
char(n)型存放不足n位字符串的时候系统会自动补空格,直到n位
定义表的SQL:
create table department(
dept_name varchar(20)not null,
building varchar(15),
budget numeric(12.2),
primary key(dept_name);
)
上面的sql语句定义了一个叫department的表,其中有三个属性。
primary()表明括号里面的是主码;foreign key(a,b……)references S表明括号里的属性是参照表S的外键
not null表明该属性取值不能为空;