数据库SQL语言学习--上级练习1(数据查询)
上机练习1
1、 启动SQL Server 2008中的 SQL Server Management Studio。
2、 创建数据库Studentdb;
3、 在数据库Studentdb中用SQL的DDL语句创建三张基本表,分别如下:
(注意:其中涉及列名均需自行重命名)
学生信息表(Student):
列名 |
数据类型 |
长度 |
是否可空 |
备注 |
学号Sno |
char |
4 |
N |
PRIMARY KEY |
姓名Sname |
varchar |
8 |
N |
|
性别 Sgender |
char |
2 |
Y |
男/女 |
出生日期 Sbirth |
date |
Y |
||
家庭地址Saddr |
varchar |
50 |
Y |
|
身高 Sheight |
decimal(3,2) |
Y |
||
备注 Memo |
text |
Y |
课程表(Course):
列名 |
数据类型 |
长度 |
是否可空 |
备注 |
课程编号 Cno |
Char |
4 |
N |
主键 |
课程名称 Cname |
varchar |
50 |
N |
|
学分 Ccredit |
int |
Y |
成绩表(Score):
列名 |
数据类型 |
长度 |
是否可空 |
备注 |
学号 Sno |
Char |
4 |
N |
主键 |
课程编号 Cno |
char |
4 |
N |
主键 |
分数 Cscore |
Decimal(3,1) |
Y |
4、 将下列数据输入各个表中
学号 |
姓名 |
性别 |
出生日期 |
家庭地址 |
身高 |
备注 |
0001 |
刘一平 |
男 |
1990-10-1 |
温州市环城西路201号 |
1.78 |
|
0002 |
张得民 |
男 |
1990-12-2 |
杭州市下沙路22号 |
1.65 |
|
0003 |
马东 |
男 |
1990-7-4 |
宁波市中山北道20号 |
1.71 |
|
0004 |
肖海燕 |
女 |
1990-3-15 |
温州市越秀北路43号 |
1.65 |
|
0005 |
张民华 |
女 |
1991-5-13 |
宁波市艮山路7号 |
1.63 |
课程编号 |
课程名称 |
学分 |
0001 |
计算机基础 |
2 |
0002 |
管理学原理 |
3 |
0003 |
数据库技术 |
3 |
0004 |
项目管理 |
2 |
0005 |
毕业论文 |
10 |
学号 |
课程编号 |
分数 |
0001 |
0001 |
80.0 |
0001 |
0002 |
90.0 |
0001 |
0003 |
70.0 |
0001 |
0004 |
85.0 |
0002 |
0001 |
78.0 |
0002 |
0002 |
NULL |
0002 |
0003 |
77.0 |
0002 |
0004 |
67.0 |
0003 |
0001 |
66.0 |
0003 |
0002 |
76.0 |
0003 |
0003 |
NULL |
0003 |
0004 |
73.0 |
、 使用SQL语句修改学生信息表(Student)中字段属性如下:
姓名 varchar N
ALTER TABLE Student ALTER COLUMN Sname VARCHAR(); 、 使用SQL语句删除学生信息表(Student)中“备注”字段;
ALTER TABLE Student DROP COLUMN Memo; 、 查询全体学生的详细记录;
SELECT *
FROM Student; 、 查询学生信息表中学生的姓名和地址信息;
SELECT Sname,Saddr
FROM Student; 、 查询学生信息表中“刘”姓学生的信息;
SELECT *
FROM Student
WHERE Sname LIKE '刘%'; 、 查询学生信息表中姓名含“民”的学生的信息;
SELECT *
FROM Student
WHERE Sname LIKE '%民%'; 、 查询所有身高1.75以上的男学生的学号和姓名;
SELECT Sno, Sname
FROM Student
WHERE Sgender='男' AND Sheight>=1.75; 、 查询所有来自“宁波”的学生姓名、性别和年龄;
SELECT Sname, Sgender, YEAR(getdate())-DATENAME(yyyy,Sbirth) FROM Student
WHERE Saddr LIKE '%宁波%'; SELECT Sname,Ssex,-YEAR(Sbirth) as Sage
From Student
WHERE Saddress Like '%宁波%'; 、 查询没有考试成绩的学生学号和课程编号;
SELECT Sno, Cno
FROM Score
WHERE Cscore IS NULL; 、 查询所有参加过考试的学生学号;
SELECT DISTINCT(Sno)
FROM Score
WHERE Cscore IS NOT NULL; 、 查询所有学分不小于3的课程名;
SELECT Cname
FROM Course
WHERE Ccredit>=; 、 查询学分在1~5范围内的课程编号和课程名;
SELECT Cno, Cname
FROM Course
WHERE Ccredit BETWEEN AND ; 、 查询“数据库技术”课程的信息;
SELECT *
FROM Course
WHERE Cname='数据库技术'; 、 计算“”号课程中所有参加过考试的学生平均分;
SELECT AVG(Cscore)
FROM Score
WHERE Cno=''; 、 查询选修“”号课程的学生的成绩最高分;
SELECT MAX(Cscore)
FROM Score
WHERE Cno=''; 、 统计参加“”号课程考试的学生人数;
SELECT COUNT(*)
FROM Score
WHERE Cno=''; 、 查询每一门课的间接先修课(即选修课先修课的先修课);
SELECT FIRST.Cno,SECOND.Cpno
FROM Course FIRST ,Course SECOND
WHERE FIRST.Cpno = SECOND.Cno; 、 查询每个学生及其选修课程的情况(包括没有选修课程的学生);
SELECT *
FROM Student
LEFT OUTER JOIN Score ON (Student.Sno= Score.Sno); 、 查询每门选修课以及选修该课程的学生信息;
SELECT Score.Cno,Student.*
FROM Student,Score
WHERE Student.Sno=Score.Sno
ORDER BY Score.Cno; 、 查询选修了3门课以上的学生姓名。
SELECT Sname
FROM Student
WHERE Sno IN
(SELECT Sno
FROM Score
GROUP BY Sno
HAVING COUNT(*)>);
数据库SQL语言学习--上级练习1(数据查询)的更多相关文章
- 数据库SQL语言学习--上机练习4(视图)
上机练习4 一.实验目的 . 熟悉和掌握对数据表中视图的查询操作和 SQL 命令的使用: . 熟悉和掌握对数据表中视图的更新操作和 SQL 命令的使用,并注意视图更新与基本表更新的区别与联系: . 学 ...
- 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)
上机练习2 1. 启动SQL Server 2008中的 SQL Server Management Studio. 2. 针对下面三张基本表进行操 ...
- 数据库SQL语言学习--上机练习3(插入 更新 删除)
上机练习3 . 将一个新学生记录(学号::姓名:陈冬:性别:男:所在系:信息系:年龄:20岁)插入到Student表中: ALTER TABLE Student ,); UPDATE Student ...
- 数据库SQL语言学习----左外连接,右外连接,外连接,自然连接的形象对比
现在有两张表,一张Student 另一张Score 1.查询每个学生及其选修课程的情况: 自然连接,Sno在Cscore中找不到就不显示,Cno在Cscore中找不到也不显示 SELECT Stu ...
- 数据库SQL练习(一):数据查询
先创建以下3张基本表 1.学生信息表(Student): 2.课程表(Course): 3.成绩表(Score): 4. 将下列数据输入各个表中 建表SQL: CREATE DATABASE Stud ...
- Influx Sql系列教程九:query数据查询基本篇二
前面一篇介绍了influxdb中基本的查询操作,在结尾处提到了如果我们希望对查询的结果进行分组,排序,分页时,应该怎么操作,接下来我们看一下上面几个场景的支持 在开始本文之前,建议先阅读上篇博文: 1 ...
- SQL语言学习-数据定义语言
Sql语言至今已经有6个版本.SQL查询语言包括了所有对数据的操作命令,这些操作可分为四类:数据定义语言(DDL).数据操纵语言(DML).数据控制语言(DCL)和嵌入式SQL语言. 数据定义语言(D ...
- 数据库SQL语言从入门到精通--Part 6--单表查询(快来PICK)
数据库从入门到精通合集(超详细,学习数据库必看) 查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表 ...
- 数据库SQL语言从入门到精通--Part 4--SQL语言中的模式、基本表、视图
数据库从入门到精通合集(超详细,学习数据库必看) 前言: 使用SQL语言时,要注意SQL语言对大小写并不敏感,一般使用大写.所有符号一定是西文标点符号(虽然是常识,但我还是提一嘴) 1.模式的定义与删 ...
随机推荐
- 管道符和作业 shell变量 环境变量
管道符 | 前一个命令的输出,变成后一个命令的输入 ctrl +z 暂停 bg cmd 后台运行 fg # 调回前台 直接让程序进入后台,可以在后面加上 cmd &am ...
- random module
import random # 方法返回随机生成的一个实数,它在[0,1)范围内print(random.random())运行结果:0.06435148447021877 # 方法返回随机生成的一个 ...
- oracle 数据库备份、还原、和使用心得(表丢失、视图丢失的解决办法)
一.oracle数据备份:exp 关键字 说明(默认值) 关键字 说明(默认值) --------------------------------- ...
- 芯灵思SinA33开发板怎样安装虚拟机
芯灵思SinA33开发板怎样安装虚拟机 今天入手一块芯灵思的开发板,型号为SIN-A33,用的是全志的A33芯片,与其它开发板不同的是, 芯灵思开发板手册上用来搭建开发环境的linux系统是cento ...
- linux(kali,centos)安装vm及其提示缺少c头文件解决方法
我电脑系统是kali最新版 首先去官网下一个vm安装包,给个直达网址 http://www.vmware.com/cn/products/workstation/workstation-evaluat ...
- ClusterControl 强大免费数据管理工具
几张参考图 galera 集群管理 多种数据库管理 组件架构 参考资料 https://severalnines.com/docs/intro.html
- postman测试REST接口注意事项
postman在测试第三方REST接口,当POST请求内容要求为application/json时,注意要在postman中设置POST请求体类型设置为raw,然后设置其内容为application/ ...
- django使用session报错:no such table: django_session
Django版本:1.11.15 使用session的代码:request.session['key'] = value 运行后报错:no such table: django_session 解决办 ...
- 在free bsd上跑JMeter 的 plugin "PerfMon Server Agent"
在free bsd上跑JMeter 的 plugin "PerfMon Server Agent" 目的: 在free bsd上跑JMeter 的 plugin "Per ...
- centos 6,7 上cgroup资源限制使用举例
在Centos6,7使用cgroup做内存限制,使用的配置包是libcgroup,具体方案和操作步骤如下. 步骤1:安装配置管理包 Centos 6: # yum install libcgroup ...