数据库实验二-三-SQL语句
更新时间:2023-08-21 01:01:02 阅读量: 高等教育 文档下载
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语句08-21
怎样做一名合格的小学数学教师01-24
部队网络信息安全02-11
弟弟的吃相作文500字06-15
家乡的名人作文600字06-22
《二力平衡》教学设计03-30
社区矫正法实施办法 学习心得09-10
个体户与个人独资企业的区别07-25
中国吉他袋行业发展研究报告 - 图文04-11
移动支付商业模式分析06-08
- 2012诗歌鉴赏讲座 师大附中张海波
- 2012-2013学年江苏省苏州市五市三区高三(上)期中数学模拟试卷(一)
- 市政基础设施工程竣工验收资料
- 小方坯连铸机专用超越离合器(引锭杆存放用)
- 荀子的学术性质之我见
- 氩弧焊管轧纹生产线操作说明
- 小学科学六年级上册教案
- (商务)英语专业大全
- 外汇储备的快速增长对我国经济发展的影响
- 幼儿园中班优秀语言教案《小猴的出租车》
- 第七章 仪表与显示系统
- 身份证号码前6位行政区划与籍贯对应表
- 单位(子单位)工程验收通知书
- 浅谈地铁工程施工的项目成本管理
- 沉积学知识点整理
- 前期物业管理中物业服务企业的法律地位
- 2014微量养分营养试卷
- 地质专业校内实习报告范文(通用版)
- 内部审计视角下我国高校教育经费支出绩效审计研究
- 高次插值龙格现象并作图数值分析实验1
- 语句
- 实验
- 数据库
- SQL
- K3中间层信任注册
- 蕙兰的无菌播种及根状茎培养技术研究
- 不定代词专项练习(附详解)
- 皮带机输送能力、电机功率计算
- net Calendar控件使用说明
- 自然语言交际有效性溯因——认知科学视域下的关联理论研究
- 环境监测实验室质量监督之管见
- 河北省张家口市二十一中2012-2013学年九年级上期末学业水平测试英语试卷及答案(冀教版)
- 大学计算机基础-第7章-宋长龙版-吉林大学现用
- 八年级思想品德第二阶段(1--6课)测试题
- 2021年人教版四年级语文下册期末试卷及参考答案(往年题考)
- 道路工程概论.第2-7章
- 消毒柜消毒记录表
- 新浙教版七年级(下)数学期末模拟试卷及答案
- 2014—2015学年度下学期期末考试高一年级数学科试卷
- BK9053-倍福耦合器说明书(中文版)
- 大学英语六级阅读历年真题训练unit6(B)
- 酒店住宿水单模板
- 江苏省南菁高级中学实验学校2015-2016学年八年级语文5月月考试题 苏教版
- ULN2803 ULN2804芯片资料