数据库原理及应用学习与实践指导 SQL Server 2012
SELECT * FROM student
3)字段函数(列函数)运用:
从教务管理数据库teachingSystem中学生选课表student_teacher_course中查询出成绩的最高分、最低价、平均分和总分。
USE teachingSystem GO
SELECT MAX(score) AS 最高分,MIN(score) AS 最低分,AVG(score) AS 平均分,SUM(score) AS
总分
FROM student_teacher_course GO
查询学生选课表中最低分的学生编号和课程编号(提示用子查询结构)。 USE teachingSystem GO
SELECT stu_id AS 学生编号,course_id AS 课程编号 FROM student_teacher_course
WHERE score=(SELECT MIN(score) FROM student_teacher_course) GO
查询结果如图11-68所示:
图11-68 投影所有列查询结果
4)FROM子句连接查询
从教务管理数据库teachingSystem的教师表teacher中查询出教师的编号、姓名和系部名称。
USE teachingSystem GO
SELECT teacher_id,teacher_name,dept_name FROM teacher ,department
WHERE teacher.dept_id=department.dept_id 或采用表的别名: USE teachingSystem GO
SELECT teacher_id,teacher_name,dept_name FROM teacher X ,department Y WHERE Y.dept_id==Y.dept_id
查询结果如图11-69所示:
第11章 数据库应用实验指导
图11-69 FROM子句连接查询查询结果
5)比较、逻辑判断、模糊匹配查询
查找学生表中年龄不满20岁,专业名称带有“机械”两个字的学生信息。
USE teachingSystem GO
SELECT * FROM student
WHERE not(year(getdate())-year(birthday)+1>20) and major LIKE '%机械%' GO
6)分组查询
查找学生表中每个系部的平均总分大于550的系部编号、平均总分。
USE teachingSystem GO
SELECT dept_id, AVG(totalscore) as ?平均总分? FROM student GROUP BY dept_id
HAVING AVG(totalscore)>550 GO
11.4实验四 索引及视图操作 11.4.1实验目的 (1)了解SQL Server 2012中索引的定义、类型及其作用; (2)掌握创建索引、编辑索引以及删除索引的方法 (3)熟悉视图常用操作、视图创建,修改,删除操作。 (4)熟悉使用视图访问数据。 11.4.2 实验内容及步骤 1.索引操作
本章在学习SQL Server 2012索引的基础知识之后,主要练习对索引的使用,如创建索引、编辑索引以及删除索引等。
(1) 在SQL Server 2012中teachingSystem数据库中Student表,选择stu_id来创建一个惟一聚集索引,如图11-70所示。
实验操作步骤 :
使用图形界面进行操作:单击相应表左边的“+”号,右击“索引”节点,选择“新建索引”命令,如图11-71所示。
数据库原理及应用学习与实践指导 SQL Server 2012
图11-70 新建索引 图11-71 新建索引对话框设置信息 图11-72 选择要建立索引的字段
在弹出的“新建索引”对话框中设置要创建索引的名称、类型,添加索引键列。如图11-72所示.
使用T-SQL语句建立索引:在新建查询窗口中输入下列语句,并单击“执行”按钮。
USE teachingSystem GO
CREATE UNIQUE CLUSTERED INDEX student_index1 ON student(stu_id ASC) GO
(2) 使用SQL Server Management Studio 查询窗口在student表中新建一个惟一非簇索引,命名为student_index2,使用字段stu_id。
实验操作步骤:
在查询窗口输入下列SQL语句:
USE teachingSystem GO
CREATE UNIQUE NONCLUSTERED INDEX student_index2 ON student (stu_id ASC)
(3)通过新建学院College表添加主键约束来使SQL Server 2012自动为该表生成一个惟一性的簇索引。
操作步骤:
在SQL Server Management Studio 查询窗口中键入以下语句:
use teachingSystem create table College (
col_ID smallint primary key, col_name char(8), ) GO
(4)使用SQL Server Management Studio向导删除Reader表中的student_index2索引. 操作步骤:
1)启动SQL Server Management Studio查询窗口。 2)在查询窗口中键入以下SQL语句:
use teachingSystem
DROP INDEX student.student_index2 GO
2.视图操作
在熟悉了本章SQL Server 2012中关系和视图的基础知识之后,主要练习建立、修改和删除视图以及视图的应用等。
(1)使用SSMS创建视图。以创建学生表的视图为例。
在“对象资源管理器”中,右键单击teachingSystem数据库的“视图”节点或该节点中的任何视图,从快捷菜单中选择“新建视图”,如图11-73所示。
第11章 数据库应用实验指导
图11-73 打开新建视图 图11-74 添加表
在弹出“添加表”对话框中选择所需的表student或视图等,再单击“添加”;如图11-74所示。
在“视图设计器”中选择要投影的列,选择条件等,如图11-75所示。
图11-75 视图设计器选择投影列及条件
执行该SQL语句,运行正确后保存该视图View_student1。 (2)使用T-SQL语句创建上述视图。
CREATE VIEW View_student2 AS SELECT * FROM dbo.student
WHERE (dept_id = ?1001?)
(3)定义视图View_student3,课程成绩大于85分的学生学号,姓名,性别,出生日期
CREATE VIEW View_student3 AS
SELECT student.stu_id,student.name,student.sex,student.birthday FROM student INNER JOIN
student_teacher_course ON student.stu_id = student_teacher_course.stu_id WHERE (student_teacher_course.score > 85) 或者
CREATE VIEW View_student3 AS
SELECT student.stu_id, student.name, student.sex,student.birthday FROM student,student_teacher_course
WHERE student.stu_id = student_teacher_course.stu_id AND (dbo.student_teacher_course.score> 85)
(4) 创建一个新视图从原来视图View_student3中查询1990年以后出生的学生信息。
数据库原理及应用学习与实践指导 SQL Server 2012
CREATE VIEW View_student4 AS
SELECT *
FROM View_student3
WHERE (YEAR(birthday) >= 1990)
(5)通过视图对基本表进行插入、修改、删除行的操作,有一定的限制条件.在视图View_student1中插入一条新的记录,其各字段的值分别为'1220', N'1001', '陈静', '女', '1993-1-1' ,'上海', NULL, '汉族', '1 ', '电子信息', '1001', '计算机'。
USE teachingSystem GO
INSERT INTO View_student1
(stu_id, dept_id, name,sex, birthday, address, totalscore, nationality, grade, school, class, major)
VALUES ('1220', N'1001', '陈静', '女', '1993-1-1' ,'上海', NULL, '汉族', '1 ', '电子信息', '1001', '计算机') GO
修改记录:将视图View_student1中的学生姓名为“张思文”的出生日期改为’1988-4-27’。
USE teachingSystem
GO
UPDATE View_student1 SET birthday =? 1988-4-27? WHERE name=? 张思文? GO
(7)删除视图View_BOOKS
使用T-SQL语句
DROP VIEW View_student1 GO
实验小结
使用CREATE VIEW语句建立视图,使用ALTER VIEW语句修改视图,使用DROP VIEW语句删除视图。如果在一个视图中存在一个计算列,则不允许使用INSERT语句,除非在基本表或视图中没有缺省值的非空列都被包含在添加新记录行的视图中,才允许使用INSERT语句。
11.5实验五 T-SQL程序结构 11.5.1实验目的 (1)掌握T-SQL程序结构:会用注释和变量、运算符及表达式、函数,熟悉程序结构的流程控制。
(2)掌握系统内置函数的概念及其应用;
(3)通过定义和使用用户自定义函数,掌握自定义函数的概念及其应用。 11.5.2 实验内容与步骤 1. 变量、常用的标准函数与流程控制语句的使用
常用标准函数主要介绍:数学函数、字符串函数、日期/时间函数。 T-SQL的几个常用语句如下:
IF…ELSE、语句。
WHILE、BREAK和CONTINUE语句。 RETURN语句。
(1)变量的使用
① 对于teachingSystem 给出的student数据库表结构,定义一个名为female 的变量,并在SELECT 语句中使用它查找女学生的编号和姓名。
USE teachingSystem GO
DECLARE @female char(2) SET @female = '女' SELECT stu_id, name FROM student