数据库原理概论

 

第一章

1.数据库的四个基本概念

(1)数据(Data): 数据是信息的符号化表示 

(2)数据库(Database/DB) ▫长期存储在计算机内的有组织的、可共享大量 数据的集合。 

(3)数据库管理系统(Database Management System/DBMS):组织、存储、维护和获取数      据库中数据的软件系统,是介于数据库用户和操作系统之间的数据管理软件。(sql            sever,mysql,Oracle;MongoDB)

(4)数据库系统(Database System/DBS): 在计算机系统中引入数据库后的系统,

包括: 1. 数据库、数据库管理系统、各种开发工具 2.数据库应用系统、计算机硬件及其他软件 3. 数据库管理员DBA (Database Administrator)、用户

2.数据管理技术的三个阶段 ▫人工管理阶段 (数据不保存,不共享)文件系统阶段 (长期保存共享性差,不安全)▫数据库系统阶段。

3.数据结构化:不仅能反映数据本身,而且还能反映数据之间的联系

数据独立性(数据与应用程序之间相互依赖程度) :包括逻辑独立性(它改变了也不改变用户程序)和物理独立性(它改变了也不改变应用程序);

4.三级模式:内模式(物理模式)、模式(逻辑模式)、外模式(用户模式);

二级映像:模式/内模式映像(物理独立性);外模式/模式(逻辑模式)

5.模型: 对客观事物进行模拟和抽象的工具 

数据模型:对客观世界中的数据特征进行抽象的工具,包括:

概念模型:按用户的观点来对数据和信息建模,用于数据库设计,包括层次模型、网状模型、关系模型、面向对象模型等。 

逻辑模型:按计算机系统的观点对数据建模,用于DBMS 实现。

 物理模型:在磁盘或磁带上的存储方式和存取方法

6.数据模型三要素:数据结构,数据操作,数据完整性约束(▫ 实体完整性 ▫ 参照完整性 ▫ 用户定义的完整性 )。

7. 码(Key):唯一标识实体的属性集

域(Domain):属性的取值范围

实体型(Entity Type):用实体名和属性名来抽象和描述实体的框架

实体集(Entity Set):同一类型实体的集合

联系(Relationship):一对一,一对多,多对多

 

 

第二章

关系代数:并(∪) ▫ 交(∩) ▫ 差(-) ▫ 笛卡尔积(×) 专门的关系运算 ▫ 选择(σ) ▫ 投影(Π) ▫ 连接( ⋈) ▫ 除(÷)

(并(∪) ▫ 交(∩)笛卡尔积(×) 选择(σ) ▫ 投影(Π)不能被推导出)

例1:查询所有学生的学号、姓名及其选修的课程的课号、 课名与成绩。 

???????.???,?????,??????.???,?????,????? ((??????? ⋈ ??)                       ⋈ ??????))
                                                            ???????.??? = ??.???      ??.??? = ??????.???

例2:查询与刘晨在同一个系的学生的学号与姓名。 

 Π?2.???,?2.?????(??1.?????=′刘晨′⋀?2.?????≠′刘晨′(??????? ⋈Student)

                        ?1.????? = ?2.?????

例3:查询同时选修了1号课程和3号课程的学生的学号。 

Π???, ???(??) ÷ Π???(????=1⋁???=3(??????) )

例4:查询同时选修了所有课程的学生的姓名。 

Π?????(Π???, ???(??) ÷ Π???(??????) ⋈ ???????)

例5:至少选修了刘晨所选全部课程的学生信息。 

(Π???, ??? ?? ÷ Π??? ??????=′刘晨′ ??????? ⋈ ?? ) ⋈ ???????

例6:查询没有被所有学生选修的课程的课名。 

Π?????((Π??? ?????? -Π???, ??? ?? ÷ Π??? ??????? ) ⋈ ??????)

 

第三章SQL

建立Student表

CREATE TABLE Student(
Sno char(9) PRIMARY KEY,

Sname varchar(20) UNIQUE,

Ssex char(2) NOT NULL,

Sage smallint  CHECK(Sage>15 and Sage<30),

Sdept char(20)

);
View Code

 

建立课程表Course

CREATE TABLE Course(

Cno char(10) PRIMARY KEY,

Cname varchar(40),

Cpno char(10),

Ccredit smallint,

FOREIGN KEY(Cpno) REFERENCES Course(Cno)//Cpno为外码,被参照表为Course,被参照列是Cno

);
View Code

 

向Student 表中增加“民族(Snation)”列,6位字符。

ALTER TABLE Student ADD Snation varchar(6);
View Code

 

 

将 Snation 列的数据类型改为 varchar,8位字符。

ALTER TABLE Student ALTER COLUMN Snation varchar(8);
View Code

 

删除 Snation 列。

ALTER TABLE Student DROP COLUMN Snation 
View Code

 

删除Student 表

DROP TABLE Student; 
View Code

 

注意:若基本表被其他基本表中的外键约束所引用,则在此外键约束被删 除之前,基本表无法被删除。

 查询全体学生的学号、姓名和出生年份并使用别名。 

SELECT Sno, Sname, 2016-Sage AS Syear
FROM Student
View Code

 

查询所有系名

SELECT DISTINCT Sdept FROM Student
View Code

 

 字符串匹配通配符

▫ %(百分号):表示零个、一个或多个任意字符。

▫ _(下划线):表示任意单个字符。

▫ [](方括号):表示指定范围([a-f])或集合([abcdef])中的 任意单个字符。 ▫

[^]:表示不属于集合([abcdef])中的任意 单个字符。

▫ [\]:转义字符,用于去掉一些特殊字符的特定含义,使其被作为普通字符看待,如用“\%”表示字符%,用“\_”表示字符_。 

 查询所有姓名最后一个字为“晨”字的学生的信息。

SELECT * FROM Student WHERE Sname LIKE%晨’;
View Code

 

查询所有姓名最后一个字为“晨”字,且姓名为两个字的学生的信息。

SELECT * FROM Student WHERE Sname LIKE ‘_晨’; 
View Code

 

 

查询所有叫“张小民”或“张大民”的学生的信息。

SELECT * FROM Student WHERE Sname LIKE ‘张[小大]民’;
View Code

 

 查询学号从95001 至95005 及95007 与95009的学生的信息

SELECT * 
FROM Student
WHERE Sno LIKE9500[1-579]’;
View Code

 

注意 <> 为不等于,升序:ASC;降序:DESC

查询全体学生信息,查询结果按所在系的系升序排列,同 一系中的学生按年龄降序排列。 

SELECT * FROM Student ORDER BY Sdept ASC, Sage DESC
View Code

聚集函数 计数 ▫COUNT()  求和 ▫ SUM()  求平均值 ▫ AVG()  求最大最小值 ▫ MAX() ▫ MIN() 

查询选修了课程的学生的人数

SELECT COUNT(DISTINCT Sno) 
FROM SC
View Code

查询选修了3 门以上课程的学生的学号。 

SELECT Sno
FROM SC
GROUP BY Sno 
HAVING COUNT(*) >= 3 
View Code

 WHERE: ▫用于在基本表或视图中选择满足条件的元组。

HAVING: ▫用于在 GROUP BY 子句分的组中选择满足条件的 组。 

 

转载于:https://www.cnblogs.com/wangjiaxiaoxi/p/5592530.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值