• 数据库SQL语言学习--数据查询(持续更新中)


    数据库SQL语言学习--数据查询(持续更新中)

    上机练习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

    5、    使用SQL语句修改学生信息表(Student)中字段属性如下:
    姓名    varchar    20    N    
    
    6、    使用SQL语句删除学生信息表(Student)中“备注”字段;
    ALTER TABLE Student DROP COLUMN Memo;
    7、    查询全体学生的详细记录;
    SELECT * FROM Student;
    8、    查询学生信息表中学生的姓名和地址信息;
    SELECT Sname,Saddr FROM Student;
    9、    查询学生信息表中“刘”姓学生的信息;
    SELECT * FROM Student WHERE Sname LIKE '刘%';
    10、    查询学生信息表中姓名含“民”的学生的信息;
    SELECT * FROM Student WHERE Sname LIKE '%民%';
    11、    查询所有身高1.75以上的男学生的学号和姓名;
    SELECT Sno, Sname FROM Student WHERE Sgender='' AND Sheight>=1.75;
    12、    查询所有来自“宁波”的学生姓名、性别和年龄;
    SELECT Sname, Sgender, YEAR(getdate())-DATENAME(yyyy,Sbirth) FROM Student WHERE Saddr LIKE '%宁波%';
    13、    查询没有考试成绩的学生学号和课程编号;
    SELECT Sno, Cno FROM Score WHERE Cscore IS NULL;
    14、    查询所有参加过考试的学生学号;
    SELECT Sno, Cno FROM Score WHERE Cscore IS NOT NULL;
    15、    查询所有学分不小于3的课程名;
    SELECT Cname FROM Course WHERE Ccredit>=3;
    16、    查询学分在1~5范围内的课程编号和课程名;
    SELECT Cno, Cname FROM Course WHERE Ccredit BETWEEN 1 AND 5;
    17、    查询“数据库技术”课程的信息;
    SELECT * FROM Course WHERE Cname='数据库技术';
    18、    计算“0003”号课程中所有参加过考试的学生平均分;
    SELECT AVG(Cscore) FROM Score WHERE Cno='0003';
    19、    查询选修“0002”号课程的学生的成绩最高分;
    SELECT MAX(Cscore) FROM Score WHERE Cno='0002';
    20、    统计参加“0001”号课程考试的学生人数;
    SELECT COUNT(*) FROM Score WHERE Cno='0001';
    21、    查询每一门课的间接先修课(即选修课先修课的先修课);
    22、    查询每个学生及其选修课程的情况(包括没有选修课程的学生);
    SELECT Student.*,Score.* FROM Student,Score WHERE Student.Sno=Score.Sno;
    23、    查询每门选修课以及选修该课程的学生信息;
    24、    查询选修了3门课以上的学生姓名。
    SELECT Sname FROM Student WHERE Sno=ANY(SELECT Sno FROM Score GROUP BY Sno HAVING COUNT(*)>3);
  • 相关阅读:
    923c C. Perfect Security
    hdu ACM Steps Section 1 花式A+B 输入输出格式
    我回来了
    POJ–2104 K-th Number
    bzoj1009: [HNOI2008]GT考试
    bzoj1875: [SDOI2009]HH去散步
    1898: [Zjoi2005]Swamp 沼泽鳄鱼
    Hadoop
    程序员的自我修养
    Effective C++笔记
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13270820.html
Copyright © 2020-2023  润新知