Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_44340130
Python-100-Days
提交
4d9f2703
P
Python-100-Days
项目概览
weixin_44340130
/
Python-100-Days
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Python-100-Days
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4d9f2703
编写于
12月 27, 2018
作者:
骆昊的技术专栏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改了数据库部分的代码和文档
上级
535bb16e
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
86 addition
and
14 deletion
+86
-14
Day36-40/code/Exercise_Origin.sql
Day36-40/code/Exercise_Origin.sql
+53
-0
Day36-40/code/SRS_create_and_init.sql
Day36-40/code/SRS_create_and_init.sql
+11
-1
Day36-40/关系型数据库MySQL.md
Day36-40/关系型数据库MySQL.md
+22
-13
未找到文件。
Day36-40/code/Exercise_Origin.sql
0 → 100644
浏览文件 @
4d9f2703
use
SRS
;
-- 查询所有学生信息
-- 查询所有课程名称及学分(投影和别名)
-- 查询所有女学生的姓名和出生日期(筛选)
-- 查询所有80后学生的姓名、性别和出生日期(筛选)
-- 查询姓”杨“的学生姓名和性别(模糊)
-- 查询姓”杨“名字两个字的学生姓名和性别(模糊)
-- 查询姓”杨“名字三个字的学生姓名和性别(模糊)
-- 查询名字中有”不“字或“嫣”字的学生的姓名(模糊)
-- 查询没有录入家庭住址的学生姓名(空值)
-- 查询录入了家庭住址的学生姓名(空值)
-- 查询学生选课的所有日期(去重)
-- 查询学生的家庭住址(去重)
-- 查询男学生的姓名和生日按年龄从大到小排列(排序)
-- 查询年龄最大的学生的出生日期(聚合函数)
-- 查询年龄最小的学生的出生日期(聚合函数)
-- 查询男女学生的人数(分组和聚合函数)
-- 查询课程编号为1111的课程的平均成绩(筛选和聚合函数)
-- 查询学号为1001的学生所有课程的平均分(筛选和聚合函数)
-- 查询每个学生的学号和平均成绩(分组和聚合函数)
-- 查询平均成绩大于等于90分的学生的学号和平均成绩
-- 查询年龄最大的学生的姓名(子查询)
-- 查询年龄最大的学生姓名和年龄(子查询+运算)
-- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
-- 查询学生姓名、课程名称以及成绩(连接查询)
-- 查询选课学生的姓名和平均成绩(子查询和连接查询)
-- 查询每个学生的姓名和选课数量(左外连接和子查询)
Day36-40/code/SRS_create_and_init.sql
浏览文件 @
4d9f2703
-- 关系型数据库可以保证数据的完整性
-- 实体完整性:每条记录都是独一无二的没有冗余 - 主键/唯一索引
-- 参照完整性(引用完整性):外键
-- 域完整性:数据类型、非空约束、默认值约束、检查约束
-- 创建SRS数据库
-- 创建SRS数据库
drop
database
if
exists
SRS
;
drop
database
if
exists
SRS
;
create
database
SRS
default
charset
utf8
collate
utf8_bin
;
create
database
SRS
default
charset
utf8
collate
utf8_bin
;
...
@@ -30,6 +36,10 @@ collid int not null comment '所属学院编号',
...
@@ -30,6 +36,10 @@ collid int not null comment '所属学院编号',
primary
key
(
stuid
)
primary
key
(
stuid
)
);
);
-- 检查约束(MySQL不支持它)
alter
table
tb_student
add
constraint
ck_student_birth
check
(
birth
between
'1990-1-1'
and
'1999-12-31'
);
-- 添加外键约束
-- 添加外键约束
alter
table
tb_student
add
constraint
fk_student_collid
foreign
key
(
collid
)
references
tb_college
(
collid
);
alter
table
tb_student
add
constraint
fk_student_collid
foreign
key
(
collid
)
references
tb_college
(
collid
);
...
@@ -134,7 +144,7 @@ insert into tb_score (sid, cid, seldate, mark) values
...
@@ -134,7 +144,7 @@ insert into tb_score (sid, cid, seldate, mark) values
(
1378
,
1111
,
'2017-09-05'
,
82
),
(
1378
,
1111
,
'2017-09-05'
,
82
),
(
1378
,
7777
,
'2017-09-02'
,
65
.
5
),
(
1378
,
7777
,
'2017-09-02'
,
65
.
5
),
(
2035
,
7777
,
'2018-09-03'
,
88
),
(
2035
,
7777
,
'2018-09-03'
,
88
),
(
2035
,
9999
,
date
(
now
()
),
null
),
(
2035
,
9999
,
curdate
(
),
null
),
(
3755
,
1111
,
date
(
now
()),
null
),
(
3755
,
1111
,
date
(
now
()),
null
),
(
3755
,
8888
,
date
(
now
()),
null
),
(
3755
,
8888
,
date
(
now
()),
null
),
(
3755
,
9999
,
'2017-09-01'
,
92
);
(
3755
,
9999
,
'2017-09-01'
,
92
);
...
...
Day36-40/关系型数据库MySQL.md
浏览文件 @
4d9f2703
## 关系
型数据
入门
## 关系
数据库
入门
### 关系型数据概述
### 关系数据库概述
1.
数据持久化 - 将数据保存到(在掉电情况下)能够长久保存数据的存储介质中。
2.
数据库发展史 - 网状数据库、层次数据库、关系数据库。
> 1970年,IBM的研究员E.F.Codd在*Communication of the ACM*上发表了名为*A Relational Model of Data for Large Shared Data Banks*的论文,提出了关系模型的概念,奠定了关系模型的理论基础。后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。
3.
关系数据库特点。
1.
数据持久化。
2.
数据库发展史。
3.
关系型数据库特点。
-
理论基础:集合论和关系代数。
-
理论基础:集合论和关系代数。
-
具体表象:用二维表(有行和列)组织数据。
-
具体表象:用二维表(有行和列)组织数据。
-
编程语言:结构化查询语言(SQL)。
-
编程语言:结构化查询语言(SQL)。
4.
E-R图。
4.
E-R图。
-
实体 - 矩形框
-
实体 - 矩形框
-
属性 - 椭圆框
-
属性 - 椭圆框
-
关系 - 菱形框
-
关系 - 菱形框
-
重数 - 1:1 / 1:N / M:N
-
重数 - 1:1 / 1:N / M:N
5.
关系型数据库产品。
-
[
Oracle
](
https://www.oracle.com/index.html
)
5.
关系数据库产品。
-
[
DB2
](
https://www.ibm.com/analytics/us/en/db2/
)
-
[
Oracle
](
https://www.oracle.com/index.html
)
- 目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库,它实现了分布式处理的功能。在Oracle最新的12c版本中,还引入了多承租方架构,使用该架构可轻松部署和管理数据库云。
-
[
SQL Server
](
https://www.microsoft.com/en-us/sql-server/
)
-
[
DB2
](
https://www.ibm.com/analytics/us/en/db2/
)
- IBM公司开发的、主要运行于Unix(包括IBM自家的
[
AIX
](
https://zh.wikipedia.org/wiki/AIX
)
)、Linux、以及Windows服务器版等系统的关系数据库产品。DB2历史悠久且被认为是最早使用SQL的数据库产品,它拥有较为强大的商业智能功能。
-
[
MySQL
](
https://www.mysql.com/
)
-
[
SQL Server
](
https://www.microsoft.com/en-us/sql-server/
)
- 由Microsoft开发和推广的关系型数据库产品,最初适用于中小企业的数据管理,但是近年来它的应用范围有所扩展,部分大企业甚至是跨国公司也开始基于它来构建自己的数据管理系统。
-
[
SQLite
](
https://www.sqlite.org/index.html
)
-
[
MySQL
](
https://www.mysql.com/
)
- MySQL是开放源代码的,任何人都可以在GPL(General Public License)的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。
-
[
PostgreSQL
](
)
- 在BSD许可证下发行的开发源代码的关系数据库产品。
### MySQL简介
### MySQL简介
...
@@ -341,5 +350,5 @@
...
@@ -341,5 +350,5 @@
### Python数据库编程
### Python数据库编程
1.
MySQLdb
#### 使用三方库PyMySQL
2.
PyMySQL
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录