数据库sql语句笔试题--包含创建数据库、表、插入记录、查询等操作

数据库笔试题,包含创建数据库、表、插入记录、查询等操作


以下是sql server语句,因为自己电脑上没有装sql server,只装了mysql,所以悲剧了,在创建数据库的时候一直报错,以为自己的语句写的有问题,到后来才把sql语句复制到 sql server上能完美运行时,才幡然醒悟!但后面sql语句是用mysql写的,运行都没问题,我想应该是差不多的吧。

1.    创建数据库。要求用SQL语句创建满足如下要求的数据库:

(1)    数据库名称为School;

(2)    主数据文件:逻辑名为SchoolData,文件名为“D:\School\SchoolData.mdf”,文件初始大小为50MB,文件的最大大小不受限制,文件的增长率为20%。

(3)    日志文件:逻辑名为SchoolLog,文件名为“D:\School\SchoolLog.ldf,”文件初始大小为10MB,文件的最大大小为50MB,文件的增长率为1MB;

create database School
on primary
(name='SchoolData',
filename='D:\School\SchoolData.mdf',
size=50MB,
maxsize=unlimited ,
filegrowth=20%)
log on(
name='SchoolLog',
filename='D:\School\SchoolLog.ldf',
size=10MB,
maxsize=50MB,
filegrowth=1MB
)

2.    创建数据类型和表,增加约束。

(1)    表tblstudent(学生表):

列名

数据类型

可空性

约束

备注

stuID

bigint

非空

primary key

学号

stuName

nvarchar(10)

非空

 

姓名

stuSex

nchar(1)

非空

只能是‘男’或‘女’

性别

stuBirth

datetime

可空

小于系统当前时间getdate()

出生日期

stuNum

nvarchar(18)

可空

Unique

身份证号

Departed

int

可空

 

系号

City

nvarchar(10)

可空

默认是“杭州”

城市

stuTelphone

type_telphone

可空

 

电话号码

sql语句如下:

create table tblstudent(
stuID bigint primary key,
stuName nvarchar(10) not null,
stuSex nchar(1) not null,
stuBirth datetime,
stuNum nvarchar(18) unique,
Departed int,
City nvarchar(10) default '杭州' ,//设置默认值
constraint ck_tblstudent_stusex check(stuSex IN('男','女') ),//建立约束
constraint ck_tblstudent_stuBirth check(stuBirth

(2)    表tblscore(成绩表):

列名

数据类型

可空性

约束

备注

stuID

bigint

非空

foreign key 引用tblstudent中的stuID

学号

Math

Int

可空

0~100分

数学

English

Int

可空

0~100分

英语

Computer

Int

可空

0~100分

计算机

Summary

Int

可空

 

总计

 SQL语句如下:

create table tblscope(
stuID bigint ,
Math int,
English int,
Computer int,
Summary int,
/*建立外键约束*/
constraint stuID_FK foreign key (stuID) references tblstudent(stuID),
constraint ck_tblscope_Math CHECK(Math between 0 and 100 or Math is null),
constraint ck_tblscope_English CHECK(English between 0 and 100 or English is null),
constraint ck_tblscope_Computer CHECK(Computer between 0 and 100 or Computer is null)
)

3.使用SQL语句插入下表中的数据:

(1)tblstudent(学生表):

stuID

stuName

stuSex

stuBirth

stuNum

Departed

City

stuTelphone

1001

赵毅

1990 /1/1

510111199001014279

1

杭州

1324362888

1002

钱尔

1993 /2/2

110008199302022325

2

杭州

1776789999

(2)tblscope(成绩表):

stuID

Math

English

Computer

Summary

1001

70

80

90

null

1002

45

55

60

null

使用SQL语句插入表(2)tblscope中的数据(在插入下表数据之前,tblstudent表中必须有对应的stuID),语句如下:

/*批量插入,当添加一条新的记录时,可以省略字段名,但每个字段都必须有值)*/
insert into tblscope values(1001,70,80,90,null),(1002,45,55,60,null);

4.找出总成绩最高的学生的学号和姓名

 SQL语句如下:

/*第一步:从tblscope表中找出最高成绩*/
select  max(Math+English+Computer) from tblscope 

/*第二步:从tblscope表中找出总成绩=最高分的那位学生ID*/
select stuID from tblscope group by stuID having 
sum(Math+English+Computer)=(select  max(Math+English+Computer) from tblscope )

/*第三步:根据最高分查出来的学生stuID再来查询学生信息*/
select stuID,stuName from tblstudent where stuID=
(select stuID from tblscope group by stuID having 
sum(Math+English+Computer)=(select  max(Math+English+Computer) from tblscope ))

5.统计男生女生的人数

SQL语句如下:

select stuSex as '性别',count(*) as '人数 'from tblstudent group by stuSex
查询结果:

数据库sql语句笔试题--包含创建数据库、表、插入记录、查询等操作_第1张图片

注:这是某家公司校招的数据库笔试题,以上答案都是自己写的,如有不对之处,敬请指正!



你可能感兴趣的:(sql)