第一篇:SQL专题(SQL数据查询与SQL数据库表的管理)教案
课程名称:SQL专题
教案
《SQL数据查询与SQL数据库表的管理》教案
一、授课思路 [90分钟]...............................................................................................................................2 1.任务、目标部分[5分钟]...................................................................................................................2 2.重难点分析讲解 [85分钟]...............................................................................................................2
2.1.T-SQL语句实现简单查询、条件查询与排序操作—范例演示[10分钟].................2 2.2.T-SQL语句实现连接查询与子查询—范例演示[10分钟].........................................3 2.3.T-SQL语句实现统计查询与创建查询结果集—范例演示[15分钟].........................3 2.4.T-SQL语句实现创建修改删除表与表中操纵数据语句—范例演示[10分钟].........4 2.5.学生课堂项目案例操作[40分钟]................................................................................4 2.6.总结[5分钟]..................................................................................................................41、2、-课程名称:SQL专题
教案
SELECT * FROM SCORE WHERE DEGREE IN(85,86,88)--
6、查询STUDENT表中“95031”班或性别为“女”的同学记录。SELECT * FROM STUDENT WHERE CLASS='95031'OR SSEX='女'--
7、以CLASS降序查询STUDENT表的所有记录。SELECT * FROM STUDENT ORDER BY CLASS DESC--
8、以CNO升序、DEGREE降序查询SCORE表的所有记录。SELECT * FROM SCORE ORDER BY CNO ASC,DEGREE DESC--或
SELECT * FROM SCORE ORDER BY CNO,DEGREE DESC 讲解要点:总结语法格式说明和语句书写的注意事项。2.2.T-SQL语句实现连接查询与子查询—范例演示[10分钟] 范例演示:实现对考试系统数据库中数据的查询操作。
--
1、查询SCORE表中的最高分的学生学号和课程号。
SELECT SNO AS '学号',CNO AS '课程号', DEGREE AS '最高分' FROM SCORE WHERE DEGREE=(SELECT MAX(DEGREE)FROM SCORE)--
2、查询所有学生的SNAME、CNO和DEGREE列。
SELECT STUDENT.SNAME,SCORE.CNO,SCORE.DEGREE FROM STUDENT,SCORE WHERE STUDENT.SNO=SCORE.SNO--
3、查询所有学生的SNO、CNAME和DEGREE列。
SELECT T1.SNO,T2.CNAME,T1.DEGREE FROM SCORE T1,COURSE T2 WHERE T1.CNO=T2.CNO--
4、查询所有学生的SNAME、CNAME和DEGREE列。
SELECT T1.SNAME,T2.CNAME,T3.DEGREE FROM STUDENT T1,COURSE T2,SCORE T3 WHERE T1.SNO=T3.SNO AND T3.CNO=T2.CNO--
5、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT T1.CNO,T1.SNO,T1.DEGREE FROM SCORE T1,SCORE T2 WHERE T1.DEGREE>T2.DEGREE AND T2.SNO='109'AND T2.CNO='3-105'--或
SELECT CNO,SNO,DEGREE FROM SCORE WHERE DEGREE>(SELECT DEGREE FROM SCORE WHERE SNO='109' AND CNO='3-105') 讲解要点:总结语法格式说明和语句书写的注意事项。2.3.T-SQL语句实现统计查询与创建查询结果集—范例演示[15分钟] 范例演示:实现对考试系统数据库中数据的查询操作。
--
1、查询“95031”班的学生人数。
SELECT COUNT(*)AS '学生人数' FROM STUDENT WHERE CLASS='95031'--
2、查询‘3-105’号课程的平均分。
SELECT AVG(DEGREE)AS '课程平均分' FROM SCORE WHERE CNO='3-105'--
3、查询SCORE表中至少有5名学生选修的并以3开头的课程的平均分数。
SELECT CNO,AVG(DEGREE)FROM SCORE WHERE CNO LIKE '3%' GROUP BY CNO课程名称:SQL专题
教案
HAVING COUNT(*)>5--
4、查询最低分大于70,最高分小于90的SNO列。
SELECT SNO FROM SCORE GROUP BY SNO HAVING MIN(DEGREE)>70 AND MAX(DEGREE)<90--
5、查询“95033”班所选课程的平均分。
SELECT T2.CNO,AVG(T2.DEGREE)AS '平均分' FROM STUDENT T1,SCORE T2 WHERE T1.SNO=T2.SNO AND T1.CLASS='95033' GROUP BY T2.CNO 讲解要点:总结语法格式说明和语句书写的注意事项。2.4.T-SQL语句实现创建修改删除表与表中操纵数据语句—范例演示[10分钟] 范例演示:实现对考试系统数据库中数据的查询操作。
--
1、假设使用如下命令建立了一个GRADE表: /* CREATE TABLE GRADE(LOW NUMERIC(3,0), UPP NUMERIC(3), RANK CHAR(1))GO INSERT INTO GRADE VALUE(90,100,'A')INSERT INTO GRADE VALUE(80,89,'B')INSERT INTO GRADE VALUE(70,79,'C')INSERT INTO GRADE VALUE(60,69,'D')INSERT INTO GRADE VALUE(0,59,'E')现查询所有同学的SNO、CNO和RANK列。*/ SELECT SNO,CNO,RANK FROM SCORE,GRADE WHERE DEGREE BETWEEN LOW AND UPP ORDER BY RANK--
2、将学号SNO为105的学生性别SSEX改为’女’
UPDATE STUDENT SET SSEX=’女’ WHERE SNO=105;--
3、删除王芳同学的所有考试成绩
DELETE FROM SCORE WHERE SNO IN(SELECT SNO FROM STUDENT WHERE SNAME=’ 王芳’) 讲解要点:总结语法格式说明和语句书写的注意事项。2.5.学生课堂项目案例操作[40分钟] 2.6.总结[5分钟] 根据学生提交的重难点进行总结。
-课程名称:SQL专题
教案
USE STUDENT GO
SELECT * FROM COMPUTER WHERE NET BETWEEN 70 AND 79
--
6、输出所有姓“陈”和姓“李”的男生 USE STUDENT GO
SELECT * FROM COMPUTER WHERE SEX='男' AND LEFT(Name,1)IN('李', '陈')--或者
USE STUDENT GO
SELECT * from COMPUTER WHERE SEX='男' AND(NAME LIKE '李%' OR NAME LIKE '陈%')
--
7、输出所有学号为偶数的同学成绩 USE STUDENT GO
SELECT NUMBER AS '学号',SQL2000 AS 'SQL数据库',FLASH AS '网络动画',NET AS '计算机网络' FROM COMPUTER WHERE NUMBER%2=0
--
8、输出Flash成绩最好的5位同学 USE STUDENT GO
SELECT TOP 5 * FROM COMPUTER ORDER BY FLASH DESC
--
9、更新同学的成绩,把计算机网络成绩在55-59之间的同学该科的成绩调整为60分 USE STUDENT GO
UPDATE COMPUTER SET NET=60 WHERE NET BETWEEN 55 AND 59
--
10、删除平均分最低的3位同学
USE STUDENT GO
DELETE FROM COMPUTER WHERE NUMBER IN(SELECT TOP 3 NUMBER FROM COMPUTER ORDER BY(SQL2000+FLASH+NET)/3)
--
11、统计成绩表中平均分为90以上(含90分)人数 USE STUDENT GO
SELECT COUNT(*)AS '平均分为90以上人数' FROM COMPUTER WHERE(SQL2000+FLASH+NET)/3>=90
--
12、用SQL命令向成绩表添加一个新字段——C语言 USE STUDENT GO课程名称:SQL专题
教案
ALTER TABLE COMPUTER ADD C语言 FLOAT NULL
SP_HELP COMPUTER /* SQL练习题三 问题描述: 已知关系模式:
STUDENT(SNo,SName)学生表。SNo 为学号,SName 为姓名
COURSE(CNo,CName,CTeacher)课程表。CNo 为课程号,CName 为课程名,CTeacher 为任课教师
SCORE(SNo,CNo,Score)成绩表。Score 为成绩
要求实现如下5个处理:
1.找出没有选修过“李明”老师讲授课程的所有学生姓名
2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩 3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名 4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩 */--1.找出没有选修过“李明”老师讲授课程的所有学生姓名 SELECT SName FROM STUDENT WHERE NOT EXISTS(SELECT * FROM SCORE,COURSE sc,c WHERE SCORE.CNo=COURSE.CNo AND COURSE.CTeacher='李明' AND SCORE.SNo=STUDENT.SNo)
--2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
SELECT STUDENT.SNo,STUDENT.SName,AVG_SCORE=AVG(SCORE.Score)
FROM STUDENT,SCORE,(SELECT SNo FROM SCORE WHERE Score<60 GROUP BY SNo HAVING COUNT(DISTINCT CNo)>=2)A WHERE STUDENT.SNo=A.SNo AND SCORE.SNo=A.SNo GROUP BY SCORE.SNo,SCORE.SName
--3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名 SELECT STUDENT.SNo,STUDENT.SName FROM STUDENT,(SELECT SCORE.SNo FROM SCORE,COURSE
WHERE SCORE.CNo=COURSE.CNo AND COURSE.CName IN('1','2')
-课程名称:SQL专题
WHERE USER.uid = Chaxun_max.uid教案
第二篇:SQL语言数据查询操作
实验三 SQL语言——数据查询操作
一、实验时间
二、实验地点:317室
三、实验条件与环境
1. 通用PC机
2. PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台
3. PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)
4. 最好有一台公用的SQL Server 2000 服务器
四、实验目的1. 通过上机实验进一步加深对SQL查询语句的基本语法格式的掌握
2. 通过上机实验掌握单表查询的实现过程
3. 通过上机实验掌握多表关联查询的实现过程
4. 通过上机实验掌握嵌套查询的实现过程
5. 通过上机实验掌握集函数与谓词在Select语句中的使用
6. 通过上机实验加深了解Select语句与关系代数运算(如选择、投影、连接、除法等)两者之间的联系与区别
五、实验要求:
1. 本实验所有实验内容要求在规定时间(2课时)内完成2. 实验内容中涉及到的各查询操作均通过SQL语言来实现
3.实验完成后需要书写实验报告
六、实验内容:
1.查询为工程J1供应零件的供应商号码SNO
2.查询为工程J1供应零件P1的供应商号码SNO
3.查询为工程J1供应红色零件的供应商号码SNO
4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO
5.查询至少选用了供应商S1所供应的全部零件的工程号JNO
6.找出所有供应商的名称和所在城市
7.找出所有零件的名称、颜色和重量
8.找出使用供应商S1所供应零件的工程号码
9.找出工程项目J2使用的各种零件的名称及其重量
10.找出上海厂商供应的所有零件号码
11.找出使用上海产的零件的工程名称
12.找出没有使用天津产的零件的工程号码
13.找出重量最轻的红色零件的零件编号PNO
14.找出供应商与工程所在城市相同的供应商提供的零件号码
15.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME
16.重复第15题,但不检索两个CITY值相同的三元组
17.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和
18.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列
七、实验总结:
数据查询是一种极为重要的面向数据库的数据操纵方式。实验完成后,请同学们总结一下SELECT语
句实现各种类型查询任务的一般过程和操作实现方法,并对利用SELECT语句实现各类查询任务的解题规律与方法作一总结。
第三篇:C3E4-教学管理数据库-数据查询
C3E4:教学管理数据库-数据查询
一、实验目的
掌握数据库中表的查询操作
二、实验工具
MS SQL Server 2008
三、实验内容及要求
在 C3E3-教学管理数据库 中完成以下操作。
--【5-1】查询全体学生的姓名、--【5-2】查询全体学生的详细信息。
--【5-3】将每个学生的累计学分降低10%后显示出来。
学号和话号码电。
--【5-4】将每个学生的累计学分降低10%后显示出来,要求查询结果表的标题用汉语显示。
--【5-5】查询每个院系有在读学生的专业。
--【5-6】查询来自杭州的所有学生。
--【5-7】查询累计学分在160分以下的学生姓名和累计学分。
--【5-8】查询累计学分不在150和159之间的学生姓名和累计学分。
--【5-9】查询姓名在'陈'和'李'之间的学生学号和姓名。
--【5-10】查询来自杭州、宁波或温州的学生学号和姓名。
--【5-11】查询既不来自杭州,也不来自宁波的学生学号和姓名。
--【5-12】查询学号后两位是“09”,或者等于学号前两位或中间两位的学生学号和姓名。
--【5-13】查询姓名中第二个字为“鹏”的学生学号和姓名。
--【5-14】查询学号长度不等于7,或者学号后6位含有非数字字符的学生学号和姓名。
--【5-15】查询学号最后一位既不是“1”和“3”,也不是“9”的学生学号和姓名。
--【5-16】查询课程名以“DB_”开头的课程信息。
--【5-17】查询没有成绩的学号和开课计划编号。
--【5-18】查询有成绩的学号和开课计划编号。
--【5-19】查询这样的男生,他的电话号码前3位是“130”,他来自杭州或者宁波,他既不主修电子商务专业,也不主修信息管理专业;
--【5-20】查询选修了开课计划编号为'010101'的课程的学生学号和成绩,查询结果按分数降序排列。
--【5-21】查询选修了开课编号为'010101'的课程的学生学号、成绩以及加了10分后的新成绩,查询结果按原成绩降序、按新成绩升序排列。
--【5-22】查询选修了开课编号为'010101'的课程的学生学号,并按成绩降序排列。
--【5-23】查询所有课本的总价格和平均价格,以及打七折后的总价格和平均价格。
--【5-24】查询课程编号前两位数字是'02'的课程所用课本的总价格和平均价格。
--【5-25】查询至少选修了一门课程的学生总数。
--【5-26】查询课程编号前两位数字是'02'的课程总数。
--【5-27】查询各门课程的课程号及相应的选课人数。
--【5-28】查询学号前5位为'S0601'且选修了两门以上(含)课程的学生学号。
--【5-29】查询学生的基本信息及其选课信息。
--【5-30】查询选修了开课计划编号为“010101”的课程的学生学号和姓名。
--【5-31】查询至少选修了学号为“S060110”的学生所选一门课程的学生学号和姓名。
--【5-32】用JOIN和ON关键字实现5-31的查询。
--【5-33】查询学生的学号、姓名、籍贯信息及其选课信息,分别以左外连接、右外连接和全外连接的形式显示。--(1)左外连接
--(2)右外连接
--(3)全外连接
--【5-34】查询选修了课程名为“数据库原理”的学生学号和姓名。
--【5-35】查询累计学分比“胡汉民”多2分以上(含)的学生学号、姓名和累计学分。
--【5-36】查询学生S060101的姓名和各门课程的平均成绩。
--【5-37】查询累计学分比计算机专业和信息管理专业所有学生都低的学生名单。
--【5-38】查询选修了开课计划编号为010101的课程的学生姓名。
--【5-39】查询计算机专业和信息管理专业的学生信息。
第四篇:数据库--数据查询和操作
《数据查询与操作》实验
一、实验目的与要求
1、理解简单查询和复合查询的意义。
2、掌握SELECT语句和各子句的使用。
3、掌握多表查询和子查询的使用。
4、掌握INSERT、UPDATE和DELETE语句的使用。
二、实验平台
1、操作系统:Windows XP或Windows 2003
2、数据库管理系统:SQL Server 2005
三、实验内容
1.在“人事管理系统”中,新增一个员工信息(员工编号„100508‟、员工姓名„小龙女‟、所在部门编号„10001‟、籍贯„河南‟)。
insert into 员工信息(员工编号,员工姓名,所在部门编号,籍贯)values('100508','小龙女','10001','河南')
2.将“人事管理系统”数据库的“员工信息”表中籍贯为“河南”并且所在部门编号为”10001”数据插入到“新员工信息”表中。
insert into 新员工信息(员工编号,员工姓名,所在部门编号)select 员工编号,员工姓名,所在部门编号from 员工信息 where 籍贯='河南'and 所在部门编号='10001'
3.在“人事管理系统”数据库“部门信息”表中,将部门的员工人数设置为10。
4.在“人事管理系统”数据库“员工信息”表中,将文化程度为“大专”,并且在“2005-05-01”到“2007-05-01”之间入职的所有员工调动到编号为“10006”的部门去。
5.在“人事管理系统”数据库中对部门进行了重组和调整,原来编号为10006的部门名称变为“市场开发部”,人数也调整为20人。
6.在“人事管理系统”数据库中,编号为“100503”的新员工升级为正式员工,需要在“新员工信息”表中删除他的记录。
7.在“人事管理系统”数据库中,删除“新员工信息”表中所有在编号为“10005”部门工作的员工记录。
delete 20 percent from 员工信息
8.在“人事管理系统”数据库中,需要删除20%的员工信息。
9.在“教务管理系统”数据库“班级信息”表中,查询分配了班主任的班级信息。
10.在“教务管理系统”数据库“学生信息”表中,根据籍贯查询各省学生人数,并显示省份和人数信息。
11.在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70的课程信息。
select *
from 课程信息 where 课程编号In(select 课程编号
from 成绩表
group by 课程编号 having avg(成绩)>70)
12.在commidtysell数据库中,根据相关表的内容,查询销售同类产品的商场编号(去除相同的行)。
select distinct e1.empID as 商场编号 from EmporiumSell e1,EmporiumSell e2 where e1.ProdID=e2.ProdID
13.在commidtysell数据库中,根据相关表的内容,查询买出产品数量最多的商场编号和销售总量信息。
select e1.EmpID,sum(e1.SellAmout)as 销售总量 from EmporiumSell e1 group by e1.EmpID having sum(e1.SellAmout)>=all(select sum(SellAmout)from EmporiumSell group by EmpID
14.在TeachingManageSYS数据库中,根据相关表的内容,统计年龄大于平均年龄的教师的Tname、Tsex、Tage、Trank,所教授课程的Cname,Credit,CouresHour。
select T.Tname,T.Tsex,T.Tage,T.Trank,Cname,Credit,CouresHour from Teach,CourseInfo,TeacherInfo T where T.Tno=Teach.Tno and Teach.Cno=CourseInfo.Cno and Tage>(select avg(Tage)from TeacherInfo)
15.在“人事管理系统”数据库“员工信息”表中,查询工龄大于4年的员工信息
16.在“人事管理系统”数据库“员工信息”表中,把政治面貌是“党员”的职工信息保存到表名为“党员信息”新表中。
将学生“陈霞”所在班级的其他学生并且成绩不合格的学生成绩删除
select 成绩表.学号,成绩表.成绩,学生信息.姓名,学生信息.班级编号 from 成绩表,学生信息
where 成绩表.成绩<60 and 学生信息.班级编号in(select 班级编号 from 学生信息 where 姓名='陈霞')
17.在“人事管理系统”数据库中,使用TRUNCATE TABLE语句删除“党员信息”表中的所有记录。
18.在“人事管理系统”数据库“员工信息”表中,把员工“李朋”所任职位更改为“副经理”。
19.查询“学生信息”表中姓名包含“红”字的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
20.查询“学生信息”表中姓氏为“徐”的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
21.从“教务管理系统”数据库中,查询人数超过45人所在班级中的学生的学号、姓名和班级名称。(使用子查询)
22.查询“学生信息”表中姓名不包含“红”字的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
23.在“教务管理系统”数据库中,查询还未分配班主任的班级信息。
24.在“人事管理系统”数据库“员工信息”表中,将文化程度为“大专”,并且在“2005-05-01”到“2007-05-01”之间入职的所有员工调动到编号为“10006”的部门去。
25.查询数据表ProductInfo中前5条记录。
26.从ProductInfo表中,查询产品名称为“丙电视机”的产品信息。
27.从ProductInfo表中,查询FactAddr为“四川绵阳”或“广东东莞”,同时StockAmount大于110的产品的ProdID、StockAmount和FactAddr信息,并且给列名分别取别名为产品编号、库存数量和厂商地址。
28.从ProductInfo表中,查询StockAmount在250和400(包含200和400)之间的产品的ProdName和StockAmount。
29.创建一个学生补考表,表中数据来自成绩表,条件为成绩小于60分,要求补考表中仅显示学生的学号和补考课程的编号。编写SELECT INTO语句完成这操作。
30.在“教务管理系统”数据库中,查询出所有非计算机系的学生信息,并显示出这些学生的考试成绩,再按成绩进行降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。(多表查询)
31.在“教务管理系统”数据库中,查询学生姓名为“朱文娟”所在班级的学生信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息。
select 学生信息.学号,学生信息.姓名,学生信息.性别,班级信息.班级编号,班级信息.班级名称,班级信息.年级 from 学生信息,班级信息
where 学生信息.班级编号=班级信息.班级编号
and 学生信息.姓名='朱文娟'
32.查询空调产品在ProductInfo的相关信息,要求该产品在EmporiumSell中的销售总量超过10台。
33.在“教务管理系统”数据库中,查询出任意一个大于平均成绩的学生的学号、姓名、班级编号、课程编号和成绩信息。
select 学生信息.学号,学生信息.姓名,学生信息.班级编号,成绩表.课程编号,成绩表.成绩 from 学生信息,成绩表
where 学生信息.学号=成绩表.学号and 成绩>any(select avg(成绩)from 成绩表
group by 课程编号)
34.在“教务管理系统”数据库中,对于成绩大于等于90的数据行进行查询,并返回考试成绩的学生的学号、姓名、性别、籍贯和所在班级名称及年级信息。
select 学生信息.学号,姓名,性别,籍贯,班级名称,班级信息.年级 from 学生信息,成绩表,班级信息
where 学生信息.班级编号=班级信息.班级编号and 学生信息.学号=成绩表.学号and 成绩>=90
35.在“人事管理系统”数据库的“员工信息”表中,查询“所任职位”为“经理”的员工编号和员工姓名信息,并为其增加新列“所在位置”,列的内容为“员工信息表”;从“部门信息”表中查询所有的部门编号和部门名称信息,并定义新增列的内容为“部门信息表”;最后将两个查询结果联合在一起。
select 员工编号,员工姓名 from 员工信息
where 所任职位='经理' alter table 员工信息 add 所在位置 nvarchar(20)
select 部门编号,部门名称 from 部门信息
alter table 部门信息
add 部门信息表 nvarchar(20)
select 员工编号,员工姓名
from 员工信息 FULL join 部门信息
on 员工信息.所在部门编号=部门信息.部门编号
36.在“教务管理系统”数据库的“学生信息”表和“成绩”表中,查询出所有考试及格的学生的成绩信息,包括学生的学号、姓名、性别、年级、班级编号及考试成绩,并且按照成绩进行降序排列。
select 学生信息.学号,姓名,性别,年级,班级编号,成绩 from 学生信息,成绩表 group by 学生信息.学号 having 成绩>60 order by 成绩desc
37.从“教务管理系统”数据库中的“学生信息”和“班级信息”两表中,查询学生和对应的班级信息,要求返回的结果中包含学生的学号、姓名、性别和班级名称及年级。
select 学号,姓名,性别,班级信息.年级,班级名称 from 学生信息,班级信息
where 学生信息.班级编号=班级信息.班级编号
38.在“教务管理系统”数据库的“学生信息”表和“成绩”表中,查询所有学生的考试成绩信息,包括学生学号、姓名、课程编号和成绩信息。(左、右、全外连接)
select 学生信息.学号,姓名,课程编号,成绩 from 学生信息left join 成绩表 on 学生信息.学号=成绩表.学号
select 学生信息.学号,姓名,课程编号,成绩 from 学生信息right join 成绩表 on 学生信息.学号=成绩表.学号
select 学生信息.学号,姓名,课程编号,成绩 from 学生信息full join 成绩表 on 学生信息.学号=成绩表.学号
39.在“人事管理系统”数据库中,对“员工信息”表和“部门信息”表进行交叉查询,要求查询返回所任职位为“职员”的员工编号、员工姓名、所任职位、文化程度和部门名称,并按照员工编号降序排序列。
select 员工编号,员工姓名,所任职位,文化程度,部门名称 from 员工信息,部门信息
where 员工信息.所在部门编号=部门信息.部门编号
四、实验过程
写出相应的T-SQL语句,并写出T-SQL语句执行结果的前两行记录。
五、实验总结
简述实验完成情况、实验过程中各自碰到的问题、各自对实验目的掌握情况。
第五篇:网络数据库讲稿(表数据操作)
网络数据库讲稿
一、插入数据
P131 1.INSERT … VALUES …
(1)VALUES所提供的值的个数、顺序、数据类型,必须与字段名列表中的相一致。(2)关于NULL 和 DEFAULT
P133 CREATE TABLE NULLDEFAULT(ID SMALLINT IDENTITY(1,2), XM CHAR(8)NOT NULL, XB CHAR(2)DEFAULT '男', NL TINYINT, MZ CHAR(10)NOT NULL DEFAULT '汉族')INSERT NULLDEFAULT values('张三','女',30,'回族')
①如果省略了列名表和值表中的一列,那么当该列有默认值存在时,将使用默认值;如果默认值不存在,SQL会尝试使用NULL值。
INSERT NULLDEFAULT(XM,MZ)values('张三','回族')INSERT NULLDEFAULT(XM)values('张三')
如果列已声明了NOT NULL,尝试的NULL值会失败。
INSERT NULLDEFAULT(XM,MZ)values(NULL,'回族')INSERT NULLDEFAULT(MZ)values('回族')②如果在值表中明确指定了NULL,那么即使该列默认值存在,也仍会插入NULL值(假设该列允许NULL)。
③当在一个允许NULL且没有声明默认值的列中使用DEFAULT,会在该列插入NULL值。
INSERT NULLDEFAULT values('张三',NULL,default,'蒙古族')④如果在一个声明NOT NULL且没有声明默认值的列中指定NULL或DEFAULT、或者省略了该值,会导致错误。
INSERT NULLDEFAULT values(NULL,NULL,default,'蒙古族')INSERT NULLDEFAULT values(DEFAULT,NULL,default,'蒙古族')INSERT NULLDEFAULT(MZ)values('回族')⑤可以把NULL插入到允许NULL且没有默认值的列中。
INSERT NULLDEFAULT(XM,NL)values('张三',NULL)⑥具有标识属性的列中不能使用关键字DEFAULT,不能在列名表中和值表中列出具有标识属性的列和值。
INSERT NULLDEFAULT values(DEFAULT,DEFAULT,NULL,default,'蒙古族')2.INSERT … SELECT … 3.SELECT … INTO …
二、更新数据
P137
三、删除数据
P141 1.DELETE 2.TRUNCATE TABLE
四、OUTPUT子句
P307 内存逻辑表INSERTED和DELETED。
网络数据库讲稿
INSERT NULLDEFAULT(XM)OUTPUT INSERTED.ID,INSERTED.XM,INSERTED.XB,INSERTED.NL,INSERTED.MZ values('赵一')INSERT NULLDEFAULT OUTPUT INSERTED.ID values('钱二','女',30,'回族')INSERT NULLDEFAULT OUTPUT INSERTED.ID,INSERTED.XM,INSERTED.XB,INSERTED.NL values('孙三',NULL,default,'蒙古族')UPDATE NULLDEFAULT SET MZ='维吾尔族' OUTPUT DELETED.ID,DELETED.XM,DELETED.XB,DELETED.MZ, INSERTED.ID,INSERTED.XM,INSERTED.XB,INSERTED.NL,INSERTED.MZ WHERE XM='赵一'
如果使用INTO子句,INTO子句中的表必须已存在。
CREATE TABLE ABC(ID SMALLINT, XM CHAR(8)NOT NULL, XB CHAR(2)DEFAULT '男', NL TINYINT, MZ CHAR(10)NOT NULL DEFAULT '汉族')
UPDATE NULLDEFAULT SET MZ='维吾尔族' OUTPUT DELETED.ID,DELETED.XM,DELETED.XB,DELETED.NL,DELETED.MZ INTO ABC WHERE XM='张三' OR XM='李四'