完整版专升本数据库练习题及答案.docx
《完整版专升本数据库练习题及答案.docx》由会员分享,可在线阅读,更多相关《完整版专升本数据库练习题及答案.docx(24页珍藏版)》请在冰豆网上搜索。
完整版专升本数据库练习题及答案
一.关系代数运算
1.选择σ
(1)查询年龄小于20岁的学生
σsage<20(student)
(2)查询学号为*********的学生
σsno=201215122(student)
2.投影
(1)查询学生姓名,和所在系
same,sdept(student)
(2)查询选修了2号课程的学生学号
sno(σcno=‘2’2(student))
SQL语句
学生-课程数据库
学生表:
学生(学号,姓名,性别,年龄,所在系)
课程表:
课程(课程号,课程名,先行课,学分)
学生选课表:
选课(学号,课程号,成绩)
二.创建数据库SQL
1.创建数据库
Createdatabase数据库名
On
(name=逻辑文件名,
Filename=’物理文件名’,
Size=初始文件大小,
Maxsize=最大文件大小,
Filegrowth=文件自动增量)
Logon
(name=逻辑文件名,
Filename=‘物理文件名’,
Size=初始文件大小,
Maxsize=最大文件大小,
Filegrowth=文件自动增量)
例创建‘教务管理数据库’
Createdatabase教务管理数据库
On
(name=教务管理_dat,
Filename=‘E:
\SQL\教务管理_dat.mdf’,
Size=2,
Filegrowth=1)
Logon
(name=教务管理.log,
Filename=‘E:
\SQL\教务管理_log.ldf’,
Size=5M,
Filegrowth=10%)
1.查看数据库属性
1)使用sp_helpdb查看数据库信息:
sp_helpdb[数据库名]
(2)使用sp_databases查看可使用的数据库信息:
sp_databases(显示所有可以使用的数据库名称和大小)
(3)使用sp_helpfile查看数据库文件信息
sp_helpfile[文件名]
1.设置数据库选项
Alterdatabase数据库名
Set选项
例设置教务管理数据库自动收缩
Alterdatabase教务管理数据库
Setauto_shrinkon(自动收缩)
1.修改数据库大小
Alterdatabase数据库名
Addfile增加数据文件
Addlogfile增加日志文件
Removefile删除文件
Modifyfile修改文件()
例1.修改教务管理数据库,增加数据文件jwgl_dat1
Alterdatabase教务管理数据库
Addfile(
Name=jwgl_dat1,
Filename=‘E:
\SQL\jwgl_dat1.ndf’,
Size=2MB,
Filegrowth=1MB)
2.修改教务管理数据库
Alterdatabase教务管理数据库
Modifyfile(
Name=jwgl_dat1,
Size=5MB)
2.删除教务管理数据库中次要数据文件jwgl_dat1
Alterdatabase教务管理数据库
Removefilejwgl_dat1
1.数据库更名
1)更改数据库名
Alterdatabase数据库名
Modifyname=新数据库名
例将数据库test更名为mytest
Alterdatabasetest
Modifyname=mytest
1)更改数据库的逻辑文件名
Alterdatabase数据库名
Modifyfile(
Name=逻辑文件名,
Newname=新逻辑文件名)
例将数据库逻辑文件test更名为mytest
Alterdatabasemytest
Modifyfile(
Name=test,
Newname=mytest)
Go
Alterdatabasemytest
Modifyfile(
Name=test_log,
Newname=mytest_log)
1)更改数据库的物理文件名
Alterdatabase数据库名
Modifyfile(
Name=逻辑文件名,
Filename=‘新路径\操作系统文件名’)
例将数据库物理文件test更名为mytest
Alterdatabasemytest
Modifyfile(
Name=mytest,
Filename=‘E:
\sql\mytest.mdf’)
GO
Alterdatabasemytest
Modifyfile(
Name=mytest_log,
Filename=‘E:
\sql\mytest_log.ldf’)
1.删除数据库
Dropdatabase数据库名
例删除数据库名为test和数据库sales
Dropdatabasetest,sales
1.数据库分离
Sp_detach_db数据库名
1.数据库附加
Createdatabase数据库名
On(
Filename=‘主文件的物理文件名’
)Forattach
三.基本表操作
1.创建表
Createtable表名
(
)
例创建一个学生表
Createtable学生表
(学号char(6)primarykey,
姓名char(20)unique,
性别char
(2),
年龄smallint,
所在系char(20)
)
1.修改表
Altertable表名
Add列名数据类型()//增加列
(altercolumn列名数据类型()//对原有的基础上修改列)
(dropcolumn列名//对原有的基础上删除列,可一次删除多列)
例1.添加一新列电子邮箱char型长度20
Altertable学生表
Add电子邮箱char(20)
例2.修改学生表列电子邮箱数据类型长度为22
Altertable学生表
altercolumn电子邮箱varchar(22)
例3.删除学生表的电子邮箱列
Altertable学生表
dropcolumn电子邮箱
3.删除表
Droptable表名
例删除学生表
Droptable学生表
四.数据更新
1.插入数据
Insert
Into表名()
Values值()
例1插入一行数据到学生表的学生
Insert
Into学生表(学号,姓名,性别,年龄,所在系)
Values(‘201215126’,‘张成民’,‘男’,18,‘计算机系’)
1.修改数据
Update表名
Set列名=表达式
Where条件
1)修改某元祖的值
例将学生201215121的年龄改为22
Update学生表
Set年龄=22
Where学号=‘201215121‘
1)修改多个元祖的值
例将所有学生年龄增加一岁
Update学生表
Set年龄=年龄+1
1)带子查询的修改语句
例将计算机科学系全体学生成绩置零
Update选课表
Set成绩=0
Where学号in
(select学号
From学生表
Where所在系=‘计算机科学系’)
1)修改表名
Sp_rename旧对象名,新对象名
例课程表更名为课程信息表
Sp_rename课程表,课程信息表
3.删除数据
Delete
from表名
Where条件
例将课程信息表中c程序设计课程信息删除
Delete
From课程信息表
Where课程名=‘c程序设计’
五.使用约束
1.非空约束(NOTNULL)
例创建一个学生表使姓名,性别为非空约束学号为主键
Createtable学生表
(学号char(6)primarykey,
姓名char(20)NOTNULL,
性别char
(2)NOTNULL,
年龄smallint,
所在系char(20)
)
1.唯一约束(UNIQUE)
例创建一个学生表使姓名,性别为唯一约束学号为主键
Createtable学生表
(学号char(6)primarykey,
姓名char(20)UNIQUE,
性别char
(2)UNIQUE,
年龄smallint,
所在系char(20)
)
1.Check约束(检查列值是否满足一个条件表达式)
1.完整性约束命令子句
Constraint完整性约束条件名(包括非空主键唯一外键check约束等)约束条件
例1创建一个学生表使性别只允许为‘男’或‘女’,年龄在20到30之间
Createtable学生表
(学号char(6)primarykey,
姓名char(20)UNIQUE,
性别char
(2)CHECK((性别=‘男’)or(性别=‘女’)),
年龄smallintCHECK(年龄between20and30),
所在系char(20)
)
2利用T-SQL命令设置课程表中的考核方式只能取值‘考试’或‘考查’,学分的值为1-6之间
Altertable课程表withcheck
AddconstraintCK_课程表_1check(考核方式in(‘考查’,‘考试’))
Altertable课程表withnocheck
AddconstraintCK_课程表_2check(学分between1and6)
1.主键约束(PRIMARYKEY)
例创建一个学生表使姓名,性别为唯一约束学号为主键
Createtable学生表
(学号char(6)primarykey,(在列定义后设置主键)
姓名char(20)UNIQUE,
性别char
(2)UNIQUE,
年龄smallint,
所在系char(20)
)
1.外键约束(FOREIGNKEY)
Constraint约束名FOREIGNKEY(列名)
Reference被引用表(列名)
[ondeletecascade(级联删除)|onupdatecascade(级联更新)]
例创建选课表设置选课表的课程号为外键引用课程表课程号
Createtable选课表
(学号char(6)primarykey,
课程号char(11)Reference课程表(课程号)onupdatecascade,
成绩numeric(5,1)
)
7.默认约束(DEFAULT)
Constraint约束名DEFAULT常量表达式可在创建表中数据类型后直接加
例修改课程表设置考核方式默认值为‘考试’
Altertable课程表
Addconstraintdf_课程表_考核DEFAULT‘考试’)for考核方式