数据库复习/样例及代码

1.4.1 三个世界的划分

1、现实世界
2、信息世界:

  • 实体:客观存在的事物、事件。
  • 属性:实体的某一特性。分为属性名,属性值
  • 码/键:唯一标识实体的属性或属性的组合。如学号
  • 域:属性的取值范围。如“男、女”
  • 实体型:实体名及其所有属性的集合。如学生(学号,姓名,性别,年龄)
  • 实体集:同一类型实体的集合,如全体学生
  • 联系:两个实体集之间,三个或三个以上实体集之间,单个实体集与自身都存在一对一,一对多,多对多的联系
  • 概念模型表示:E-R图

3、机器世界:

  • 字段/数据项:标记实体属性的命名单位,常和属性名相同。
  • 记录:字段的有序集合。
  • 文件:同一类记录的集合。
  • 关键字/键:能唯一标识文件中每条记录的字段/字段集。

对应关系:

现实世界 信息世界 机器世界
事物个体 实体 记录
事物总体 实体集 文件
事物特征 属性 字段
事物之间的联系 概念模型 数据模型

数据模型中的关系模型

  • 关系:一个关系对应一张表。
  • 元组:表中的一行。
  • 属性:表中的一列。
  • 码/键:表中的某个属性组。
  • 域:一组具有相同数据类型的值的集合。
  • 分量:元组中的一个属性。

1.5 数据库系统的内部结构

三级模式
模式/逻辑模式:数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
内模式:存储模式,物理结构和存储方式,数据在数据库内部的组织方式。
外模式:用户模式,用户可见的局部数据的逻辑结构和特征。
二级映像
外模式/模式映像:当模式改变时,由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变。应用程序不必修改,保证了数据与程序的逻辑独立性。
模式/内模式映像:当数据库的存储结构改变时,由数据库管理员对各个模式/内模式作相应改变,可以使模式保持不变,应用程序不必修改,保证了数据与程序的物理独立性。
在这里插入图片描述

2.1关系的形式化定义及有关概念

关系模式与关系数据库
关系模式可形象地表示为R(U,D,DOM,F)
R:关系名
U:所有属性名
D:属性来自哪些域
DOM:属性和域的映射
F:属性间的依赖关系

关系操作:
插入、查询、删除、修改

其中查询操作分为:在这里插入图片描述
选择 找行
投影 选取列
取两列,逗号分隔

关系代数语言:用关系的运算来表达查询。
三要素:运算对象、运算符、运算结果。

3.2 SQL数据定义

一、创建数据库:

CREATE DATABASE lcr;

二、基本表的创建

1)使用数据库lcr

use lcr;

2)创建表

CREATE TABLE `department` (
  `Dno` varchar(3) NOT NULL,
  `Dname` varchar(30) DEFAULT NULL,
  `Office` varchar(4) DEFAULT NULL,
  PRIMARY KEY (`Dno`),
  UNIQUE KEY `Dname` (`Dname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `student` (
  `Sno` varchar(3) NOT NULL DEFAULT '',
  `Sname` varchar(10) NOT NULL,
  `Sex` char(2) DEFAULT NULL,
  `Birth` date DEFAULT NULL,
  `Dno` varchar(3) DEFAULT NULL,
  PRIMARY KEY (`Sno`),
  KEY `student_fk_dno` (`Dno`),
  CONSTRAINT `student_fk_dno` FOREIGN KEY (`Dno`) REFERENCES `department` (`Dno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `course` (
  `Cno` varchar(3) NOT NULL DEFAULT '',
  `Cname` varchar(20) DEFAULT NULL,
  `Cpno` varchar(3) DEFAULT NULL,
  `Credit` int(1) DEFAULT NULL,
  PRIMARY KEY (`Cno`),
  UNIQUE KEY `uq_cname` (`Cname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `lcr`.`sc` (
Sno VARCHAR(3),
Cno VARCHAR(3),
Score INT(3),

CONSTRAINT fk_sno FOREIGN KEY(Sno) REFERENCES Student(Sno),
CONSTRAINT sc_fk_cno FOREIGN KEY(Cno) REFERENCES Course(Cno),
CONSTRAINT ck_score CHECK(Score BETWEEN 0 AND 100),
CONSTRAINT pk_sc PRIMARY KEY(Sno,Cno)
);


CREATE TABLE `teacher` (

  `Tno` varchar(3) NOT NULL DEFAULT '',

  `Tname` varchar(10) NOT NULL,

  `Prof` varchar(10) NOT NULL,

  `Engage` date DEFAULT NULL,

  `Dno` varchar(3) DEFAULT NULL,

  PRIMARY KEY (`Tno`),

  KEY `teacher_fk_dno` (`Dno`),

  CONSTRAINT `teacher_fk_dno` FOREIGN KEY (`Dno`) REFERENCES `department` (`Dno`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `tc` (

Tno VARCHAR(3),

Cno VARCHAR(3),

Classname VARCHAR(10),

Semester VARCHAR(30) DEFAULT NULL,

CONSTRAINT fk_tno FOREIGN KEY(Tno) REFERENCES Teacher(Tno),

CONSTRAINT tc_fk_cno FOREIGN KEY(Cno) REFERENCES Course(Cno),

CONSTRAINT pk_scc PRIMARY KEY(Tno,Cno,Classname)

);

*)利用子查询创建表

1)复制表SC

CREATE TABLE SCnew <
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值