加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱资讯网 (https://www.52junxun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

数据库系统实验4:SQL——SELECT查询操作

发布时间:2022-10-13 10:47:10 所属栏目:MySql教程 来源:
导读:  数据库系统实验4:SQL语言——SELECT查询操作实验环境

  windows10操作系统数据库查询操作,使用MySQL 5.5 Command Line完成实验

  实验内容

  基于jxgl数据库,使用SQL语句表达以下
  数据库系统实验4:SQL语言——SELECT查询操作实验环境
 
  windows10操作系统数据库查询操作,使用MySQL 5.5 Command Line完成实验
 
  实验内容

  基于jxgl数据库,使用SQL语句表达以下查询
 
  检索年龄大于23岁的男学生的学号和姓名检索至少选修一门课程的女学生姓名检索王林不学的课程的课程号检索至少选修两门课程的学生学号检索全部学生都选修的课程的课程号和课程名检索选修了所有3学分的每门课程的学生平均成绩 步骤及过程 首先按以下SQL语句创建测试用的jxgl数据库
 
  CREATE DATABASE jxgl;
  use jxgl;
  CREATE TABLE IF NOT EXISTS student(
  sno CHAR(7) NOT NULL,
  sname VARCHAR(16),
  sage SMALLINT CHECK(sage>=16 AND sage<=45),
  ssex CHAR(2) DEFAULT '男' CHECK(ssex='男' OR ssex='女'),
  sdept CHAR(2),
  PRIMARY KEY(sno)
  ) ENGINE=InnoDB;
  INSERT INTO student
  VALUES
  ('2005001', '钱横', 18, '男','Cs'),
  ('2005002', '王林', 19, '女','Cs'),
  ('2005003', '李民', 23, '男','Is'),
  ('2005004', '赵欣然', 16, '女','Ma');
  CREATE TABLE IF NOT EXISTS course(
  cno CHAR(2) NOT NULL,
  cname VARCHAR(20),
  cpno CHAR(2),
  ccredit SMALLINT,
  PRIMARY KEY(cno)
  ) ENGINE=InnoDB;
  INSERT INTO course
  VALUES
  ('1', '数据库系统', '5', 4),
  ('2', '数学分析', '', 2),
  ('3', '信息系统导论', '1', 3),
  ('4', '操作系统原理', '6', 3),
  ('5', '数据结构', '7', 4),
  ('6', '数据处理基础', '', 4),
  ('7', 'C语言', '6', 3);
  CREATE TABLE IF NOT EXISTS sc(
  sno CHAR(7) NOT NULL,
  cno CHAR(2) NOT NULL,
  grade SMALLINT,
  PRIMARY KEY(sno, cno),
  FOREIGN KEY(sno) REFERENCES student(sno),
  FOREIGN KEY(cno) REFERENCES course(cno)
  ) ENGINE=InnoDB;
  INSERT INTO sc
  VALUES
  ('2005001', '1', 87),
  ('2005001', '2', 67),
  ('2005001', '3', 90),
  ('2005001', '4', 90),
  ('2005001', '5', 90),
  ('2005001', '6', 90),
  ('2005001', '7', 90),
  ('2005002', '2', 95),
  ('2005002', '4', 88),
  ('2005003', '3', 88),
  ('2005003', '4', 88),
  ('2005004', '4', 88);
  使用SQL语句表达以下查询
 
  SELECT sno, sname
  FROM student
  WHERE sage>23 AND ssex='男';
  SELECT student.sname
  FROM student, sc
  WHERE student.ssex='女' AND student.sno=sc.sno
  GROUP BY student.sno
  HAVING count(*)>=1;
  SELECT cno
  FROM course
  WHERE NOT EXISTS
  (SELECT * FROM student, sc
  WHERE sc.sno=student.sno
  AND sc.cno=course.cno AND student.sname='王林');
  SELECT student.sno
  FROM student, sc
  WHERE student.sno=sc.sno
  GROUP BY student.sno
  HAVING count(*)>=2;
  SELECT cno, cname
  FROM course
  WHERE NOT EXISTS
  (SELECT * FROM student
  WHERE NOT EXISTS
  (SELECT * FROM sc
  WHERE sno=student.sno AND cno=course.cno));
  SELECT AVG(grade)
  FROM course, sc
  WHERE course.cno=sc.cno AND course.ccredit=3
 

(编辑:我爱资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!