数据库实验三(单表查询)

实验三:

select sno,sname
from student;//(1)查询全体学生的学号和姓名

select *
from student;//(2)查询全体学生的详细记录

select sname,sage,sdept
from student where sdept=‘MA‘;//(3)查询软件学院的学生姓名、年龄、系别

select distinct sno
from sc;//(4)查询所有选修过课程的学生学号(不重复)

select distinct sno
from sc
where grade<60;//(5)查询考试不及格的学生学号(不重复)

select ssex,sage,sdept
from student
where sdept not in(‘CS‘,‘MA‘);//(6)查询不是软件学院、计算机系的学生性别、年龄、系别

select sno,sname,sdept,sage
from student
where sage>=18 and sage<=20;//(7)查询年龄18-20岁的学生学号、姓名、系别、年龄;

select *
from student
where sname like ‘刘%‘;//(8)查询姓刘的学生情况

select *
from student
where sname like ‘刘%‘or sname like ‘李%‘;//(9)查询姓刘或姓李的学生情况

select *
from student
where sname like ‘刘_‘;//(10)查询姓刘且名字为两个字的学生情况
select sname
from student
where sage<31;//(11)查询1983年以后出生的学生姓名。

create table studentgrade
(
sno char(8) PRimary key,
mathgrade tinyint,
englishgrade tinyint,
chinesegrade tinyint
)
go
insert into studentgrade(sno,mathgrade,englishgrade,chinesegrade) values( ‘95001‘,85,95,74)
insert into studentgrade(sno,mathgrade,englishgrade,chinesegrade) values( ‘95002‘,86,91,70)
insert into studentgrade(sno,mathgrade,englishgrade,chinesegrade) values( ‘95003‘,80,92,71)
insert into studentgrade(sno,mathgrade,englishgrade,chinesegrade) values( ‘95004‘,81,91,75)
insert into studentgrade(sno,mathgrade,englishgrade,chinesegrade) values( ‘95005‘,87,97,78)
insert into studentgrade(sno,mathgrade,englishgrade,chinesegrade) values( ‘95006‘,81,97,70)
insert into studentgrade(sno,mathgrade,englishgrade,chinesegrade) values( ‘95007‘,85,95,70)

select sum(mathgrade+englishgrade+chinesegrade) as sumgrades
from studentgrade group by sno;(12)创建表 studentgrade(sno,mathgrade,englishigrade,chinesegrade)
计算学生各科总成绩并赋予别名

select (year(getdate())-student.sage+1)
from student
where sdept=‘MA‘;//(13)利用内部函数 year()查找软件学院学生的出生年份

select sname + ‘年龄为‘+cast(sage as char(2))+‘岁‘
from student;
Select sname + ‘年龄为’+cast(sage as char(2))+’岁’
From student//(14)利用字符转换函数实现字符联接。

select*
from student order by sdept,sage desc;//(15)查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。

select count(*)
from student;//查询总人数

select count(distinct sno)
from sc;//查询选修了课程的学生人数

select count(*),avg(grade)as avggrade
from student ,sc
where student.sno=sc.sno and sc.cno=‘1‘;//(18)查询选修了7号课程的学生总人数和平均成绩

select max(grade) as maxgrade
from sc
where cno=‘2‘;//(19)查询选修6号课程学生的最好成绩

select sdept,count(*)
from student group by sdept;//(20)查询每个系的系名及学生人数。

select cno,count(*),avg(grade) as avggrade
from sc group by cno;//(21)查找每门课的选修人数及平均成绩

select *
from course
where cpno is null;//(22)查找没有先修课的课程情况

时间: 2024-07-29 13:32:20

数据库实验三(单表查询)的相关文章

04 数据库入门学习-单表查询、多表查询、子查询

1.复制表 #创建了一张测试表 mysql>create table test (id int primary key auto_increment,name char(10)); #显示原表结构 mysql> desc test; +-------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+---

MySQL数据库篇之单表查询

