1、数据库体系结构
数据库由三个模式,两个映像构成,
- 外模式:单个用户所看到的局部数据的逻辑结构和特征的描述
-
- 外模式/模式映像:定义了外模式与概念模式之间的对应关系,保证了数据与用户程序的逻辑独立性。
- 概念模式:数据库中全体数据的逻辑结构和特征的描述
-
- 模式/内模式映像:定义了概念模式与内模式之间的对应关系,保证了数据与程序的物理独立性
- 内模式:数据物理结构和存储方式的描述
2、关系数据模型
数据模型三要素:
- 数据结构
- 数据操作
- 数据的完整性约束
- 实体完整性:关系模式R的主码的属性不可取空值
- 参照完整性
- 用户自定义完整性:针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的特殊语义,例如:人的年龄不可能>1000
3、关系数据库语言
插入日期使用cast函数。
cast函数:将某种数据类型的表达式显式转换为另一种数据类型
例如:Insert Into Student
Values ('s005', 'Jack' , 22 , 'M' , cast('1981/03/18' as datetime));
提问:若要将一个已有表中的数据全部插入到同结构的另一张表中。
• 例:假设表Student和表Student1的列数目、各列类型和顺序都是一样的,现将表Student中的数据(不止一条)全部插入到表Student1中,如何处理?
insert into Student1
select * from Student;
注意:前提是:表Student1在数据库中已创建成功。
- 1、插入新记录到基本表中
-
- Insert Into <表名> (列名1,列名2,……,列名n)
- Values(值1,值2,……,值n)
- 例子:
-
- Insert Into Student
- Values ('s002', 'Mike', 21, 'M');
- 2、修改表中的数据
-
- Update <表名>
- Set <列名1>=<值1>,<列名2>=<值2>,……
- Where <条件>
- • 将符合<条件>的记录的一个或多个列设置新值
- 例子:例1:将学生John的性别改为‘F’,年龄改为23
-
- Update Student
- Set sex='F', age=23
- Where sname= 'John';
- 3、删除表中的记录
-
- Delete From <表名>
- Where <条件>
- 将符合<条件>的记录从表中删除
- 例1:从数据库中删除学号为s001的学生
-
- Delete From Student
- Where s# = 's001';
- 4、Select查询结构
-
- Select <列名表> --指定希望查看的列
- From <表名列表> --指定要查询的表 on 表1.a=表2.b
- Where <条件> --指定查询条件
- Group By <分组列名表> --指定要分组的列
- Having <条件>--指定分组的查询条件
- Order By <排序列名表> --指定如何排序
- WHERE子句中的关系运算符
- • 算术比较符:>, <, >=, <=, =, <>
- • IN
- • IS NULL和IS NOT NULL
- • LIKE
- • EXISTS
-
- 例子:LIKE:查询姓名的第一个字母为'R'的学生
- – Select * From Student Where sname LIKE
- 'R%';
- • %:任意长度的字符串
- • _:单个字符
- – 查询姓名的第一个字母为‘R’并且倒数第二个字
- 母为'S'的学生
- • Select * From Student Where sname LIKE 'R%S_';
- – 提问:查询姓名包含字母为‘R’的学生
- • Select * From Student Where sname LIKE '%R%';
- 多个比较式可用NOT、AND和OR连接
- – Select * From Student
- Where age IS NULL and sname LIKE 'R%';
5、使用聚集函数
– Count(列名):对一列中的值计数
– Count(*):计算记录个数
– SUM(列名):求一列值的总和(数值)
– AVG (列名):求一列值的平均值
– MIN (列名):求一列值的最小值
– MAX (列名):求一列值的最大值
2、数据库设计步骤:
- 需求分析
- 概念设计
- 逻辑设计
- 物理设计
- 数据库实施
- 数据库运行与维护