实验2 SQL 查询语句

【实验目的】
    1、熟悉数据库的交互式SQL语言
    2、熟悉通过SQL语言对数据库进行操作
【实验平台】
    利用安装的SQL SERVER2008及其交互工具来操作SQL语言。

【实验内容】

    对于【实验1】的学生课程数据库的3个基本表

Student(Sno, sname, age, sex)

SC(sno, cno, grade)

Course(cno, cname, teacher)

3个基本表insert输入记录,再用updatedelete更新其中的数据(如果表中已有记录,该操作可忽略)。

建表及输入数据语句:

create  table  Student(
Sno  char(12)  primary  key,
Sname  char(8)  unique,
Sage  smallint,
Ssex  char(2),)

create  table  course(
Cno   char(6)  primary key,
Cname  char(20)  not  null,
Teacher  char(8))

create  table  SC(
Sno  char(12),
Cno  char(6),
Grade  smallint,
primary key(sno,cno),
foreign  key(sno) references   student(sno),
foreign  key(cno) references  course(cno))


insert
into Student(Sno,Sname,Ssex,Sage)
values
(201215121,'李勇','男','20'),
(201215122,'刘晨','女','19'),
(201215123,'王敏','女','18'),
(201215125,'张立','男','19');


insert
into Course(Cno,Cname,Teacher)
values
(1,'数据库','LIU'),
(2,'数学','LI'),
(3,'信息系统','WANG'),
(4,'操作系统','LIU'),
(5,'数据结构','ZHANG'),
(6,'数据处理','LIU'),
(7,'PASCAL语言','ZHU');

一、试用SQL的查询语句表达下列查询:

    1.检索LIU老师所授的课程号和课程名

select Cno,Cname
from course
where Teacher='LIU';

   2.检索年龄大于20岁的男学生的学号和姓名

select Sno,Sname
from Student
where Ssex='男' and Sage>=20;

3.检索学号为201215122学生所学课程的课程名与任课教师名(用in和exists引导的嵌套查询分别实现该题)

select Cname,Teacher    /*检索号同学所选修的课程名和任课教师名*/
from course,SC
where Sno='201215122' and course.Cno=SC.Cno;

4.检索至少选修LIU老师所授课程中一门课程的女学生姓名(用连接查询、in和exists引导的嵌套查询分别实现该题)

方法一:

select  sname    /*检索至少选修liu老师所授课程中一门课程的女同学姓名*/
from  Student,course,SC
where   Student.Sno=SC.Sno  and  course.Cno=SC.Cno   and  Ssex='女'  and   Teacher='LIU';

 方法二: 

 select  sname     /*检索至少选修liu老师所授课程中一门课程的女同学姓名*/
 from  Student
 where   ssex='女'  and  exists(select  *
                               from  SC,course
                               where  SC.Sno=Student.Sno  and  course.Cno=SC.Cno  and  Teacher='LIU')

5.检索李勇同学没有选修的课程的课程号(用not exists引导的嵌套查询、集合查询分别实现该题)

方法一:

select Cno    /*检索李勇同学没有选修的课程号*/
from course
where Cno<>all
(select Cno
from Student,SC
where  SC.Sno=Student.Sno and Sname='李勇');

方法二: 

select  cno      /*检索李勇同学没有选修的课程号*/
from course
where  not exists(select  *
                  from  Student,SC  
                  where   course.cno=sc.cno  and  Student.Sno=sc.sno  and  Sname='李勇')

6.检索至少选修两门课程的学生学号

select Sno  /*检索至少选修了两门课的学生学号*/
from SC
group by Sno
having COUNT(*)>=2;

7.检索全部学生都选修的课程的课程号与课程名

select cno,Cname   /*检索全部学生都选修的课程的课程名与课程号*/
from   Course
where  Cno in(select  Cno
              from  SC
              group  by  Cno
              having  COUNT(*)=(select  COUNT(*)  
                               from  student))

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实验1 Mysql数据库SQL语句练习实验主要是为了帮助学习者熟悉使用Mysql数据库SQL语句。通过实践练习,学习者可以掌握SQL语句的基本语法和常用操作,进一步理解数据库的概念和原理。 在实验中,学习者将使用Mysql数据库,通过编写和执行SQL语句来完成一系列操作。这些操作包括创建数据库和表、插入和更新数据、查询和筛选数据等。通过实践练习,学习者可以逐步掌握不同类型的SQL语句和各种功能。 实验1的内容可以包括以下几个方面: 1. 创建数据库:学习者可以使用CREATE DATABASE语句创建一个新的数据库,定义数据库的名称和字符集等属性。 2. 创建表:学习者可以使用CREATE TABLE语句创建一个新的表,定义表的结构和字段,包括字段名、数据类型、约束等。 3. 插入数据:学习者可以使用INSERT INTO语句向表中插入数据,根据表的结构和字段定义,逐个插入数据记录。 4. 更新数据:学习者可以使用UPDATE语句更新表中的数据,根据条件选择需要更新的记录,并修改相应的字段值。 5. 查询数据:学习者可以使用SELECT语句查询表中的数据,根据条件筛选需要的记录,并选择要显示的字段和排序方式。 6. 删除数据:学习者可以使用DELETE FROM语句删除表中的数据,根据条件选择需要删除的记录。 通过实验1的练习,学习者可以逐步掌握Mysql数据库SQL语句的基本用法和常见操作,提高对数据库的理解和应用能力。此外,实验1还可以培养学习者的数据处理和分析能力,为进一步学习数据库相关内容打下基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君临๑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值