資料庫複習

xde_yt發表於2024-04-23

資料庫複習筆記

USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、建立Student表”的SQL語句 ********** --
create table Student(
    Sno char(10) primary key,
    Sname varchar(20),
    Ssex char(2),
    Sage smallint,
    Sdept varchar(20)
);
-- ********** 此處寫“2、建立Course表”的SQL語句 ********** --
create table Course(
    Cno char(10) primary key,
    Cname varchar(20),
    Cpno char(10),
    Ccredit smallint
);
-- ********** 此處寫“3、建立SC表”的SQL語句 ********** --
create table SC(
    Sno char(10),
    Cno char(10),
    Grade smallint,	
    primary key(Sno,Cno)
);
GO
USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、新增phone列”的SQL語句 ********** --
alter table Student add phone char(12);
-- ********** End ********** --
-- ********** 此處寫“2、刪除Cpno列”的SQL語句 ********** --
alter table Course drop column Cpno;
-- ********** 此處寫“3、修改sdept列”的SQL語句 ********** --
alter table Student alter column sdept varchar(30);
GO

-- ********** 此處寫“1、刪除三張表”的SQL語句 ********** --
drop table if exists SC,Course,Student;
USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、為Student表插入兩行”的SQL語句 ********** --
insert into Student values('001','Smith','m','18','CS');
insert into Student values('002','Ketty','f','19','MA');
-- ********** 此處寫“2、為Course表插入兩行”的SQL語句 ********** --
insert into Course values('C01','DB',null,'2');
insert into Course values('C02','Oracle','C01','3');
-- ********** 此處寫“3、為SC表插入3行”的SQL語句 ********** --
insert into SC values('001','C01','70');
insert into SC values('001','C02','82');
insert into SC values('002','C01','86');
-- ********** End ********** --

GO

USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、將不及格的學生成績加5分”的SQL語句 ********** --
update SC set grade+=5 where grade < 60;
-- ********** 此處寫“2、將CS系男同學的年齡加1”的SQL語句 ********** --
update Student set sage+=1 where ssex = 'm' and sdept = 'CS' ;
-- ********** 此處寫“3、將學生的學號前加上‘S’(其中S要大寫)”的SQL語句 ********** --

update Student set sno = 'S' + sno;
-- ********** End ********** --

GO

USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、將學生的學號前的‘S’刪掉”的SQL語句 ********** --

update Student set sno = substring(sno,2,9);
-- ********** 此處寫“2、在學生學號的後面加上‘S’”的SQL語句 ********** --
update Student set sno = substring(sno,1,4) + 'S';
-- ********** End ********** --

GO

USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、在SC表中刪除成績為空的選課資訊”的SQL語句 ********** --
delete from SC where grade is null;
-- ********** 此處寫“2、刪除年齡等於18歲的女同學”的SQL語句 ********** --
delete from Student where sage = '18' and ssex = 'f';
-- ********** 此處寫“3、刪除學分為3分的課程”的SQL語句 ********** --
delete from Course where ccredit = '3';
-- ********** End ********** --

USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、查詢CS系男同學的學號,姓名,年齡”的SQL語句 ********** --
select sno,sname,sage from Student where Sdept='CS' and Ssex = 'm';
-- ********** 此處寫“2、查詢不及格的學生選課資訊,列出學號,課程號,成績”的SQL語句 ********** --
select sno,cno,grade from SC where grade < 60;
-- ********** 此處寫“3、查詢先行課程不為空的課程(使用*表示查詢結果)”的SQL語句 ********** --
select * from Course where cpno is not null;
-- ********** 此處寫“4、查詢姓名中帶有'n'字母的學生的學號,姓名(使用like語句)”的SQL語句 ********** --
select sno,sname from Student where sname like '%n%';
-- ********** 此處寫“5、使用distinct關鍵字查詢學生表中不同的系,列出系(去除重複元祖)”的SQL語句 ********** --
select distinct sdept from Student;

-- ********** End ********** --
GO

USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、查詢90分以上學生的選課資訊,列出學號,姓名,課程號,成績”的SQL語句 ********** --
select A.sno,A.sname,C.cno,C.grade from Student A,SC C where grade > 90 and A.sno = C.sno;
-- ********** 此處寫“2、查詢‘DB’課程的選課情況,列出學號,成績”的SQL語句 ********** --
select Sc.sno,SC.grade from Course,SC where Course.cname='DB' and Course.Cno = SC.Cno;
-- ********** End ********** --

GO


USE CS_yx_DB
GO
SET NOCOUNT ON

-- ********** Begin ********** --
-- ********** 此處寫“1、查詢CS系的學生選擇‘DB’課程的情況,列出學號,成績”的SQL語句 ********** --
select Student.sno,SC.grade from Student,Course,SC where cname='DB' and Student.sno = SC.sno and Course.cno = SC.cno and Sdept = 'CS';
-- ********** 此處寫“2、查詢女同學的選課情況,列出學號,課程號,課程名,成績”的SQL語句 ********** --
select Student.sno,Course.cno,Course.cname,SC.grade from Student,Course,SC where ssex = 'f' and Student.sno = SC.sno and Course.cno = SC.cno and Student.sno = SC.sno;

-- ********** End ********** --

GO

相關文章