数据库实验二-三-SQL语句
更新时间:2023-07-26 18:09:01 阅读量: 实用文档 文档下载
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
实验二 数据定义和查询
SQL语句:
CREATE DATABASE Lab2
ON
PRIMARY
(
NAME = 'Lab2_data1',
FILENAME = 'D:\data\Lab2_data1.mdf',
SIZE = 20 MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10%
),
(
NAME = 'Lab2_data2',
FILENAME = 'D:\data\Lab2_data2.ndf',
SIZE = 20 MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10%
)
LOG ON
(
NAME = 'Lab2_log1',
FILENAME = 'D:\data\Lab2_log1.ldf',
SIZE = 50 MB,
MAXSIZE = 100 MB,
FILEGROWTH = 10 MB
);
USE Lab2
ALTER DATABASE lab2 REMOVE FILE Lab2_data2;
/*按要求创建四个关系S,P,J,SPJ*/
CREATE TABLE S/*供应商表*/
(
sno varchar(20) primary key,
sname varchar(20) unique,
city varchar(50)
);
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
CREATE TABLE P/*零件表*/
(
pno varchar(20) primary key,
pname varchar(20) ,
color varchar(10) ,
weight int check(weight>=1 and weight <=50),
);
CREATE TABLE J/*工程项目表*/
(
jno varchar(20) primary key,
jname varchar(20) not null unique,
city varchar(50) ,
);
CREATE TABLE SPJ/*供应情况表*/
(
sno varchar(20) references S(sno),
pno varchar(20) references P(pno),
jno varchar(20) references J(jno),
qty int
);
/*给S表增加Sphone和Semail两个属性列,分别用来存放供应商的联系电话和电子信箱。*/
ALTER TABLE S
ADD sphone varchar(20),
semail varchar(20);
/*(2)删除Jname属性列取值唯一的约束。*/
ALTER TABLE J
DROP UQ__J__C1C26BEE0DAF0CB0;
ALTER TABLE SPJ
ALTER COLUMN qty smallint;
ALTER TABLE S
DROP COLUMN semail;
/*(1)查询所有供应商所在的城市。*/
SELECT distinct city
from S
/*(2)查询零件重量在10-20之间(包括10和20)的零件名和颜色。*/
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
SELECT pname ,color
from P
where weight between 10 and 20
/*(3)查询工程项目的总个数。*/
SELECT COUNT(jno)
from J
/*(4)查询所有零件的平均重量。*/
SELECT AVG(weight)
from P
/*(5)查询供应商S3供应的零件号。*/
SELECT pno
from SPJ
where sno='s3'
/*(6)查询各个供应商号及其供应了多少类零件。*/
SELECT sno,COUNT(pno)
from SPJ
GROUP BY sno
/*(7)查询供应了2类以上零件的供应商号。*/
SELECT sno
from SPJ
GROUP BY sno
HAVING COUNT(pno)>=2
/*(8)查询零件名以“螺”字开头的零件信息。*/
SELECT *
FROM P
WHERE pname LIKE '螺%';
/*(9)查询工程项目名中最后一个字为“厂”字的工程项目所在的城市。*/
SELECT city
from J
where jname like '%厂';
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
/*(10)查询给每个工程供应零件的供应商的个数。*/
SELECT jno,COUNT(sno)
from SPJ
GROUP BY jno
/*(11)查询供应数量在1000—2000之间(包括1000和2000)的零件名称。*/ SELECT pname
from P
where pno in
(SELECT pno
from SPJ
group by pno
HAVING sum(QTY) BETWEEN 1000 AND 2000);
/**/
/**/
use lab2;
/*(1)查询计算机专业学生的姓名和年龄。*/
select Sname,datediff(yy,sbirth,getdate())
from S
where major='计算机';
(2)查询成绩在70-80分(包括70和80分)之间的学生的学号、课程号和成绩。 select *
from SC
where grade between 70 and 80;
(3)查询C01号课程的最高成绩。
select max(grade)
from SC
group by Cno
having cno='C01';
(4)统计每个专业的学生人数。
Select major, Count(sno)
From S
Group by Major;
(5)统计每门课程的修课人数和考试最高分。
Select cno,count(sno) 人数,max(grade) 最高分
From SC
group by Cno;
(6)统计每个学生的选课门数和考试总成绩,并按总成绩的递减顺序显示结果。 Select sno,count(cno) 选课门数, sum(grade) 总成绩
From SC
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
group by sno
Order by 总成绩 desc;
(7)查询总成绩超过200分的学生,要求列出学号和总成绩。
Select sno,sum(grade)
From SC
group by sno
having SUM(grade)>=200;
(8)查询姓名为余丹妮的学生所学课程的课程名与学分。
Select cname ,credit
From C
Where cno in(
Select cno
From SC
Where sno in(
Select sno
From S
Where sname='余丹妮'
)
)
(91)查询选修课程号为“C02”或“C07”的学生的学号。
Select distinct s1.Sno
From SC s1,SC s2
Where s1.sno=s2.sno and (o='C02' or o='C07');
(9)查询选修课程号为“C02”或“C07”的学生的学号。
Select distinct sno
From SC
Where cno='C02' or cno='C07';
(10)查询选修了课程号为“C02”和“C07”的学生的学号。
Select s1.Sno
From SC S1,SC S2
Where s1.sno=s2.sno and o='C02' and o='C07';
(11)查询学习全部课程的学生姓名。
Select sname
From S
Where sno in(
Select sno
From SC
Group by sno
Having count(cno)=8
)
(12)查询1992年1月1日以前出生的学生的姓名和专业。
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
Select sname, major
From S
Where datediff(dd,sbirth,'1992-1-1')>0
(13)查询选修了“计算机网络”课程且成绩在90分以上的学生姓名。
Select sname
From S
Where sno in(
Select sno
From SC
Where cno in (
Select cno
From C
Where cname='计算机网络'
)and grade>=90
)
(14)查询选修了5门以上课程的学生学号和姓名。
Select sno ,sname
From S
Where sno in (
Select sno
From SC
Group by sno
having count(cno)>=5
)
(15)查询未选修“离散数学”的学生情况。
SELECT *
FROM S
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno = S.Sno
AND Cno=(select cno
From C
Where cname='离散数学')
)
(16)统计C01和C06号课程的选课人数及平均成绩。
Select cno ,count(sno) 选课人数,avg(grade) 平均成绩
From sc
Group by cno
having Cno='C01' or Cno='C06';
(17)查询比所有计算机专业学生年龄都大的学生。
Select *
From S
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
Where datediff(yy,sbirth,getdate())>(select max(datediff(yy,sbirth,getdate()))
From S
Where major='计算机')
(18)将网络工程专业的学生按出生时间先后排序。
Select *
From S
where Major='网络工程'
Order by sbirth asc
实验三 数据更新与视图
SQL语句:
//在实验一创建的数据库STUDENT中使用SQL语句完成以下操作:
//(1)学生佟双要退学,请删除该学生的所有记录。
alter table SC
add constraint FK_SC_S foreign key (Sno) references S(Sno)
on delete cascade;
delete
from S
where sname='佟双'
(2)将姓名为“刘忠琦”同学的专业改为“软件工程”,备注改为“转专业学习”。 update S
set major='软件工程',
note='转专业学习'
where sname='刘忠琦'
(3)删除选修了“计算机网络”但没有及格的选课记录。
delete
from sc
where cno =(select cno from C where cname='计算机网络') and grade <60
(4)将(101131,路前元,男,1993-11-8,网络工程)插入学生关系。
insert into S(Sno,Sname,Ssex,Sbirth,Major)
values('101131','路前元','男',1993-11-8,'网络工程')
(5)在C表中插入以下元组:
“C09,数据库原理,4,48,4”,
“C10,JAVA语言程序设计,3,72,6”
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
insert into C (Cno,Cname,Term,Period,Credit)
values('C09','数据库原理',4,48,4),('C10','JAVA语言程序设计',3,72,6)
(6)创建视图JSJ_VIEW,包括计算机专业学生的学号,姓名,其选修的课程名及成绩属性列。
create view JSJ_VIEW (sno,sname,cname,grade)
as
select S.sno,sname,cname,grade
from S,C,SC
where S.major='计算机'
and S.sno=SC.sno
and o=o
(7)创建查询每个学生的修课学分的视图XF_VIEW,要求列出学生学号及总学分。 create view XF_VIEW (sno,总学分)
as
select sno,SUM(credit) 总学分
from SC,C
where o=o
group by sno
(8)在创建的视图中查询任静凯和张华所修的学分数。
select 总学分
from XF_VIEW
where sno in (select sno from S where sname ='任静凯' or sname='张华')
use lab2
2.在实验二创建的Project数据库中使用SQL语句完成以下操作:
(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数
量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。 insert into S (sno,sname,city)
values ('S9','英特尔','西安')
insert into SPJ values ('S9','P5','J7',600),('S9','P4','J4',500);
(2)请将北京供应商的供应数量加150。
update SPJ
set QTY=QTY+150
where sno in (select sno from S where city='北京')
(3)把全部红色零件的颜色改为黑色。
SQL语句,实验二,实验三,数据库数据定义和查询1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。2、掌握使用SQL语句修改表的结构。3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。数据更新与视图1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
update P
set color='黑'
where color='红'
(4)由S5供给J4的零件P6改为由S1供应。
update SPJ
set sno='s1'
where jno='J4' and pno='P6' and sno='s5'
(5)请将(S2,J7,P4,510)插入供应情况关系。
insert into SPJ values ('S2','P4','J7',510)
(6)零件P3已经停产,请将P3的相关信息从数据库中删除。
alter table SPJ
add constraint FK_spj_p1 foreign key (Pno) references P(Pno)
on delete cascade
delete
from P
where Pno='p3'
(7)创建零件名为螺丝刀的供应情况的视图P_ls,包括供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY)。
create view P_ls(sname,pname,pweight,jno,qty)
as
select sname,pname,pweight,jno,qty
from S,P,SPJ
where S.sno=SPJ.sno
and P.pno=SPJ.pno
(8)在视图P_ls中查询供应数量为500的供应商姓名。
select sname
from P_ls
where qty >=500
(9)请为三建工程项目建立一个供应情况的视图SJ_View,包括供应商编号,零件编号,供应数量。
create view SJ_View (sno,pno,qty)
as
select sno,pno,qty
from SPJ
正在阅读:
数据库实验二-三-SQL语句07-26
逻辑无环流可逆调速系统 - 图文07-05
医院分级管理办法06-10
数控铣工06-07
电子设计大赛本科组设计报告06-30
美利达山地车策划书 - 图文05-22
学校领导班子述职报告02-25
劳动合同法练习题(精)03-17
武汉理工大学高数B期末试卷B卷及答案11-19
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 语句
- 实验
- 数据库
- SQL
- 国家自然科学基金申请成功策略系列谈
- 世界近代史参考书目
- K3中间层信任注册
- 揭阳市物业管理收费办法
- 医院物资库存管理的规范对策
- 民族团结一家亲--主题班会
- 酒店客房清洁参考规范
- 推荐:大头菜的做法
- 建设法规8_工程建设安全生产管理法规
- LifeKeeper for Windows v7sqlsever安装配置手册
- 技术经济学(第三章)
- 煤矿应急视频指挥调度系统(山西煤运中)
- 工程项目管理试题及答案(历年必考)出题精选
- 《 前厅客房服务与管理》 模拟试题3套及答案
- 人教版英语英语一般将来时专项练习(附答案)含答案解析推荐精选
- 城市规划法宣传资料
- 人教版英语英语一般将来时专项练习题及答案详解含答案解析推荐精选
- s7-200plc编程及应用
- 道路工程概论.第2-7章
- ULN2803 ULN2804芯片资料