主要内容: 一.单表查询的语法 二.关键字的执行优先级 三.简单查询 四.where约束 五.分组查询 group by 六.having过滤 七.查询排序 order by 八.限制查询的记录数 limit 九.使用正则表达式查询 1?? 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 2??  关键字的执行优先级 重点中的重点:关键字的执行优先级(从上至

数据库原理-数据单表查询

格式:select [all|distinct] <目标列表达式>,[目标列]... from <表名或视图名>[,<表名或视图名>|(seslect 语句)[as]<别名>] [where <条件名>] [group by<列名1>[having <条件表达式>]] [order by<列名1>[asc|desc]] 单表查询 选择表中的若干列 1.查询全部列 select * from student 2.

mysql 数据库 IV(单表查询)

1.今日内容 单表查询语法 select distinct 字段1,字段2... from 表名 where 条件 group by 字段 having 筛选 order by 字段 limit 限制条数 关键字执行的优先级 from # 找到表 where # 拿着where指定的约束条件,去文件/表中取出一条条记录 group by # 将取出来的数据进行group by,如果没有group by,则整体做为一组 select distinct #执行select-去重 having #将分

MySQL数据库实验三:连接查询

实验三    连接查询 实验名称:连接查询(2课时) 一.实验目的 理解JOIN语句的操作和基本使用方法,掌握内连接.外连接.自身连接的概念和使用. 二.实验环境 是MS SQL SERVER 2005的中文客户端. 三.实验示例 1. 查询每个学生及其选修课程的情况 SELECT  Student.*,SC.* FROM     Student,SC WHERE  Student.Sno = SC.Sno: 2.检索至少选修课程号为C2和C4的学生学号 SELECT X.S# FROM SC

MySQL数据库实验二:单表查询

实验二   单表查询 一.实验目的 理解SELECT语句的操作和基本使用方法. 二.实验环境 是MS SQL SERVER 2005的中文客户端. 三.实验示例 1.查询全体学生的姓名.学号.所在系. SELECT Sname,S#,Sdept FROM S: 2.查询全体学生的详细记录. SELECT  * FROM S: 3.查全体学生的姓名及其出生年份. SELECT Sname,2011-Sage    /*假定当年的年份为2011年*/ FROM S: 4.查询选修了课程的学生学号.

oracle数据库之单表查询

作为一合格的测试人员对数据库的单表查询.多表查询.分组查询.子查询等等这些基本查询方法还是要会的.不然到企业中,容易被一些人鄙视,或者说如果数据库学不好,表查不明白,那么对自己能力来说也是一种侮辱,因为你可以证明自己,你是可以的,尤其是你在面试的时候面对面试官的给你出的一道sql语句题目,你能马上用你的套路把这道题做出了,那么恭喜你过了第一个小关卡.ok,我们今天学习一下数据库中的第一个查询,也是最简单,容易入门的查看----单表查询. 我们在上一篇中创建了一个classinfo和student

数据库的增删改、单表查询

数据库的增删改 插入数据 INSERT 更新数据 UPDATE 删除数据 DELETE 插入数据 INSERT 1.插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3...字段n)VALUES(值1,值2,值3...值n); 语法二: INSERT INTO 表名 VALUES (值1,值2,值3-值n); 2. 指定字段插入数据 语法: INSERT INTO 表名(字段1,字段2,字段3-) VALUES (值1,值2,值3-); 3. 插入多条记录 语

数据库学习笔记系列(4)——单表查询_1

单表查询就是查询的范围只是一个table,我们对其中的某一个字段,或者多个字段进行查询返回,查询的时候还可以满足一定的条件. 下面我们就按照实际的问题,来学习一下单表查询. 首先,原始的是一个student表,其中有如下几个字段: 学号:snum 姓名:sname 年龄:sage 性别:ssex 院系:department 课程:course 分数:score create table student(snum int(5), sname varchar(10), sage int(5), ss

数据库:数据操作-单表查询

一 单表查询的语法 select 字段1,字段2....from 表名 where 条件 group by field having 筛选 order by field limit 限制条数 二 关键字的执行优先级(重点) 关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有