一、基本概念
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