SQL考试卷与答案1(附加对分组查询的个人理解)

笔试题
1、数据库的完整性有哪些?
域完整性:not null、check、default
参照完整性:外键
实体完整性:主键、唯一、自增
2、什么是主键?
信息不能重复,唯一的,不能为null,一个表中只有一个主键,用于识别每一条信息
3、写出在数据库中我们常用的3个逻辑运算符?
Or and not
|| && !
4、什么是外键?
通过外键可以连接另一张表,表示他们之间用于主外键关系,可以将两张表通过sql语句作为一张表进行操作
5、写出5个常见的数据库软件?
Mysql sqlserver db2 sqllite oracle
6、在SQLSERVER中需要在性别这一列添加检查约束,限制值为”男”或”女”,写出关键代码?
Sex: check(sex=’男or sex=’女’)
7、右连接的语法和特点是什么?
Select * from a right join b on a.id=b.id
特点:当进行右连接查询的时候,在右侧表信息如果左侧没有,就以null显示,会完全显示右侧表的信息
8、删除数据库使用到的sql语句的语法是什么?
Drop database 数据库名
9、常见的聚合函数有哪些?(请写出5个)
Sum():求总和
Avg():平均值
Max():最大值
Min():最小值
Count():求条数
10、以id字段进行升序排序,写出关键的代码?
Order by id asc
机试题
1、 使用命令创建一个名字为stud的数据库
create database stud;
create table student(
Id nvarchar(50),
Name nvarchar(20),
Gender nvarchar(10),
Height float,
Weight float,
Age int,
Class nvarchar(50)
)
2、使用sql在表中插入数据如下(需要上交插入数据的sql语句):
insert into student values('10001','刘备','男',175,160,25,'N0001')
insert into student values('10002','关羽','男',160,150,27,'N0001')
insert into student values('10003','孙权','男',170,150,30,'N0001')
insert into student values('10004','鲁肃','男',175,130,18,'N0002')
insert into student values('10005','庞统','男',180,140,21,'N0002')
insert into student values('10006','貂蝉','女',178,120,18,'J0001')
insert into student values('10006','孙尚香','女',175,110,20,'J0001')
insert into student values('10006','吕布','女',185,150,22,'J0001')
2、 请查询出N0002班的所有学生信息?(写出sql语句)
select * from student where Class=’N0002’
3、 请查询出姓孙的所有学生信息?(写出sql语句)
select * from student where Name like’孙%’
4、 请统计出每个班级有多少人?(需要显示人数和班级)(写出sql语句)
select Class ,count(*)from student group by Class
分组查询中如果只group by 后面只跟一个列名,则select后面只跟两个列名(但select后面始终可以加加任意数量的聚合函数)