一、基本概念
1. 数据库基本概念:是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合
2. 数据库系统组成:数据库、数据库管理系统、数据库管理员、用户和应用程序组成
3. 概念模型:实体-联系模型、面向对象的数据模型、二元数据模型、语义数据模型、函数数据模型
3种联系: 一对一 、 一对多 、 多对多
4. 关系模型:指用二维表的形式表示实体和实体间联系的数据模型
5. 数据库文件组成:主要数据文件、次要数据文件、事务日志 _
6. 创建数据库的命令:_create database__
7. 创建表的命令__ create table
删除表的命令 drop table
修改表的命令_ altertable
8. 表的作用_ 存储数据的实体___
9插入数据的命令__insert 修改数据的命令_updata_删除数据 delete
10.查询语句SELECT的6个组成部分 select、from、where、group、having、orderby。
11.T-SQL语言中局部变量以一个符号 @ 开始,全局变量以符号______ @@ 开始。
12.使用 declare 定义变量,使用 Go 为批处理结束的标志。
13.视图的基本概念__是从一个或多个表导出的虚拟的表,其内容由查询定义
14创建视图的命令_ create view
修改视图的命令___ alter view
删除视图的命令 drop view
15.用户自定义函数分为 标量值函数 、内联表值函数 、多语句表值函数
16创建存储过程的命令 create procedure/create proc
修改存储过程的命令 alter procedure
删除存储过程 drop procedure
17.调用存储过程的命令execute/exec存储过程的名称
18创建用户自定义函数的命令 create function
修改用户自定义函数的命令 alter function
删除用户自定义函数 drop function
20.SQLServer 的身份验证有 Windows身份验证 、混合身份验证_
二、编程
学生成绩数据库的逻辑名称是StudentScore。各表结构如下:
(1)系别表,该表名称为Department,结构如表4.1所示。
表4.1 系别表Department结构
字段名称 | 字段内容 | 数据类型 | 长 度 | 说 明 |
Departid | 系编号 | 整数 | 1 | 不可为空且各系的系编号不相同,自动生成序号,初始值是1,步长是1 |
Departname | 系名称 | 文本(汉字,变长) | 20 | 不可为空,系名称也不相同 |
(2) 班级表,该表名称为Class,结构如表4.2所示。
表4.2 班级表Class结构
字段名称 | 字段内容 | 数据类型 | 长 度 | 说 明 |
Classid | 班级编号 | 文本(数字,定长) | 10 | 不可为空且各班级的班级编号不相同 |
Classname | 班级名称 | 文本(汉字,变长) | 20 | 不可为空,班级名称也不相同 |
Specialty | 专业 | 文本(汉字,变长) | 20 | 可为空 |
Departid | 系编号 | 整数 | 1 | 不可为空,各系编号必须是系别表中已出现过的系编号 |
(3)学生表,该表名称为Student,结构如表4.3所示。
表4.3 学生表Student结构
字段名称 | 字段内容 | 数据类型 | 长 度 | 说 明 | |
Studentid | 学生编号 | 文本(数字,定长) | 13 | 不可为空且各学生的学生编号不相同 | |
Studentname | 姓名 | 文本(汉字,变长) | 20 | 不可为空 | |
Classid | 班级编号 | 文本(数字,定长) | 10 | 可为空,各学生的班级编号必须是班级表中已出现过的班级编号 | |
Birthday | 生日 | 日期 |
| 可为空,如有值则确保学生年龄大于等于15岁 | |
Sex | 性别 | 文本(汉字,定长) | 1 | 不可为空,默认值是“男”,取值是“男”或“女” | |
Address | 住址 | 文本(汉字,变长) | 40 | 可为空 | |
Postalcode | 邮编 | 文本(数字,定长) | 6 | 可为空 | |
Tel | 电话 | 文本(数字,变长) | 15 | 可为空 | |
Enrolldate | 入学日期 | 日期 |
| 可为空 | |
Graduatedate | 毕业日期 | 日期 |
| 可为空 | |
State | 当前状态 | 文本(汉字,变长) | 10 | 可为空 | |
Memo | 备注 | 文本(汉字,变长) | 200 | 可为空 |
(4) 课程表,该表名称为Course,结构如表4.4所示。
表4.4 课程表Course结构
字段名称 | 字段内容 | 数据类型 | 长度 | 说 明 |
Courseid | 课程编号 | 文本(数字,定长) | 8 | 不可为空且各课程的课程编号不相同 |
Coursename | 课程名称 | 文本(汉字,变长) | 30 | 不可为空 |
Type | 课程类别 | 文本(汉字,变长) | 10 | 可为空 |
Mark | 学分 | 整数 | 1 | 可为空 |
(5) 成绩表,该表名称为Score,结构如表4.5所示。
表4.5 成绩表Score结构
字段名称 | 字段内容 | 数据类型 | 长 度 | 说 明 |
Studentid | 学生编号 | 文本(数字,定长) | 13 | 不可为空,各学生编号必须是学生表中已出现过的学生编号 |
Courseid | 课程编号 | 文本(数字,定长) | 8 | 不可为空,各课程编号必须是课程表中已出现过的课程编号 |
Score | 成绩 | 自定义数据类型scoretype(整数) |
| 可为空 |
1. 查询所有课程的信息。
SELECT*FROM Course
Go
2. 查询班级编号是10701的学生编号、姓名和出生日期。
SELECTStudentid,Studentname,BirthdayFROM Student WHERE Classid='10701'
go
3. 查询所有姓“李”学生的姓名和班级编号。
SELECTStude ntname,ClassidFROMStudent WHERE Studentname LIKE '李%'
go
4. 统计课程的总数目。
SELECTCOUNT(Courseid)FROM Course
go
5.查询课程号‘101001’的课程最高分,最低分,平均分。
SELECTMAX(Courseid),MIN(Courseid),AVG(Courseid)FROM Course WHERE Courseid='101001'
Go
6.查询所有学生的姓名、学号和班级编号,班级名称。(使用连接查询或者子查询都可以)
SELECTStudent.Studentname,Student.Studentid,Student.Classid,Class.ClassnameFROM Student,Class
WHERE Student.Classid=Class.Classid
Go
7. 添加一个新的班级记录,班级编号是20804,班级名称是机电200804,专业待定,系编号是2。
insert into Class(Classid,Classname,Specialty,Departid)
values('20804','机电','待定','2')
go
8. 删除以上新增班级记录。
deletefromClass where Classid='20804'
go
9创建一个带输入参数的存储过程CScore,实现查询指定课程号的学生成绩。
存储过程名为CScore,输入参数:@Coursetid 类型:char(10)。
createprocedureCScore
@Coursetidchar(10)
AS
begin
select*from Score where Courseid=@Coursetid
end
10写出调用以上存储过程CScore的语句,输入参数取值'01001'。
exec CScore01001
11删除存储过程。
drop procedureCScore