导航菜单
首页 >  word考试题库操作题和答案一样吗怎么设置密码保护  > 数据库操作习题三(50道题

数据库操作习题三(50道题

一、    创建数据库STUxxxx(其中xxxx为自己的姓名)。 create database STUliuxinlei;

use STUliuxinlei;

二、    在STUxxxx数据库中使用SQL语句创建如下的表结构:   1.学生情况表(XS)结构     列名    数据类型    长度    可否为空    默认值    说明 序号    Int        否        自增字段,主键 学号    Char    7    否    无    唯一键 姓名    Char    8    否    无     性别            否    男    只能为男或女 出生日期    datetime        否    无     班级    Char    5    是    ‘41021’     总学分    Tinyint        是    0     是否团员    char    1    是         身份证号码    char    18    是         备注    Text        是    无    

2.课程表(KC)结构 列名    数据类型    长度    可否为空    默认值    说明 序号    Int        否        自增字段,初始值为5,主键 课程号    Char    3    否    无     课程名    Char    20    否    无     开课学期            否    1    只能为1~8 学时    Tinyint        否    无     学分    Tinyint        否    0    

3.学生与课程表(XS_KC)结构 列名    数据类型    长度    可否为空    默认值    说明 学号    Char    7    否    无    学号与课程号的组合为主键 课程号    Char    3    否    无     成绩    Tinyint        是    0    

create table XS(     序号 int primary key auto_increment,     学号 char(7) not null unique key,     姓名 char(8) not null ,     性别 enum('男','女') not null default '男',        出生日期 datetime not null,     班级 char(5) default '41021',     总学分 tinyint default 0,     是否团员 char(1) ,     身份证号码 char(18) ,     备注 text  )

create table KC( 序号 int primary key auto_increment, 课程号 char(3) not null , 课程名 char(20) not null, 开课学期 enum('1','2','3','4','5','6','7','8') not null default '1', 学时 tinyint not null , 学分 tinyint not null default 0 )auto_increment=5

create table XS_KC( 学号 char(7) , 课程号 char(3), 成绩 tinyint default 0, primary key (学号,课程号) )

三、    使用语句对以上的表结构进行修改 1.修改学生情况表(XS)的“姓名”字段,使其数据类型改为varchar(10),且允许为空。

alter table XS modify 姓名 varchar(10) 

2.删除学生与课程表(XS_KC)中的“学分”字段。

alter table XS_KC drop 学分

3.修改学生情况表(XS),删除“班级”字段。

alter table XS drop 班级

4.修改学生情况表(XS),增加一“专业”字段(varchar(20),   默认值为“计算机”)。

alter table XS add 专业 varchar(20) default '计算机'

5.修改课程表(KC),把字段“学时”的名称改为“总学时”。  

alter table KC change 学时 总学时 tinyint default 0

四、    用insert语句向数据库STUxxxx的XS表、KC表和XS_KC表中插入如下数据:

学生情况表(XS) 学号    姓名    性别    出生日期    专业    总学分    是否团员    身份证号码    备注 4102101    王林    男    1983-1-23    计算机    null    1    null    NULL 4102102    吴荣华    女    1984-3-28    计算机    null    0    null    NULL 4202103    张强    男    1981-11-19    电子    NULL    1    null    NULL 4202110    王向荣    男    1980-12-9    电子    null    0    111111111 111111111    NULL 4202221    李丽    女    1982-7-30    电子    NULL    1    null    NULL 4302101    刘明    男    1982-10-18    自控    null    1    null    NULL 4402130    叶凡    男    1983-11-18    数学    null    1    null    转专业学习

insert into XS (学号,姓名,性别,出生日期,专业,是否团员,身份证号码,备注)  values (4102101,'王林','男','1983-1-23','计算机','1','',''), (4102102,'吴荣华','女','1984-3-28','计算机','0','',''), (4202103,'张强','男','1981-11-19','电子','1','',''), (4202110,'王向荣','男','1980-12-9','电子','0','111111111111111111',''), (4202221,'李丽','女','1982-7-30','电子','1','',''), (4302101,'刘明','男','1982-10-18','自控','1','',''), (4402130,'叶凡','男','1982-11-18','数学','1','','转专业学习')

课程表(KC) 课程号    课程名    开课学期    学时    学分 101    计算机基础    1    48    3 102    C语言    2    80    5 103    数据库    4    64    4 201    离散数学    6    64    4 202    计算机网络    7    64    4 301    软件工程    6    64    4

insert into KC (课程号,课程名,开课学期,学时,学分) VALUES ('101','计算机基础','1',48,3), ('102','C语言','2',80,5), ('103','数据库','4',64,4), ('201','离散数学','6',64,4), ('202','计算机网络','7',64,4), ('301','软件工程','6',64,4)

学生与课程表(XS_KC) 学号    课程号    成绩 4102101    101    80 4102101    102    89 4102101    103    78 4102102    101    57 4102102    102    67 4202103    103    90 4202110    101    85 4202110    102    91 4202221    101    69 4402130    101    78 4402130    103    74

insert into XS_KC (学号,课程号,成绩) values  ('4102101','101',80), ('4102101','102',89), ('4102101','103',78), ('4102102','101',57), ('4102102','102',67), ('4202103','103',90), ('4202110','101',85), ('4202110','102',91), ('4202221','101',69), ('4402130','101',78), ('4402130','103',74)

五、    数据的插入、删除和修改 1.    将KC表中总学时超过60的课程对应的学分增加1分。

update KC set 总学时=总学时+1 where 总学时>60 

2.    将XS表中学号为“4102101”的同学的总学分增加4分,备注改为“提前修完一门课程”。

update XS set 总学分 = 总学分+4,备注='提前修完一门课程'    where 学号='4102101'

3.    将XS_KC表中学号为“4102101”的同学的“计算机基础”课程的成绩增加10分。

update XS_KC  set 成绩 =成绩+10  where 学号='4102101' and 课程号= (     SELECT 课程号     from KC     where 课程名 = '计算机基础' )

4.    将XS_KC表计算机专业所有学生的各科成绩均提高5%。

UPDATE XS_KC set 成绩 = 成绩*1.05 where 学号 in (     select 学号     from XS      where 专业='计算机' )

5.    将XS_KC表中“数据库”课程的所有成绩信息删除。

delete  from XS_KC where 课程号 in(     SELECT 课程号     from  KC     where 课程名 = '数据库' )

6.    将XS_KC表中其学号在XS表中不存在或其课程号在KC表中不存在的学生的成绩信息删除。

delete  #SELECT * from XS_KC where 学号 not in (     select 学号     from XS

) or 课程号 not in (     select 课程号     from KC )

7.    创建新表XS1,该表的结构与数据与XS表完全一样。

create table XS1 like XS; insert into XS1 select * from XS;

8.    删除XS1表中前两个同学的基本信息。

delete from XS1 limit 2

9.    删除XS1表中的所有数据。

delete from XS1  

相关推荐: