Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Python-100-Days
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
huangkq
Python-100-Days
Commits
4d9f2703
Commit
4d9f2703
authored
Dec 26, 2018
by
jackfrued
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改了数据库部分的代码和文档
parent
535bb16e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
86 additions
and
14 deletions
+86
-14
Exercise_Origin.sql
Day36-40/code/Exercise_Origin.sql
+53
-0
SRS_create_and_init.sql
Day36-40/code/SRS_create_and_init.sql
+11
-1
关系型数据库MySQL.md
Day36-40/关系型数据库MySQL.md
+22
-13
No files found.
Day36-40/code/Exercise_Origin.sql
0 → 100644
View file @
4d9f2703
use
SRS
;
-- 查询所有学生信息
-- 查询所有课程名称及学分(投影和别名)
-- 查询所有女学生的姓名和出生日期(筛选)
-- 查询所有80后学生的姓名、性别和出生日期(筛选)
-- 查询姓”杨“的学生姓名和性别(模糊)
-- 查询姓”杨“名字两个字的学生姓名和性别(模糊)
-- 查询姓”杨“名字三个字的学生姓名和性别(模糊)
-- 查询名字中有”不“字或“嫣”字的学生的姓名(模糊)
-- 查询没有录入家庭住址的学生姓名(空值)
-- 查询录入了家庭住址的学生姓名(空值)
-- 查询学生选课的所有日期(去重)
-- 查询学生的家庭住址(去重)
-- 查询男学生的姓名和生日按年龄从大到小排列(排序)
-- 查询年龄最大的学生的出生日期(聚合函数)
-- 查询年龄最小的学生的出生日期(聚合函数)
-- 查询男女学生的人数(分组和聚合函数)
-- 查询课程编号为1111的课程的平均成绩(筛选和聚合函数)
-- 查询学号为1001的学生所有课程的平均分(筛选和聚合函数)
-- 查询每个学生的学号和平均成绩(分组和聚合函数)
-- 查询平均成绩大于等于90分的学生的学号和平均成绩
-- 查询年龄最大的学生的姓名(子查询)
-- 查询年龄最大的学生姓名和年龄(子查询+运算)
-- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
-- 查询学生姓名、课程名称以及成绩(连接查询)
-- 查询选课学生的姓名和平均成绩(子查询和连接查询)
-- 查询每个学生的姓名和选课数量(左外连接和子查询)
Day36-40/code/SRS_create_and_init.sql
View file @
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
View file @
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment