SQL 语言——SELECT 查询操作

实验目的:

 -了解查询的概念和方法;-掌握 SQL Server 集成管理器查询子窗口中执行 SELECT 操作的方法;-掌握 SELECT 语句在单表查询中的应用;-掌握 SELECT 语句在多表查询中的应用;-掌握 SELECT 语句在复杂查询中的应用。

实验要求:

实验内容:

1、 背景知识

2、 利用 SQL 语句创建数据库及表和插入记录

  (1) 在 SQL Server Management Studio 的查询子窗口中(要以具有相应操作权限的某用 户登录)执行如下命令创建数据库。需要说明的是不同数据库系统其创建的数据库 命令或方式有所不同。 CREATE DATABASE jxgl
  (2) 刷新数据库目录后,选择新出现的 jxgl 数据库,在 SQL 操作窗口中,创建 Student、 SC、Course 三个表及表记录。 利用 CREATE、INSERT、CHECK、DEFAULT、PRIMARY KEY、FPREIGN KEY、CONSTRAINT、 IN、UNION、EXISTS、WHERE、GROUP BY、ORDER BY、UNIQUE 等 SQL 命令在 SQL 操作 窗口编写 SQL 语句进行表结构的定义和记录的插入,主要包含以下三个表:

表2-1 学生表(Student)表结构

字段名 数据类型 长度 是否允许为空值 说明
Sno 字符型(char) 5 × 学号,主键
Sname 字符型(varchar) 20 × 姓名
Ssex 字符型(char) 2 性别,默认”男“
Sage 短整型(smallint) 年龄
Sdept 字符型(varchar) 8 系名

表 2-2 课程表(Course)表结构

字段名 数据类型 长度 是否允许为空值 说明
Cno 字符型(char) 4 × 课程号,主键
Cname 字符型(varchar) 20 × 课程名
Cpno 字符型(char) 4 先行课
Ccredit 精确值型(numeric) numeric(2,1) 学分

表 2-3 学生选课表(SC)表结构

字段名 数据类型 长度 是否允许为空值 说明
Sno 字符型(char) 5 × 学号,外键
Cno 字符型(char) 20 × 课程号,外键
Grade 精确值型(decimal) decimal(4,1) 成绩,0~100之间

学生表:Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为主键
说明:Sno 学号,Sname 姓名,Ssex 性别,Sage 年龄,Sdept 所在系
表中现有记录为:

Sno Sname Ssex Sage Sdept
98001 钱横 18 CS
98002 王林 19 CS
98003 李民 20 IS
98004 赵三 16 MA
98005 钱力 25 PH
98006 曹莉 16 MA
98007 孙慧 22 PH

课程表:Course(Cno,Cname,Cpno,Credeit) Cno 为主键
说明:Cno 课程号,Cname 课程名,Cpno 先行课,Ccredit 学分
表中现有记录为

Cno Cname Cpno Ccredit
1001 数据库系统 1005 4
1002 数学分析 NULL 2
1003 信息系统导论 1001 3.5
1004 操作系统_原理 1006 3
1005 数据结构 1007 4
1006 数据处理基础 NULL 4
1007 C 语言 1006 3

学生选课表:SC(Sno,Cno,Grade) Sno,Cno 为主键
说明:Sno 学号,Cno 课程号,Grade 成绩
表中现有记录为:

Sno Cno Grade
98001 1001 87
98001 1002 67
98001 1003 90
98001 1004 97
98002 1002 95
98002 1003 88
98003 1002 57
98003 1004 54
98004 1001 87
98004 1002 95
98004 1003 81
98004 1004 79
98004 1005 47
98004 1006 92
98004 1007 71
98005 1002 48
98005 1005 NULL

3、 单表查询

(1) 查询考试成绩大于等于 90 的学生的学号。
(2) 查询年龄大于 23 岁的男学生的学号和姓名。
(3) 查询年龄大于 18 岁,并不是信息系(IS)与数学系(MA)的学生的姓名和性别。
(4) 查询以“操作系统_”开头,且倒数第二个汉字为“原”字的课程的详细情况。 (5) 查询选修了课程的学生人数。
(6) 根据系统当前时间和学生年龄,查询学生出生日期(要求以特定输出:年-月-日)。

建表的SQL语句:create table Student(Sno char(5) not null primary key,   -- 学号,主键Sname varchar(20) not null,          -- 姓名Ssex char(2) default('男'),           -- 性别,默认为男Sage smallint,                     -- 年龄Sdept varchar(8),                  -- 系名)gocreate table Course(Cno char(4) not null primary key,   -- 课程号,主键Cname varchar(20) not null,         -- 课程名Cpno char(4),                     -- 先行课Ccredit numeric(2,1),             -- 学分)create table SC(Sno char(5) not null,             -- 学号,外键Cno char(4) not null,                -- 课程号,外键Grade decimal(4,1),                 -- 成绩)--向学生表(Student)中插入数据insert into Student values ('98001','钱横','男',18,'CS')insert into Student values ('98002','王林','女',19,'CS')insert into Student values ('98003','李民','男',20,'IS')insert into Student values ('98004','赵三','女',16,'MA')insert into Student values ('98005','钱力','男',25,'PH')insert into Student values ('98006','曹莉','女',16,'MA')insert into Student values ('98007','孙慧','女',22,'PH')select * from Student--向课程表(Course)中插入数据insert into Course values('1001','数据库系统','1005',4)insert into Course values('1002','数学分析',null,2)insert into Course values('1003','信息系统导论','1001',3.5)insert into Course values('1004','操作系统原理','1006',3)insert into Course values('1005','数据结构','1007',4)insert into Course values('1006','数据处理基础',null,4)insert into Course values('1007','C语言','1006',3)select *from Course--向选课表(SC)中插入数据insert into SC values('98001','1001',87)insert into SC values('98001','1002',67)insert into SC values('98001','1003',90)insert into SC values('98001','1004',97)insert into SC values('98002','1002',95)insert into SC values('98002','1003',88)insert into SC values('98003','1002',57)insert into SC values('98003','1004',84)insert into SC values('98004','1001',87)insert into SC values('98004','1002',95)insert into SC values('98004','1003',81)insert into SC values('98004','1004',79)insert into SC values('98004','1005',47)insert into SC values('98004','1006',92)insert into SC values('98004','1007',71)insert into SC values('98005','1002',48)insert into SC values('98005','1005',null)select *from SC
----------------------单表查询----------------------
--1.查询考试成绩大于等于 90 的学生的学号
select SC.Sno
from SC
where Sc.Grade >= 90--2.查询年龄大于 23 岁的男学生的学号和姓名
select Student.Sno,Student.Sname
from Student
where Student.Sage > 23--3.查询年龄大于 18 岁,并不是信息系(IS)与数学系(MA)的学生的姓名和性别
select Student.Sname,Student.Ssex
from Student
where Student.Sage > 18
and Student.Sdept not in('IS','MA')--4.查询以“操作系统_”开头,且倒数第二个汉字为“原”字的课程的详细情况
select *
from Course
where Course.Cname like '操作系统%原_'--5.查询选修了课程的学生人数
select distinct count(*) as 选秀课程人数
from Course--6.根据系统当前时间和学生年龄,查询学生出生日期(要求以特定输出:年-月-日)
select year(GETDATE())
select Student.Sname,(year(GETDATE()) - Student.Sage) as 出生年份
from Student

多表查询和符合查询在下一张
实验二:第二部分

实验二 SQL 语言——SELECT 查询操作(第一部分)相关推荐

  1. 数据库实验4 SQL语言-SELECT查询操作

    数据库实验4 SQL语言-SELECT查询操作 1.首先按照第三章的jxgl数据库的模板创建jxgl数据库并插入数据: 创建数据库jxgl: create database jxgl; 创建相应的表: ...

  2. 【SQL语言——SELECT查询操作】

    基于创建的数据库(包含读者.图书.借阅三张表),试用SQL的查询语句表达下列查询: 1.查询图书表中售价介于50元到70元之间的图书的全部信息 2.查询图书表中全部图书的最高售价.最低售价和平均售价. ...

  3. 数据库实验二 SQL语言

    实验二 SQL语言 实验目的 熟悉并掌握创建表,插入记录,查询记录,删除记录,修改记录. 创建索引,删除索引. 创建视图,使用视图,删除视图. 实验内容 现有一个单位内部的小型图书借阅系统,假设每本图 ...

  4. 数据库实验二 SQL数据定义和操作

    SQL数据定义和操作 欢迎阅读本教程 一.数据定义 二.数据更新 三.数据查询 欢迎阅读本教程 掌握关系数据库语言 SQL 的使用. 使所有的 SQL 作业都能上机通过. 实现内容如下: 数据定义:表 ...

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

    数据库系统实验4:SQL语言--SELECT查询操作 数据库系统实验4:SQL语言--SELECT查询操作 实验环境 实验内容 步骤及过程 首先按以下SQL语句创建测试用的jxgl数据库 使用SQL语 ...

  6. sql查询计算机系学生的学号和姓名,实验5数据库的简单查询操作答案.docx

    (6) 从学生信息表中查询计算机系年龄小于 (6) 从学生信息表中查询计算机系年龄小于 20 的学生的信息 SQL 代码如下: (2) (2) 从学生信息表中查询所有学生的姓名和学号信息并分别 实验 ...

  7. mysql实验6语言结构_实验六 SQL语言数据查询语言DQL.pdf

    实验六 SQL语言数据查询语言DQL 实验六 SQL 语言数据查询语言DQL 一.实验目的 数据查询语言指对数据库中的数据查询.统计.分组.排序等操作.查询语 句可以分为简单查询.连接查询.嵌套查询和 ...

  8. 数据库系统实验8 SQL语言-存储过程基本操作

    数据库实验8 SQL语言-存储过程基本操作 一.实验环境: ​ MYSQL WORKBENCH 二.实验内容与完成情况: (逐题给出相应的SQL语句及执行结果,SQL语句必须能够拷贝,实验结果可截图: ...

  9. 求数学系或计算机系姓张的学生的信息,实验二数据库的简单查询和连接查询.docx...

    贵州大学实验报告 学院:计算机科学与信息学院 专业:信息安全 班级: 姓名 学号 实验组 实验时间 指导教师 成绩 实验项目名称 数据库的简单查询和连接查询 实验目的 使学生掌握SQL Server ...

最新文章

  1. Windows 10完美识别3TB硬盘实录
  2. 推荐三款scrum看板协作工具
  3. python处理回显_Python中getpass模块无回显输入源码解析
  4. np.max()和np.argmax()
  5. 中美专利对比:2015年中国上升 美国首降
  6. java map null吗_Java: Map里面的键和值可以为空吗?
  7. win7计算机找不到脚本文件夹,win7系统TXT文件打开提示找不到脚本文件的解决方法...
  8. hbase分布式集群搭建
  9. (转)Ubuntu10.04编译FFmpeg
  10. Oracle 12cR2发布,金融行业准备大规模上了
  11. Material Design系列之BottomSheet详解
  12. matlab计算恒向线航程
  13. 兰浦秋来烟雨深 几多情思在琴心
  14. 学C++就学服务端,先把apue和unp两卷看了,接着libevent,出来找工作应该没问题
  15. 计算广告(一):在线广告概述
  16. 联想笔记本如何关闭Fn功能键
  17. videojs+hls+rtmp流媒体播放
  18. c语言计算存储大小,在C语言中5种基本数据类型的存储空间长度的排列顺序
  19. 《python灰帽子》笔记--构建自己的调试器
  20. 关于天龙八部3的感想

热门文章

  1. 移动互联网下一章(转载)
  2. GPIO的配置及使用(MC9S08AW60)
  3. STM32 使用SWD方式下载不了程序
  4. 为什么新冠德尔塔毒株如此“危险”?
  5. LaTeX无图片编号
  6. 解决问题:Matlab如何生成或保存无背景图片
  7. markdown无法显示图片的问题
  8. Github每日精选(第48期):SQLite下的知识库memos
  9. 9*9的数独(dfs)
  10. zbursh2021尝新,安装包