上机练习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(数据查询)的更多相关文章

  1. 数据库SQL语言学习--上机练习4(视图)

    上机练习4 一.实验目的 . 熟悉和掌握对数据表中视图的查询操作和 SQL 命令的使用: . 熟悉和掌握对数据表中视图的更新操作和 SQL 命令的使用,并注意视图更新与基本表更新的区别与联系: . 学 ...

  2. 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)

    上机练习2 1.              启动SQL Server 2008中的 SQL Server Management Studio. 2.              针对下面三张基本表进行操 ...

  3. 数据库SQL语言学习--上机练习3(插入 更新 删除)

    上机练习3 . 将一个新学生记录(学号::姓名:陈冬:性别:男:所在系:信息系:年龄:20岁)插入到Student表中: ALTER TABLE Student ,); UPDATE Student ...

  4. 数据库SQL语言学习----左外连接,右外连接,外连接,自然连接的形象对比

    现在有两张表,一张Student 另一张Score   1.查询每个学生及其选修课程的情况: 自然连接,Sno在Cscore中找不到就不显示,Cno在Cscore中找不到也不显示 SELECT Stu ...

  5. 数据库SQL练习(一):数据查询

    先创建以下3张基本表 1.学生信息表(Student): 2.课程表(Course): 3.成绩表(Score): 4. 将下列数据输入各个表中 建表SQL: CREATE DATABASE Stud ...

  6. Influx Sql系列教程九:query数据查询基本篇二

    前面一篇介绍了influxdb中基本的查询操作,在结尾处提到了如果我们希望对查询的结果进行分组,排序,分页时,应该怎么操作,接下来我们看一下上面几个场景的支持 在开始本文之前,建议先阅读上篇博文: 1 ...

  7. SQL语言学习-数据定义语言

    Sql语言至今已经有6个版本.SQL查询语言包括了所有对数据的操作命令,这些操作可分为四类:数据定义语言(DDL).数据操纵语言(DML).数据控制语言(DCL)和嵌入式SQL语言. 数据定义语言(D ...

  8. 数据库SQL语言从入门到精通--Part 6--单表查询(快来PICK)

    数据库从入门到精通合集(超详细,学习数据库必看) 查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表 ...

  9. 数据库SQL语言从入门到精通--Part 4--SQL语言中的模式、基本表、视图

    数据库从入门到精通合集(超详细,学习数据库必看) 前言: 使用SQL语言时,要注意SQL语言对大小写并不敏感,一般使用大写.所有符号一定是西文标点符号(虽然是常识,但我还是提一嘴) 1.模式的定义与删 ...

随机推荐

  1. Mac下常用工具

    MySql--Sequel Pro

  2. 03 事务,连接池DBCP,C3P0,DBUtils

    事务 Transaction  其实指的一组操作,里面包含许多个单一的逻辑.只要有一个逻辑没有执行成功,那么都算失败. 所有的数据都回归到最初的状态(回滚) 事务的作用:为了确保逻辑的成功. 例子: ...

  3. Math.floor(-8.5)=多少?

    Math.floor()   表示向下取整,返回double类型   (floor---地板)  Math.ceil()   表示向上取整,返回double类型    (ceil---天花板)  Ma ...

  4. 【BZOJ3894】文理分科

    最小割劲啊 原题:  文理分科是一件很纠结的事情!(虽然看到这个题目的人肯定都没有纠 结过)  小P所在的班级要进行文理分科.他的班级可以用一个n*m的矩阵进行 描述,每个格子代表一个同学的座位.每位 ...

  5. Using pointer to access array instead of index

    See example below firstly. uint8_t parity = ; uint8_t index = ; //flag gMUXTask.responseData[index++ ...

  6. 免费开源 KiCad EDA 中文资料收集整理(2019-04-30)

    免费开源 KiCad EDA 中文资料收集整理 用 KiCad 也有一段时间了,为了方便自己查找,整理一下 KiCad 的中文资料,会不定期更新. 会收集KiCad 的新闻.元件封装库.应用技巧.开源 ...

  7. 【转】Vue生命周期

    Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期 ...

  8. node api 之:process - 进程

    process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程. 因为是全局变量,所以无需使用 require().

  9. phpstorm破解方法

    方法1:打开网址 http://idea.lanyus.com/ 选择获取注册码,复制生成的验证码 安装完成后,打开软件,依次选择菜单栏 Help -> Register-> Activa ...

  10. linux centos 安装php的memcache扩展

    一.centos6.5 yum安装php的memcache扩展 搜索memcache yum search memcache 有了,现在可以安装了 yum -y install memcached m ...