求MySQL数据库选择题答案
select `stu_id`,avg(`grade`),sum(`grade` 《 60) as num from score group by `stu_id` having num 》=2‘
avg(`grade`):求平均值
sum(`grade` 《 60) :统计小于六十分的个数
group by `stu_id` :按照uid统计
having num 》=2:判断统计的个数大于2
这两种题型mysql数据库结构应该怎么设计,B形题和A3A4题
一、不定项选择题(共40题,每小题2.5分,总分100分)1.数据库管理系统的发展历经了如下那些模型阶段(ACDE)A.层次模型B.结构模型C.关系模型D.网状模型E.对象模型2.关系型数据库的核心单元是(B)A.对象B.表C.行D.列3.对于关系型数据库来说,表之间存在下面那些关系(ABC)A.一对一关系B.一对多关系C.多对多关系D.继承关系4.在SQL中,下面对于数据定义语言(DDL)描述正确的是(D)。A.DDL关心的是数据库中的数据B.完成数据的增、删、改、查操作C.控制对数据库的访问D.定义数据库的结构5.MySQL是一种(C)数据库管理系统。A.层次型B.网络型C.关系型D.对象型6.SQL中,下列操作有语法错误的是(B)A.AGEISNOTNULLB.NOT(AGEISNULL)C.SNAME=‘王五’D.SNAME=‘王%’7.SQL中,下列关于创建、管理数据库的操作语句不正确的是(CDE)A.CREATEDATABASEInstantB.USEInstantC.NEWDATABASEInstantD.ConnectionInstantE.DeleteDATEBASEInstant8.在MySQL中,不存在的数据类型是(F)。A.INTB.TEXTC.DECIMALD.VARCHARE.DATETIMEF.VARCHAR29.在MySQL中,下列关于创建数据库表的描述正确的是(C)。A.在创建表时必须设定列的约束B.在删除表的时候通过外键约束连接在一起的表会被一同删除C.在创建表时必须设置列类型D.通过CREATETABLEnew_tSELECT*FROMold_t复制表的同时,表的约束能够一起被复制到新表中10.根据数据完整性实施的方法,可以将其分为(ACDF)A.实体完整性B.表完整性C.域完整性D.引用完整性E.记录完整性F.用户自定义完整性11.下面关于域完整性的方法,不正确的是(A)。A.主键约束B.外键约束C.检查约束D.非空约束E.默认值12.下面关于创建和管理索引正确的描述是(C)。A.创建索引是为了便于全表扫描B.索引会加快DELETE、UPDATE和INSERT语句的执行速度C.索引被用于快速找到想要的记录D.大量使用索引可以提高数据库的整体性能13.SQL中,“AGEIN(20,22)”的语义是(D)。A.AGE=20B.AGE20C.AGE=20ANDAGE=22D.AGE=20ORAGE=2214.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于(C)A.实体完整性约束B.参照完整性约束C.用户自定义完整性约束D.关键字完整性约束15.下面SQL是来源于考试成绩表t_exam:学号stuId、科目编号subId、成绩score,考试日期:ex_date。有以下sql,它表示的意思是:(B)Selectstu_id,subId,count(*)asxFromt_examWhereex_date=’2008-08-08’Groupstu_id,subIdHavingcount(*)》1OrderbyxdescA.找出’2008-08-08’这天某科考试2次及以上的学生记录B.找出’2008-08-08’这天,某科考试2次及以上的学生记录,考试次数多的放在前面C.找出’2008-08-08’这天,某科考试2次及以上的学生记录,考试次数少的放在前面D.根据学号和学科分组,找出每个人考试科数,最后考试次数多的放在前面16.EMP表如下所示,下面哪些SQL语句的返回值为3:(BD)EMP雇员号雇员名部门号工资 001 张山 02 2000010 王宏达 01 1200056 马林生 02 1000101 赵敏04 A.selectcount(*)fromempB.selectcount(distinct部门号)fromempC.selectcount(*)fromempgroupby雇员号D.selectcount(工资)fromemp17.下面那一项不是SELECT语句对数据的操作:(D)A.投影B.联接C.并D.级联18.下面关于SQL数据查询操作描述正确的有:(ABD)A.投影操作是选择对表中的哪些列进行查询操作B.使用DISTINCT关键字可以过滤查询中重复的记录C.在模糊查询中,通配符“%”表示匹配单个字符,而“_”表示匹配零个或多个字符D.在MySQL中使用LIMIT关键字限制从数据库中返回记录的行数19.在SQL语言中,条件“BETWEEN20AND30”表示年龄在20到30之间,且(A)。A.包括20岁和30岁B.不包括20岁和30岁C.包括20岁,不包括30岁D.不包括20岁,包括30岁20.SQL语言中,删除EMP表中全部数据的命令正确的是(C)。A.delete*fromempB.droptableempC.truncatetableempD.没有正确答案21.有关索引的说法错误的是(AD)A.索引的目的是为增加数据操作的速度B.索引是数据库内部使用的对象C.索引建立得太多,会降低数据增加删除修改速度D.只能为一个字段建立索引22.下列哪个关键字在Select语句中表示所有列(A)A.*B.ALLC.DESCD.DISTINCT23.在表中设置外键实现的是哪一类数据完整性(B)A.实体完整性B.引用完整性C.用户定义的完整性D.实体完整性、引用完整性和用户定义的完整性24.下面正确表示Employees表中有多少非NULL的Region列的SQL语句是(B)A.SELECTcount(*)fromEmployeesB.SELECTcount(ALLRegion)fromEmployeesC.SELECTcount(DistinctRegion)fromEmployeesD.SELECTsum(ALLRegion)fromEmployees25.下面可以通过聚合函数的结果来过滤查询结果集的SQL子句是(C)A.WHERE子句B.GROUPBY子句C.HAVING子句D.ORDERBY子句26.t_score(stu_id,sub_id,score),即成绩表(学号,科目编号,成绩)。学生如果某科没有考试,则该科成绩录入null。能够获取各位学生的平均成绩的选项是(A)A.selectavg(nvl(socre,0))fromscoregroupbystu_idB.selectstu_id,avg(sorce)fromscoreC.selectstu_id,avg(score)fromscoreD.selectstu_id,sum(score)/count(score)fromscore27.若要求查找S表中,姓名的第一个字为’王’的学生学号和姓名。下面列出的SQL语句中,哪个是正确的(B)A.SELECTSno,SNAMEFROMSWHERESNAME=′王%′B.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王%′C.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王_′D.全部28.若要求“查询选修了3门以上课程的学生的学生号”,正确的SQL语句是(B)A.SELECTSnoFROMSCGROUPBYSnoWHERECOUNT(*)》3B.SELECTSnoFROMSCGROUPBYSnoHAVING(COUNT(*)》3)C.SELECTSnoFROMSCORDERBYSnoWHERECOUNT(*)》3D.SELECTSnoFROMSCORDERBYSnoHAVINGCOUNT(*)》=329.对下面的查询语句描述正确的是(D)SelectStudentID,Name,(selectcount(*)fromStudentExamwhereStudentExam.StudentID=Student.StudentID)asExamsTakenfromStudentorderbyExamsTakendescA.从Student表中查找StudentID和Name,并按照升序排列B.从Student表中查找StudentID和Name,并按照降序排列C.从Student表中查找StudentID、Name和考试次数D.从Student表中查找StudentID、Name,并从StudentExam表中查找与StudentID一致的学生考试次数,并按照降序排列30.下面题基于学生-课程数据库中的三个基本表:学生信息表:s(sno,sname,sex,age,dept)主键为sno课程信息表:c(cno,cname,teacher)主键为cno学生选课信息表:sc(sno,cno,grade)主键为(sno,cno)“从学生选课信息表中找出无成绩的学生信息”的SQL语句是(Cd)A.SELECT*FROMscWHEREgrade=NULLB.SELECT*FROMscWHEREgradeIS‘’C.SELECT*FROMscWHEREgradeISNULLD.SELECT*FROMscWHEREgrade=‘’31.当子查询返回多行时,可以采用的解决法是(C)。A.使用聚合函数B.Where条件判断C.使用IN运算符D.使用Groupby进行分组32.下面关于在子查询中使用运算符描述不正确的是(D)。A.使用IN运算符用于查找字段值属于某一组值的行B.使用Exists运算符用于测试子查询是否返回行,如果返回其值就为真C.使用ALL运算符用于测试子查询结果集的所有行是否满足指定的条件D.使用Any运算符用于测试子查询结果集中的一行或多行不满足指定的条件33.下面关于组合查询描述不正确的是(D)。A.从一个表中获取的数据必须和其它表中的数据具有相同的列数B.两个表中相对应的列必须具有相同的数据类型C.UNION的结果集列名与第一个SELECT语句的结果集中的列名相同D.UNION的结果集列名与第二个SELECT语句的结果集中的列名相同E.UNIONALL运算符返回每个数据集的所有成员34.下面关于联接的描述正确的是(A)。A.内联接使用比较运算符根据每个表共有的列值来匹配两个表中的行B.左外联接结果集包含从右边的表返回的所有行C.右外联接结果集包含从左边的表返回的所有行D.全外联接返回左表和右表中的所有匹配的行35.下面关于数据库设计过程正确的顺序描述是(C)。A.需求收集和分析、逻辑设计、物理设计、概念设计B.概念设计、需求收集和分析、逻辑设计、物理设计C.需求收集和分析、概念设计、逻辑设计、物理设计D.需求收集和分析、概念设计、物理设计、逻辑设计36.ER图属于下面哪一种数据库设计模型(B)。A.物理数据模型B.概念数据模型C.逻辑数据模型D.需求模型37.非主键必须完全依赖于主键列,这属于下列范式的内容(BC)A.1NFB.2NFC.3NFD.都没有的38.如果一个字段的数据必须来源另一个表的主键,那么要在这个字段上建立(B)。A.PK(主键)B.FK(外键)C.UK(唯一键)D.复合主键39.根据三个范式的定义,下面哪个选项的设计是正确的(C)职工编号姓名工种车间车间主任1001李宁车工一车间周杰1002王海铣工一车间周杰1003赵亮钳工二车间吴明1001李宁钳工二车间吴明A.员工表、工种表、车间表B.员工表、工种表、车间表、车间主任表C.员工表、工种表、车间表、员工工种表、员工车间表D.以上设计均不正确40.下列说法中,哪些是正确的(BD)A.RDBMS是数据库管理系统的简称B.各行记录都不能重复,是第二范式要求的C.在数据库设计中一定要满足第三范式D.索引越多,查询越快,数据更新越慢
MySQL习题 求数据库高手解答
create table stu1 (
Id int auto_increment primary KEY,
Name VARCHAR(20) not null ,
Sex varchar(4) ,
Brith Date ,
department VARCHAR(20)not null,
address VARCHAR(50)
)
create table score(
Id INT auto_increment PRIMARY KEY,
stu_id int,
FOREIGN KEY(stu_id) REFERENCES stu1(Id) on DELETE CASCADE,
C_name VARCHAR(20),
grade int
)
SELECT *from stu1
INSERT INTO stu1 VALUES( 901,’张老大’, ’男’,’1985-06-05’,’计算机系’, ’北京市海淀区’);
INSERT INTO stu1 VALUES( 902,’张老二’, ’男’,’1986-06-05’,’中文系’, ’北京市昌平区’);
INSERT INTO stu1 VALUES( 903,’张三’, ’女’,’1990-06-05’,’中文系’, ’湖南省永州市’);
INSERT INTO stu1 VALUES( 904,’李四’, ’男’,’1990-06-05’,’英语系’, ’辽宁省阜新市’);
INSERT INTO stu1 VALUES( 905,’王五’, ’女’,’1991-06-05’,’英语系’, ’福建省厦门市’);
INSERT INTO stu1 VALUES( 906,’王六’, ’男’,’1988-06-05’,’计算机系’, ’湖南省衡阳市’);
SELECT *from Score
INSERT INTO score(stu_id,C_name,grade) VALUES(901, ’计算机’,98);
INSERT INTO score(stu_id,C_name,grade) VALUES(901, ’英语’, 80);
INSERT INTO score(stu_id,C_name,grade) VALUES(902, ’计算机’,65);
INSERT INTO score(stu_id,C_name,grade) VALUES(902, ’中文’,88);
INSERT INTO score(stu_id,C_name,grade) VALUES(903, ’中文’,95);
INSERT INTO score(stu_id,C_name,grade) VALUES(904, ’计算机’,70);
INSERT INTO score(stu_id,C_name,grade) VALUES(904, ’英语’,92);
INSERT INTO score(stu_id,C_name,grade) VALUES(905, ’英语’,94);
INSERT INTO score(stu_id,C_name,grade) VALUES(906, ’计算机’,90);
INSERT INTO score(stu_id,C_name,grade) VALUES(906, ’英语’,85);
/*查询 student 表的第 2 条到 4 条记录*/
SELECT * from stu1 LIMIT 2,2;
/*从 student 表中查询计算机系和英语系的学生的信息*/
SELECT *from stu1 WHERE department in(’计算机系’,’英语系’);
/*从 student 表中查询年龄 18~22 岁的学生信息*/
SELECT YEAR(’1990-09-09’)
SELECT YEAR(NOW())-YEAR(’1990-09-09’);
SELECT s.Name,s.age,s.Brith from (SELECT *,YEAR(NOW())-YEAR(Brith)as age FROM stu1)as s WHERE s.age》23 and s.age《28;
/*8.从 student 表中查询每个院系有多少人*/
SELECT department,COUNT(id) from stu1 GROUP BY(department);
/*从 score 表中查询每个科目的最高分*/
(SELECT C_name,max(grade)as scote_m from Score GROUP BY C_name)as h
SELECT id,h.C_name,h.scote_m FROM score,(SELECT C_name,max(grade)as scote_m from Score GROUP BY C_name)as h
WHERE h.C_name=Score.C_name and h.scote_m=Score.grade;
/*10.查询李四的考试科目(c_name)和考试成绩(grade)*/
SELECT name,C_name,grade from stu1,score where name=’李四’and stu1.id=score.stu_id
SELECT stu_id,C_name,grade FROM score WHERE stu_id in(SELECT id FROM stu1 where name=’李四’)
/*12.计算每个学生的总成绩*/
SELECT grade_sum_t.grade_sum,grade_sum_t.stu_id,NAME,department FROM stu1,
(SELECT sum(grade)as grade_sum,stu_id from score GROUP BY stu_id )as grade_sum_t
where grade_sum_t.stu_id=stu1.id;
/*13.计算每个考试科目的平均成绩*/
SELECT C_name,AVG(grade) from score GROUP BY C_name
/*14.查询计算机成绩低于 95 的学生信息*/
SELECT * FROM stu1 WHERE id IN(SELECT stu_id from score WHERE C_name=’计算机’ AND grade《95);
/*15.查询同时参加计算机和英语考试的学生的信息*/
SELECT * FROM stu1 WHERE id IN(
SELECT stu_id FROM score WHERE C_name=’英语’ AND stu_id in(
SELECT stu_id FROM score WHERE C_name=’计算机’))
/*16.将计算机考试成绩按从高到低进行排序*/
/*18.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩*/
SELECT Name,department,C_name,grade FROM stu1,score WHERE stu1.id=score.stu_id AND (Name LIKE ’王%’ OR Name LIKE ’张%’);
SELECT *from Score
/*19.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩*/
SELECT YEAR(NOW())-YEAR(Brith) FROM stu1;
SELECT Name,YEAR(NOW())-YEAR(Brith) as age,department,C_name,grade FROM stu1,score WHERE stu1.Id=score.stu_id AND address LIKE ’湖南%’ ;
/*20-*/
INSERT INTO score(stu_id,C_name,grade) VALUES(903, ’物理’,80);
INSERT INTO score(stu_id,C_name,grade) VALUES(903, ’化学’,53);
INSERT INTO score(stu_id,C_name,grade) VALUES(903, ’生物’,59);
INSERT INTO score(stu_id,C_name,grade) VALUES(904, ’物理’,55);
INSERT INTO score(stu_id,C_name,grade) VALUES(904, ’化学’,56);
INSERT INTO score(stu_id,C_name,grade) VALUES(904, ’生物’,50);
INSERT INTO score(stu_id,C_name,grade) VALUES(905, ’物理’,100);
INSERT INTO score(stu_id,C_name,grade) VALUES(905, ’化学’,90);
INSERT INTO score(stu_id,C_name,grade) VALUES(905, ’生物’,54);
SELECT stu_id,AVG(grade) FROM score WHERE stu_id IN(SELECT stu_id FROM score1 WHERE grade《60 GROUP BY stu_id HAVING COUNT(stu_id)》=2)GROUP BY stu_id
SELECT *FROM score1
mysql数据库题,只要答案截图,求帮帮忙
摘要
请按照以下顺序创建这4张表
1.首先
创建student和teacher表
2.其次
创建score成绩表和course课程表
注意:
1.假如 student表和 teacher表没有创建出来,在创建 score表或者 course表的时候, 当设置外键的时候会提示字段或表不存在。
2.所以需要首先创建出来 student和 teacher表,在创建 score和 course表
数据库中共有4张表,每张表的详细情况如下
1、student学生表属性
属性名数据类型长度是否为空注释
Snochar3否学号(主键)
Snamechar8否学生姓名
Ssexchar2否学生性别
Sbirthdaydatetime0是学生生日
Sclasschar5是学生所在班级
2、course课程表属性
属性名数据类型长度是否为空注释
Cnochar5否课程号(主键)
Cnamevarchar10否课程名称
Tnochar3否教工号(外键)
3、score成绩表属性
属性名数据类型长度是否为空注释
Snochar3否学号(主键)
Cnochar5否课程号(主键+外键)
Degreedecimal10是成绩
4、teacher教师表属性
属性名数据类型长度是否为空注释
Tnochar3否教工号(主键)
Tnamechar4否教工姓名
Tsexchar2否教工性别
Tbirthdaydatetime0是教工生日
Profchar6是教工职称
Departvarchar10否教工所在专业
表格中的数据如下所示:
1、student表数据
SnoSnameSsexSbirthdaySclass
108曾华男1977-09-0195033
105匡明男1975-10-0295031
107王丽女1976-01-2395033
101李军男1976-02-2095033
109王芳女1975-02-1095031
103陆君男1974-06-0395031
2、course表数据
CnoCnameTno
3-105计算机导论825
3-245操作系统804
咨询记录 · 回答于2021-04-22
mysql数据库题,只要答案截图,求帮帮忙
您好,您的问题我已经看到了,正在整理答案,请稍等一会儿哦~
请按照以下顺序创建这4张表
1.首先
创建student和teacher表
2.其次
创建score成绩表和course课程表
注意:
1.假如 student表和 teacher表没有创建出来,在创建 score表或者 course表的时候, 当设置外键的时候会提示字段或表不存在。
2.所以需要首先创建出来 student和 teacher表,在创建 score和 course表
数据库中共有4张表,每张表的详细情况如下
1、student学生表属性
属性名数据类型长度是否为空注释
Snochar3否学号(主键)
Snamechar8否学生姓名
Ssexchar2否学生性别
Sbirthdaydatetime0是学生生日
Sclasschar5是学生所在班级
2、course课程表属性
属性名数据类型长度是否为空注释
Cnochar5否课程号(主键)
Cnamevarchar10否课程名称
Tnochar3否教工号(外键)
3、score成绩表属性
属性名数据类型长度是否为空注释
Snochar3否学号(主键)
Cnochar5否课程号(主键+外键)
Degreedecimal10是成绩
4、teacher教师表属性
属性名数据类型长度是否为空注释
Tnochar3否教工号(主键)
Tnamechar4否教工姓名
Tsexchar2否教工性别
Tbirthdaydatetime0是教工生日
Profchar6是教工职称
Departvarchar10否教工所在专业
表格中的数据如下所示:
1、student表数据
SnoSnameSsexSbirthdaySclass
108曾华男1977-09-0195033
105匡明男1975-10-0295031
107王丽女1976-01-2395033
101李军男1976-02-2095033
109王芳女1975-02-1095031
103陆君男1974-06-0395031
2、course表数据
CnoCnameTno
3-105计算机导论825
3-245操作系统804
欧克欧克
求MYSQL数据库答案
1、先用NavicatforMySQL创建名字为shopping的数据库,如下图所示:2、创建的shopping数据库上运行已有的.sql文件,要注意上面创建的数据库名字shopping最好和原先.sql文件中的名字一样,也可以不一样,如果不一样的话会自动生成原来.sql文件中SQL语句中所命名的数据库。此时,可以把上面创建的shopping数据库删除了就可以,直接用自动生成的就行。运行.sql步骤如下:右键你刚才创建的shopping数据库——》运行sql文件——》选择.sql文件位置——执行即可。创建好的数据库如下所示:
SQL测试题(注:最佳答案必须能在MySQL下运行)
/*
闲着没事,瞅瞅百度上的问题,今天天晚了,先解决一个,另一个明儿个再说了!
第二道题也算已经搞定了!
环境 : mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
参考 :
exist与in 的区别
http://blog.csdn.net/change888/archive/2008/03/31/2232778.aspx
*/
/*********************************问题 1 **************************************/
drop table if exists s;
create table if not exists s (s varchar(32), sn varchar(32), sd varchar(32),
sa int);
insert into s values (’s1’, ’朱’, ’开发本部’, 23);
insert into s values (’s2’, ’牛’, ’人事部’, 25);
insert into s values (’s3’, ’杨’, ’财务部’, 26);
insert into s values (’s4’, ’马’, ’开发本部’, 22);
insert into s values (’s5’, ’吕’, ’人事部’, 27);
insert into s values (’s6’, ’于’, ’开发本部’, 28);
insert into s values (’s7’, ’侯’, ’开发本部’, 28);
drop table if exists c;
create table if not exists c (c varchar(32), cn varchar(32));
insert into c values (’c1’, ’软件工程’);
insert into c values (’c2’, ’计算机技术与科学’);
insert into c values (’c3’, ’车辆工程’);
drop table if exists sc;
create table if not exists sc (s varchar(32), c varchar(32));
insert into sc values (’s1’, ’c1’);
insert into sc values (’s1’, ’c2’);
insert into sc values (’s1’, ’c3’);
insert into sc values (’s2’, ’c1’);
insert into sc values (’s2’, ’c3’);
insert into sc values (’s3’, ’c2’);
insert into sc values (’s4’, ’c2’);
insert into sc values (’s4’, ’c3’);
insert into sc values (’s5’, ’c1’);
insert into sc values (’s6’, ’c3’);
/* 1. 查询选修课程名称为 “软件工程” 的学员学号和姓名 */
select s.s ’学号’, s.sn ’姓名’ from s where s.s in
(select sc.s from sc where sc.c in
(select c.c from c where c.cn = ’软件工程’));
/* 2. 查询选修课程编号为 “C2” 的学员姓名和所属单位 */
select s.sn ’姓名’, s.sd ’所属单位’ from s where s.s in
(select sc.s from sc where sc.c = ’C2’);
/* 3. 查询选修课程编号 不 为 “C2” 的学员姓名和所属单位 */
select s.sn ’姓名’, s.sd ’所属单位’ from s where
s.s not in (select sc.s from sc where sc.c = ’C2’)
and
s.s in (select sc.s from sc);
/* 4. 查询选修全部课程的学员姓名和所属单位 */
select s.sn ’姓名’, s.sd ’所属单位’ from s where
(select count(DISTINCT sc.c) from sc where sc.s = s.s)
=
(select count(DISTINCT c.c) from c );
/* 5. 查询选修了课程的学员人数 */
select count(DISTINCT sc.s) ’人数’ from sc;
/* 6. 查询选修课程 》= 2 门的学员学号和所属单位 (不得不用 CASE 语句了)*/
select s.sn ’姓名’, s.sd ’所属单位’ from s where s.s in
(select CASE WHEN count(DISTINCT sc.c) 》=2 THEN sc.s END from sc group by sc.s );
/* 运行结果
————————————1
+——+——+
| 学号 | 姓名 |
+——+——+
| s1 | 朱 |
| s2 | 牛 |
| s5 | 吕 |
+——+——+
————————————2
+——+———-+
| 姓名 | 所属单位 |
+——+———-+
| 朱 | 开发本部 |
| 杨 | 财务部 |
| 马 | 开发本部 |
+——+———-+
————————————3
+——+———-+
| 姓名 | 所属单位 |
+——+———-+
| 牛 | 人事部 |
| 吕 | 人事部 |
| 于 | 开发本部 |
+——+———-+
————————————4
+——+———-+
| 姓名 | 所属单位 |
+——+———-+
| 朱 | 开发本部 |
+——+———-+
————————————5
+——+
| 人数 |
+——+
| 6 |
+——+
————————————6
+——+———-+
| 姓名 | 所属单位 |
+——+———-+
| 朱 | 开发本部 |
| 牛 | 人事部 |
| 马 | 开发本部 |
+——+———-+
*/
/*********************************问题 2 **************************************/
drop table if exists s ;
create table if not exists s ( sno varchar(32), sname varchar(32));
insert into s values (’s1’, ’朱’);
insert into s values (’s2’, ’牛’);
insert into s values (’s3’, ’杨’);
insert into s values (’s4’, ’马’);
insert into s values (’s5’, ’吕’);
insert into s values (’s6’, ’于’);
insert into s values (’s7’, ’侯’);
drop table if exists c;
create table if not exists c ( cno varchar(32), cname varchar(32),
cteacher varchar(32));
insert into c values (’c1’, ’数学’, ’张’);
insert into c values (’c2’, ’日语’, ’李’); /*假设李老师同时教授日语和英语*/
insert into c values (’c3’, ’英语’, ’李’);
drop table if exists sc;
create table if not exists sc (sno varchar(32), cno varchar(32),
scgrade double);
insert into sc values (’s1’, ’c1’, 75);
insert into sc values (’s1’, ’c2’, 70);
insert into sc values (’s1’, ’c3’, 80);
insert into sc values (’s2’, ’c1’, 50);
insert into sc values (’s2’, ’c3’, 40);
insert into sc values (’s3’, ’c1’, 50);
insert into sc values (’s3’, ’c2’, 60);
insert into sc values (’s4’, ’c1’, 90);
insert into sc values (’s4’, ’c2’, 40);
insert into sc values (’s4’, ’c3’, 20);
insert into sc values (’s5’, ’c1’, 80);
insert into sc values (’s6’, ’c1’, 85);
/* 1. 没有 选 修过“李”老师讲授课程的所有学生姓名 */
select s.sname ’姓名’ from s where s.sno not in
(select sc.sno from sc where sc.cno in
(select c.cno from c where c.cteacher = ’李’));
/* 2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩 */
select s.sname ’姓名’, AVG(sc.scgrade) ’平均成绩’ from s, sc
where s.sno = sc.sno
and
(select count(sc.sno) from sc where sc.sno = s.sno
and sc.scgrade 《 60 ) 》= 2
group by s.sno;
/* 3. 列出既学过“C1”号课程,又学过“C2”号课程的所有学生姓名 */
select s.sname ’姓名’ from s where s.sno in
(select t1.sno from sc t1, sc t2
where t1.sno = t2.sno and t1.cno = ’c1’ and t2.cno = ’c2’);
/*或者*/
select s.sname ’姓名’ from s where s.sno in
(select sc.sno from sc where sc.cno = ’c1’ and sc.sno in
(select t1.sno from sc t1 where t1.cno = ’c2’));
/* 4. 列出“C1”号课成绩比“C2”号同学该门课成绩高的所有学生的学号 */
select t1.sno ’学号’ from sc t1, sc t2
where t1.sno = t2.sno and t1.cno = ’c1’
and t2.cno = ’c2’ and t1.scgrade 》 t2.scgrade;
/* 5. 列出“C1”成绩比“C2”成绩高的学生的学号及其“C1”和“C2”的成绩 */
select t1.sno ’学号’, t1.scgrade ’C1成绩’, t2.scgrade ’C2成绩’ from sc t1, sc t2
where t1.sno = t2.sno and t1.cno = ’c1’
and t2.cno = ’c2’ and t1.scgrade 》 t2.scgrade;
/* 运行结果
————————————1
+——+
| 姓名 |
+——+
| 吕 |
| 于 |
| 侯 |
+——+
————————————2
+——+———-+
| 姓名 | 平均成绩 |
+——+———-+
| 牛 | 45 |
| 马 | 50 |
+——+———-+
————————————3
+——+
| 姓名 |
+——+
| 朱 |
| 杨 |
| 马 |
+——+
————————————4
+——+
| 学号 |
+——+
| s1 |
| s4 |
+——+
————————————5
+——+——–+——–+
| 学号 | C1成绩 | C2成绩 |
+——+——–+——–+
| s1 | 75 | 70 |
| s4 | 90 | 40 |
+——+——–+——–+
*/
哪位大侠可以提供一些mysql数据库的题库,一定要带答案的!将感激不尽!!
一、不定项选择题(共40题,每小题2.5分,总分100分)
1. 数据库管理系统的发展历经了如下那些模型阶段( ACDE )
A. 层次模型 B. 结构模型 C. 关系模型
D. 网状模型 E.对象模型
2. 关系型数据库的核心单元是( B )
A. 对象 B. 表
C. 行 D. 列
3. 对于关系型数据库来说,表之间存在下面那些关系( ABC )
A. 一对一关系 B. 一对多关系
C. 多对多关系 D. 继承关系
4. 在SQL中,下面对于数据定义语言(DDL)描述正确的是( D )。
A. DDL关心的是数据库中的数据 B. 完成数据的增、删、改、查操作
C. 控制对数据库的访问 D. 定义数据库的结构
5. MySQL是一种( C )数据库管理系统。
A. 层次型 B. 网络型 C. 关系型 D. 对象型
6. SQL中,下列操作有语法错误的是( B )
A. AGE IS NOT NULL B. NOT(AGE IS NULL)
C. SNAME=‘王五’ D. SNAME=‘王%’
7. SQL中,下列关于创建、管理数据库的操作语句不正确的是( CDE )
A. CREATE DATABASE Instant B. USE Instant C. NEW DATABASE Instant
D. Connection Instant E. Delete DATEBASE Instant
8. 在MySQL中,不存在的数据类型是( F )。
A. INT B. TEXT C. DECIMAL
D. VARCHAR E. DATETIME F. VARCHAR2
9. 在MySQL中,下列关于创建数据库表的描述正确的是( C )。
A. 在创建表时必须设定列的约束
B. 在删除表的时候通过外键约束连接在一起的表会被一同删除
C. 在创建表时必须设置列类型
D. 通过CREATE TABLE new_t SELECT * FROM old_t复制表的同时,表的约束能够一起被复制到新表中
10. 根据数据完整性实施的方法,可以将其分为( ACDF )
A. 实体完整性 B. 表完整性 C.域完整性
D. 引用完整性 E. 记录完整性 F.用户自定义完整性
11. 下面关于域完整性的方法,不正确的是( A )。
A. 主键约束 B. 外键约束 C.检查约束
D. 非空约束 E. 默认值
12. 下面关于创建和管理索引正确的描述是( C )。
A. 创建索引是为了便于全表扫描
B. 索引会加快DELETE、UPDATE和INSERT语句的执行速度
C. 索引被用于快速找到想要的记录
D. 大量使用索引可以提高数据库的整体性能
13. SQL中,“AGE IN(20,22)”的语义是( D )。
A. AGE《=22 AND AGE 》=20 B. AGE 《22 AND AGE 》20
C. AGE =20 AND AGE =22 D. AGE =20 OR AGE =22
14. 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( C )
A. 实体完整性约束 B. 参照完整性约束
C. 用户自定义完整性约束 D. 关键字完整性约束
15. 下面SQL是来源于考试成绩表t_exam:学号stuId、科目编号subId、成绩score,考试日期:ex_date。有以下sql,它表示的意思是:( B )
Select stu_id,subId,count(*) as x
From t_exam
Where ex_date=’2008-08-08’
Group stu_id,subId
Having count(*)》1
Order by x desc
A. 找出’2008-08-08’这天某科考试2次及以上的学生记录
B. 找出’2008-08-08’这天,某科考试2次及以上的学生记录,考试次数多的放在前面
C. 找出’2008-08-08’这天,某科考试2次及以上的学生记录,考试次数少的放在前面
D. 根据学号和学科分组,找出每个人考试科数,最后考试次数多的放在前面
16. EMP表如下所示,下面哪些SQL语句的返回值为3:( BD )
EMP
雇员号 雇员名 部门号 工资
001 张山 02 2000
010 王宏达 01 1200
056 马林生 02 1000
101 赵敏 04
A. select count(*) from emp
B. select count(distinct 部门号) from emp
C. select count(*) from emp group by 雇员号
D. select count(工资) from emp
17. 下面那一项不是SELECT语句对数据的操作:( D )
A. 投影 B. 联接 C. 并 D. 级联
18. 下面关于SQL数据查询操作描述正确的有:( ABD )
A. 投影操作是选择对表中的哪些列进行查询操作
B. 使用DISTINCT关键字可以过滤查询中重复的记录
C. 在模糊查询中,通配符“%”表示匹配单个字符,而“_”表示匹配零个或多个字符
D. 在MySQL中使用LIMIT关键字限制从数据库中返回记录的行数
19. 在SQL语言中,条件“BETWEEN 20 AND 30”表示年龄在20到30之间,且( A )。
A. 包括20岁和30岁 B. 不包括20岁和30岁
C. 包括20岁,不包括30岁 D. 不包括20岁,包括30岁
20. SQL语言中,删除EMP表中全部数据的命令正确的是( C )。
A. delete * from emp B. drop table emp
C. truncate table emp D. 没有正确答案
21. 有关索引的说法错误的是( AD )
A. 索引的目的是为增加数据操作的速度
B. 索引是数据库内部使用的对象
C. 索引建立得太多,会降低数据增加删除修改速度
D. 只能为一个字段建立索引
22. 下列哪个关键字在Select语句中表示所有列( A )
A. * B. ALL C. DESC D. DISTINCT
23. 在表中设置外键实现的是哪一类数据完整性( B )
A. 实体完整性 B. 引用完整性
C. 用户定义的完整性 D. 实体完整性、引用完整性和用户定义的完整性
24. 下面正确表示Employees表中有多少非NULL的Region列的SQL语句是( B )
A. SELECT count(* ) from Employees
B. SELECT count(ALL Region) from Employees
C. SELECT count(Distinct Region) from Employees
D. SELECT sum(ALL Region) from Employees
25. 下面可以通过聚合函数的结果来过滤查询结果集的SQL子句是( C )
A. WHERE子句 B. GROUP BY子句
C. HAVING 子句 D. ORDER BY子句
26. t_score(stu_id,sub_id,score),即成绩表(学号,科目编号,成绩)。学生如果某科没有考试,则该科成绩录入null。能够获取各位学生的平均成绩的选项是( A )
A. select avg(nvl(socre,0)) from score group by stu_id
B. select stu_id,avg(sorce) from score
C. select stu_id,avg(score) from score
D. select stu_id,sum(score)/count(score) from score
27. 若要求查找S表中,姓名的第一个字为’王’的学生学号和姓名。下面列出的SQL语句中,哪个是正确的( B )
A. SELECT Sno,SNAME FROM S WHERE SNAME=′王%′
B. SELECT Sno,SNAME FROM S WHERE SNAME LIKE′王%′
C. SELECT Sno,SNAME FROM S WHERE SNAME LIKE′王_′
D. 全部
28. 若要求“查询选修了3门以上课程的学生的学生号”,正确的SQL语句是( B )
A. SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*)》 3
B. SELECT Sno FROM SC GROUP BY Sno HAVING( COUNT(*)》 3)
C. SELECT Sno FROM SC ORDER BY Sno WHERE COUNT(*)》 3
D. SELECT Sno FROM SC ORDER BY Sno HAVING COUNT(*)》= 3
29. 对下面的查询语句描述正确的是( D )
Select StudentID,Name,
(select count(*) from StudentExam
where StudentExam.StudentID = Student.StudentID) as ExamsTaken
from Student
order by ExamsTaken desc
A. 从Student表中查找StudentID和Name,并按照升序排列
B. 从Student表中查找StudentID和Name,并按照降序排列
C. 从Student表中查找StudentID、Name和考试次数
D. 从Student表中查找StudentID、Name,并从StudentExam表中查找与StudentID一致的学生考试次数,并按照降序排列
30. 下面题基于学生-课程数据库中的三个基本表:
学生信息表:s(sno, sname, sex, age, dept) 主键为sno
课程信息表:c(cno, cname, teacher) 主键为cno
学生选课信息表:sc(sno, cno, grade) 主键为(sno, cno)
“从学生选课信息表中找出无成绩的学生信息”的SQL语句是( C d )
A.
SELECT * FROM sc WHERE grade=NULL
B.
SELECT * FROM sc WHERE grade IS ‘ ’
C.
SELECT * FROM sc WHERE grade IS NULL
D.
SELECT * FROM sc WHERE grade =‘ ’
31. 当子查询返回多行时,可以采用的解决办法是( C )。
A. 使用聚合函数 B. Where条件判断
C. 使用IN运算符 D. 使用Group by进行分组
32. 下面关于在子查询中使用运算符描述不正确的是( D )。
A. 使用IN运算符用于查找字段值属于某一组值的行
B. 使用Exists运算符用于测试子查询是否返回行,如果返回其值就为真
C. 使用ALL运算符用于测试子查询结果集的所有行是否满足指定的条件
D. 使用Any运算符用于测试子查询结果集中的一行或多行不满足指定的条件
33. 下面关于组合查询描述不正确的是( D )。
A. 从一个表中获取的数据必须和其它表中的数据具有相同的列数
B. 两个表中相对应的列必须具有相同的数据类型
C. UNION的结果集列名与第一个SELECT语句的结果集中的列名相同
D. UNION的结果集列名与第二个SELECT语句的结果集中的列名相同
E. UNION ALL运算符返回每个数据集的所有成员
34. 下面关于联接的描述正确的是( A )。
A. 内联接使用比较运算符根据每个表共有的列值来匹配两个表中的行
B. 左外联接结果集包含从右边的表返回的所有行
C. 右外联接结果集包含从左边的表返回的所有行
D. 全外联接返回左表和右表中的所有匹配的行
35. 下面关于数据库设计过程正确的顺序描述是( C )。
A. 需求收集和分析、逻辑设计、物理设计、概念设计
B. 概念设计、需求收集和分析、逻辑设计、物理设计
C. 需求收集和分析、概念设计、逻辑设计、物理设计
D. 需求收集和分析、概念设计、物理设计、逻辑设计
36. ER图属于下面哪一种数据库设计模型( B )。
A. 物理数据模型
B. 概念数据模型
C. 逻辑数据模型
D. 需求模型
37. 非主键必须完全依赖于主键列,这属于下列范式的内容( BC )
A. 1NF B. 2NF C. 3NF D. 都没有的
38. 如果一个字段的数据必须来源另一个表的主键,那么要在这个字段上建立( B )。
A. PK(主键) B. FK(外键) C. UK(唯一键) D. 复合主键
39. 根据三个范式的定义,下面哪个选项的设计是正确的( C )
职工编号 姓名 工种 车间 车间主任
1001 李宁 车工 一车间 周杰
1002 王海 铣工 一车间 周杰
1003 赵亮 钳工 二车间 吴明
1001 李宁 钳工 二车间 吴明
A. 员工表、工种表、车间表
B. 员工表、工种表、车间表、车间主任表
C. 员工表、工种表、车间表、员工工种表、员工车间表
D. 以上设计均不正确
40. 下列说法中,哪些是正确的( BD )
A. RDBMS是数据库管理系统的简称
B. 各行记录都不能重复,是第二范式要求的
C. 在数据库设计中一定要满足第三范式
D. 索引越多,查询越快,数据更新越慢
15个 MySQL 基础面试题,DBA 们准备好了吗
问题1:你如何确定 MySQL 是否处于运行状态?
答案: 在Debian 上运行命令 service mysql status,然后看输出即可。
在 RedHat 或者 centos 上运行命令 service mysqld status,然后看看输出即可。
问题2:如何开启或停止 MySQL 服务?
答案:运行命令 service mysqld start 开启服务;
运行命令 service mysqld stop 停止服务。
问题3:如何通过 Shell 登入 MySQL?
答案:运行命令 mysql -u用户名 -p登陆密码
问题4:如何列出所有数据库?
答案:运行命令 show databases;
问题5: 如何切换到某个数据库并在上面工作?
答案:(1)运行命令 use database_name;
(2)进入名为 database_name 的数据库。
问题6:如何列出某个数据库内所有表?
答案:在当前数据库运行命令 show tables;
问题7:如何获取表内所有 Field 对象的名称和类型?
答案:运行命令 describe 表名;
简写为desc 表名;
问题8:如何删除表?
答案:运行命令 drop table 表名;
问题9:如何删除数据库?
答案:运行命令 drop database 数据库名;
问题10:如何查看表内所有数据?
答案:运行命令 select * from 表名;
问题11:如何从表(比如 oc_users )中获取一个 field 对象(比如 uid)的所有数据?
答案:运行命令 select uid from oc_users;
问题12:假设你有一个名为 ‘xyz’ 的表,它存在多个字段,如 ‘createtime’和 ‘engine’,
名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。
如何只列出 ‘createtime’ 和 ‘engine’ 这两列,并且 engine 的值为 ‘MyIsam’?
答案:运行命令 select create_time, engine from xyz where engine = “MyIsam” ;
问题13:如何列出表 ‘xrt’ 内 name 域值为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?
答案:运行命令 select * from xrt where name = “tecmint” and web_address = “tecmint.com” ;
问题14:如何列出表 ‘xrt’ 内 name 域值不为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?
答案:运行命令 select * from xrt where name != “tecmint” and web_address = “tecmint.com”;
问题15:如何知道表内行数?
答案:运行命令 select count(*) from 表名;