MySQL测试题 SQL
- 格式:doc
- 大小:103.50 KB
- 文档页数:10
mysql面试题sql语句MySQL是一种流行的开源关系型数据库管理系统,广泛用于互联网应用和企业级应用程序中。
在MySQL的面试中,经常会涉及到SQL语句的相关问题。
以下是一些常见的MySQL面试题SQL语句,供参考:1. 查询表中的所有数据```SELECT * FROM 表名;```将"表名"替换为实际的表名。
2. 查询表中的指定列数据```SELECT 列1, 列2, 列3 FROM 表名;```将"列1, 列2, 列3"替换为实际需要查询的列名。
3. 查询表中满足条件的数据```SELECT * FROM 表名 WHERE 条件;```将"表名"替换为实际的表名,"条件"替换为实际的查询条件。
4. 查询表中的数据并按照指定列排序```SELECT * FROM 表名 ORDER BY 列名 ASC|DESC;```将"表名"替换为实际的表名,"列名"替换为实际需要排序的列名,ASC为升序排序,DESC为降序排序。
5. 查询表中数据的总行数```SELECT COUNT(*) FROM 表名;```将"表名"替换为实际的表名。
6. 查询表中满足条件的数据并统计行数```SELECT COUNT(*) FROM 表名 WHERE 条件;```将"表名"替换为实际的表名,"条件"替换为实际的查询条件。
7. 查询表中满足条件的数据并按照指定列分组```SELECT 列1, 列2, COUNT(*) FROM 表名 WHERE 条件 GROUP BY 列1, 列2;```将"表名"替换为实际的表名,"条件"替换为实际的查询条件,"列1, 列2"替换为实际需要分组的列名。
mysql期末考试题及答案机考一、选择题(每题2分,共20分)1. MySQL数据库默认使用的端口号是多少?A. 21B. 3306C. 80D. 8080答案:B2. 下列哪个SQL语句用于查询表中的所有记录?A. SELECT *B. SELECT FROM table_nameC. SELECT table_nameD. SELECT ALL FROM table_name答案:A3. 在MySQL中,以下哪个命令用于查看当前数据库的所有表?A. SHOW DATABASESB. SHOW TABLESC. SHOW ALL TABLESD. LIST TABLES答案:B4. 如果要删除名为“employees”的表,应该使用以下哪个SQL语句?A. DELETE FROM employeesB. REMOVE employeesC. DROP TABLE employeesD. DELETE TABLE employees5. 在MySQL中,以下哪个关键字用于创建新表?A. NEW TABLEB. CREATE TABLEC. DEFINE TABLED. MAKE TABLE答案:B6. 以下哪个SQL语句用于添加新记录到表中?A. INSERT INTO table_name (column1, column2) VALUES (value1, value2)B. ADD INTO table_name (column1, column2) VALUES (value1, value2)C. CREATE INTO table_name (column1, column2) VALUES (value1, value2)D. INSERT INTO table_name VALUES (value1, value2)答案:A7. 在MySQL中,以下哪个命令用于查看表的结构?A. DESCRIBE table_nameB. EXPLAIN table_nameC. SHOW table_nameD. DISPLAY table_name答案:A8. 以下哪个SQL语句用于更新表中的记录?A. UPDATE table_name SET column1 = value1 WHERE conditionB. MODIFY table_name SET column1 = value1 WHERE conditionC. CHANGE table_name SET column1 = value1 WHERE conditionD. ALTER table_name SET column1 = value1 WHERE condition9. 在MySQL中,以下哪个命令用于删除表中的记录?A. REMOVE FROM table_name WHERE conditionB. DELETE FROM table_name WHERE conditionC. ERASE FROM table_name WHERE conditionD. EXCEPT FROM table_name WHERE condition答案:B10. 以下哪个SQL语句用于创建数据库?A. CREATE DATABASE database_nameB. NEW DATABASE database_nameC. DEFINE DATABASE database_nameD. START DATABASE database_name答案:A二、填空题(每空2分,共20分)1. 在MySQL中,使用________关键字可以创建新的数据库。
MySQL专项测试题附答案一、单项选择题(本部分共15题,每题2分,共30分。
在每题给出选项中,只有一项符合题目要求,答对得分,答错或不答不得分。
)1.下列说法中,不正确的是( )。
A. 数据库减少了数据冗余B. 数据库中的数据可以共享C. 数据库避免了一切数据的重复D. 数据库具有较高的数据独立性2.SQL 语言的数据操纵语句包括 SELECT, INSERT, UPDATE 和 DELETE,最重要的,也是使用最频繁的语句是( )。
A. SELECTB. INSERTC. UPDATED. DELETE3. 数据库系统的核心是( )。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员4. 在 MySQL 中,下列关于创建数据库表的描述正确的是( )。
A. 在创建表时必须设定列的约束B. 在删除表的时候通过外键约束连接在一起的表会被一同删除C. 在创建表时必须设置列类型D. 通过 CREATE TABLE new_t SELECT FROM old_t 复制表时,表的约束能够一起被复制到新表中5. 有一个关系:学生(学号,姓名,系别),规定学号的值域是 8 个数字组成的字符串,这一规则属于( )A. 实体完整性约束B. 参照完整性约束C. 用户自定义完整性约束D. 关键字完整性约束6. 如果一个字段的数据必须来源另一个表的主键,那么要在这个字段上建立( )。
A. PK(主键)B. FK(外键)C. UK(唯一键)D.复合主键7. 下列描述正确的是( )。
A.一个数据库只能包含一个数据表B.一个数据库可以包含多个数据表C.一个数据库只能包含两个数据表D.一个数据表可以包含多个数据库8. SQL 中,下列操作有语法错误的是( )。
A. AGE IS NOT NULLB. NOT(AGE IS NULL)C. SNAME=‘王五’D. SNAME=‘王%’9. SQL 中,“AGE IN(20, 22)”的语义是( )。
mysql题库1. MySQL支持的数据类型有哪些?A. 整型、浮点型、字符型、日期/时间型B. 整型、字符型、文本型、二进制型C. 整型、字符型、日期/时间型、布尔型D. 整型、浮点型、字符型、枚举型2. 在MySQL中,使用哪个关键字可以创建一个新的数据库?A. CREATE DATABASEB. CREATE TABLEC. CREATE INDEXD. CREATE VIEW3. 在MySQL中,使用哪个关键字可以删除一个数据库?A. DROP DATABASEB. DROP TABLEC. DROP INDEXD. DROP VIEW4. 在MySQL中,如何为数据库表中的一列设置默认值?A. 在创建表时,使用DEFAULT关键字指定默认值B. 使用ALTER TABLE语句,使用SET DEFAULT子句设置默认值C. 使用UPDATE语句,将列的值更新为默认值D. 在创建表时,不指定列的值,MySQL会自动将默认值设为05. 在MySQL中,使用哪个关键字可以对多个表进行查询操作?A. JOINB. UNIONC. MINUSD. INTERSECT6. 在MySQL中,如何查询满足某些条件的所有记录?A. 使用SELECT语句,配合WHERE子句指定条件B. 使用SELECT语句,配合HAVING子句指定条件C. 使用SELECT语句,配合ORDER BY子句对结果进行排序D. 使用SELECT语句,配合GROUP BY子句对结果进行分组7. 在MySQL中,如何对查询结果进行排序?A. 使用ORDER BY子句,指定排序的列和排序方式(升序或降序)B. 使用GROUP BY子句,将结果按照某一列或多列进行分组,再对分组后的结果进行聚合操作(如求和、平均值等)C. 使用HAVING子句,对聚合后的结果进行过滤和排序D. 使用DISTINCT关键字,去除查询结果中的重复记录8. 在MySQL中,如何使用LIKE运算符进行模糊查询?A. LIKE '%keyword%',查找包含指定关键词的所有记录B. LIKE 'keyword%',查找以指定关键词开头的所有记录C. LIKE '%keyword',查找以指定关键词结尾的所有记录D. LIKE 'keyword',查找与指定关键词完全匹配的所有记录9. 在MySQL中,使用哪个函数可以对日期/时间类型的数据进行操作?A. DATE_FORMAT()函数,将日期/时间格式化为指定格式的字符串B. STR_TO_DATE()函数,将字符串转换为日期/时间类型的数据C. UNIX_TIMESTAMP()函数,将日期/时间转换为UNIX时间戳(以秒为单位)D. DATE()函数,从日期/时间类型的数据中提取日期部分。
mysql测试题及答案MySQL测试题及答案一、选择题1. MySQL的默认端口号是什么?A. 22B. 3306C. 80D. 443答案:B2. 下列哪个SQL语句用于查询表中的所有记录?A. SELECT * FROM table_name WHERE condition;B. SELECT * FROM table_name;C. SELECT table_name.*;D. SELECT ALL FROM table_name;答案:B3. 在MySQL中,以下哪个命令用于创建新的数据库?A. CREATE DATABASE database_name;B. NEW DATABASE database_name;C. START DATABASE database_name;D. INIT DATABASE database_name;答案:A二、填空题4. 在MySQL中,使用____语句可以删除一个表。
答案:DROP TABLE5. 要查看当前MySQL服务器上所有数据库的名称,可以使用____命令。
答案:SHOW DATABASES;6. 以下SQL语句的作用是____:SELECT column1, column2 FROMtable_name WHERE column1 = value1 ORDER BY column2 DESC LIMIT 1;答案:查询表table_name中column1等于value1的记录,并按column2降序排列,返回第一条记录。
三、简答题7. 请简述主键(Primary Key)和外键(Foreign Key)的区别。
答案:主键是表中用于唯一标识每条记录的字段,一个表只能有一个主键,并且主键的值不能为NULL。
外键是表中用于与另一个表的主键建立链接的字段,用于维护两个表之间的数据一致性,一个表可以有多个外键。
8. 解释什么是事务(Transaction)以及它的特性。
mysql面试题sql语句MySQL是一种广泛应用的关系型数据库管理系统,许多企业在招聘数据库相关岗位时会要求候选人掌握MySQL,并且熟练掌握SQL语句。
在面试中,经常会出现关于MySQL的SQL语句题目,下面我将根据一些常见的MySQL面试题来进行回答。
1. 请写出查询表中所有数据的SQL语句。
答:SELECT * FROM table_name;2. 请写出查询表中某一列数据的SQL语句。
答:SELECT column_name FROM table_name;3. 请写出查询表中某几列数据的SQL语句。
答:SELECT column1, column2 FROM table_name;4. 请写出查询表中去重后的数据的SQL语句。
答:SELECT DISTINCT column_name FROM table_name;5. 请写出查询表中符合条件的数据的SQL语句。
答:SELECT * FROM table_name WHERE condition;6. 请写出查询表中数据按照某一列进行排序的SQL语句。
答:SELECT * FROM table_name ORDER BY column_name;7. 请写出查询表中数据按照某一列进行倒序排序的SQL语句。
答:SELECT * FROM table_name ORDER BY column_name DESC;8. 请写出查询表中数据按照多个列进行排序的SQL语句。
答:SELECT * FROM table_name ORDER BY column1, column2;9. 请写出查询表中数据分组后进行统计的SQL语句。
答:SELECT column_name, COUNT(*) FROM table_name GROUP BYcolumn_name;10. 请写出查询表中数据进行连接的SQL语句。
答:SELECT column1, column2 FROM table1 JOIN table2 ON table1.id =table2.id;11. 请写出查询表中数据进行左连接的SQL语句。
MySQL-50道经典sql题汇总题⽬是根据⾃⼰的理解做的,都能跑出来,但是肯定还有不⾜之处,欢迎⼤家提出问题,⼀起研究学习建表DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (`CId` varchar(10) default NULL,`Cname` varchar(10) default NULL,`TId` varchar(10) default NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for sc-- ----------------------------DROP TABLE IF EXISTS `sc`;CREATE TABLE `sc` (`SId` varchar(10) default NULL,`CId` varchar(10) default NULL,`score` int(4) default NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (`SId` varchar(10) default NULL,`Sname` varchar(20) default NULL,`Sage` date default NULL,`Ssex` varchar(10) default NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for teacher-- ----------------------------DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher` (`TId` varchar(10) default NULL,`Tname` varchar(20) default NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;添加数据courseINSERT INTO `course` VALUES ('01', 'CHINESE', '02');INSERT INTO `course` VALUES ('02', 'MATH', '01');INSERT INTO `course` VALUES ('03', 'ENGLISH', '03');INSERT INTO `course` VALUES ('04', 'JAVA', '04');scINSERT INTO `sc` VALUES ('01', '01', 80);INSERT INTO `sc` VALUES ('01', '03', 99);INSERT INTO `sc` VALUES ('02', '04', 50);INSERT INTO `sc` VALUES ('02', '03', 80);INSERT INTO `sc` VALUES ('03', '01', 80);INSERT INTO `sc` VALUES ('03', '03', 80);INSERT INTO `sc` VALUES ('04', '01', 50);INSERT INTO `sc` VALUES ('04', '03', 20);INSERT INTO `sc` VALUES ('05', '01', 100);INSERT INTO `sc` VALUES ('06', '01', 31);INSERT INTO `sc` VALUES ('06', '03', 34);INSERT INTO `sc` VALUES ('07', '03', 98);INSERT INTO `sc` VALUES ('07', '04', 55);INSERT INTO `sc` VALUES ('01', '04', 50);INSERT INTO `sc` VALUES ('01', '02', 10);INSERT INTO `sc` VALUES ('02', '02', 70);INSERT INTO `sc` VALUES ('03', '02', 50);INSERT INTO `sc` VALUES ('04', '02', 80);INSERT INTO `sc` VALUES ('05', '02', 73);INSERT INTO `sc` VALUES ('06', '02', 99);INSERT INTO `sc` VALUES ('07', '02', 100);INSERT INTO `sc` VALUES ('08', '02', 59);INSERT INTO `sc` VALUES ('09', '02', 80);INSERT INTO `sc` VALUES ('08', '01', 40);INSERT INTO `sc` VALUES ('08', '03', 35);studentINSERT INTO `student` VALUES ('01', 'Zhao Lei', '1990-1-1', 'MAN'); INSERT INTO `student` VALUES ('02', 'Qian Dian', '1990-12-21', 'MAN'); INSERT INTO `student` VALUES ('03', 'Sun Feng', '1990-5-20', 'MAN'); INSERT INTO `student` VALUES ('04', 'Li Yun', '1990-8-6', 'MAN'); INSERT INTO `student` VALUES ('05', 'Zhou Mei', '1991-12-1', 'WOMAN'); INSERT INTO `student` VALUES ('06', 'Wu Lan', '1992-3-1', 'WOMAN'); INSERT INTO `student` VALUES ('07', 'Zheng Zhu', '1989-7-1', 'WOMAN'); INSERT INTO `student` VALUES ('08', 'Wang Ju', '1990-1-20', 'WOMAN'); INSERT INTO `student` VALUES ('09', 'Wang Ju', '2020-8-30', 'MAN');teacherINSERT INTO `teacher` VALUES ('01', 'Li Pengfei');INSERT INTO `teacher` VALUES ('02', 'Wang Wen');INSERT INTO `teacher` VALUES ('03', 'Zhang Zhichao');INSERT INTO `teacher` VALUES ('04', 'Ye Ping');题⽬01、查询'01'课程⽐'02'课程成绩⾼的所有学⽣的学号;SELECT a.SId FROM (select SId,score from `sc` where CId = '01')as aINNER JOIN(select SId,score from `sc` where CId = '02')as bON a.SId = b.SIdINNER JOIN student as c ON c.SId = a.SIdwhere a.score>b.score02、查询平均成绩⼤于60分的同学的学号和平均成绩;select SId,AVG(score) FROM sc GROUP BY SId HAVING AVG(score)>6003、查询所有同学的学号、姓名、选课数、总成绩;⼀SELECT t1.SId,t1.Sname,(SELECT COUNT(CId) FROM sc s1 where s1.SId=t1.SId) 数量,(SELECT SUM(score) FROM sc s2 where s2.SId = t1.SId) 总成绩from student t1⼆select stu.SId , stu.Sname,COUNT(s.CId),sum(s.score) from sc as s join student as stuon s.SId = stu.SIdGROUP BY stu.SId04、查询姓“李”的⽼师的个数;SELECT COUNT(Tid) FROM teacher where Tname LIKE 'Li%'05、查询没学过“叶平”⽼师课的同学的学号、姓名; 思路:查找所有学过yp⽼师可的学⽣,然后看哪个Sid没在⾥⾯SELECT SId,Sname from student WHERE SId NOT IN(SELECT SId from sc where CId IN(SELECT CId FROM course where TId IN(SELECT TId FROM teacher where Tname ='Ye Ping')))06、查询学过“01”并且也学过编号“02”课程的同学的学号、姓名;SELECT SId,Sname from student st where(select COUNT(*) FROM sc s1 where s1.SId=st.SId and CId='01')>0and (select COUNT(*) from sc s2 where s2.SId=st.SId and CId='02')>0SELECT DISTINCT stu.SId , stu.Sname from sc as s join student as stu on s.SId = stu.SId where01 in (SELECT CId from sc where stu.SId = SId) and 02 in (SELECT CId from sc where stu.SId = SId)07、查询学过“Li Pengfei”⽼师所教的所有课的同学的学号、姓名;select DISTINCT stu.SId ,stu.Sname from student as stujoin sc as s on stu.SId = s.SIdwhere (SELECT COUNT(1) from sc as ss join course as c on ss.CId = c.CIdJOIN teacher as t on c.TId = t.TIdwhere s.SId = ss.SId and t.Tname = "Li PengFei" )=(select COUNT(1) from course as cou join teacher as tea on cou.TId = tea.TIdwhere tea.Tname = "Li PengFei")08、查询课程编号“02”的成绩⽐课程编号“01”课程低的所有同学的学号、姓名;⼀ SELECT st.SId,st.Sname from (SELECT SId,score from sc where CId = '02') aINNER JOIN (SELECT SId,score from sc where CId = '01') bON a.SId = b.SIdINNER JOIN student st ON st.SId = b.SId where a.score<b.score⼆ SELECT SId,Sname from student where SId IN(SELECT s1.SId from sc s1 ,sc s2 wheres1.SId = s2.Sid and s2.CId = '02' and s1.CId = '01' and s1.score>s2.score)09、查询所有课程成绩⼩于80分的同学的学号、姓名;SELECT SId ,sname from student where SId NOT IN (select SId from sc where score >=80)SELECT stu.SId,stu.Sname from student as stuwhere (SELECT COUNT(1) from sc where stu.SId = SId) = (SELECT COUNT(1) from sc WHERE stu.SId = SId and score<80) 10、查询没有学全所有课的同学的学号、姓名;SELECT SId,Sname from student where SId IN(select SId from scgroup BY SId HAVING (SELECT COUNT(CId) from course)=COUNT(SId))SELECT DISTINCT stu.SId,stu.Sname from student as stuwhere (SELECT COUNT(1) from sc where stu.SId = SId) = (SELECT COUNT(1) from course )11、查询⾄少有⼀门课与学号为“01”的同学所学相同的同学的学号和姓名;SELECT SId ,Sname from student where SId IN(select SId from sc where CId IN(select CId from sc where SId = '01'))12、查询学过学号为“07”同学所有门课的其他同学学号和姓名;select SId ,Sname from student where SId IN(SELECT SId from sc WHERECId IN(SELECT CId from sc where SId = '07')GROUP BY CId HAVING COUNT(SId)>=(SELECT COUNT(SId) from sc where SId = '07'))13.丢了 知道的可以告诉我⼀下14、查询和“07”号的同学学习的课程完全相同的其他同学学号和姓名;select s.SId,stu.Sname from sc as s join student as stu on s.SId = stu.SId wheres.SId not in (select SId from sc where CId not in (select CId from sc where SId = 07)) and(SELECT COUNT(1) from sc where SId = 07) = (SELECT COUNT(1) from sc where SId = s.SId)GROUP BY s.SId,stu.Sname15、删除学习“Li Pengfei”⽼师课的SC表记录;DELETE from sc where CId IN (select CId from course where TId = (SELECT TId from teacher where Tname = 'Li Pengfei'))16、向SC表中插⼊⼀些记录,这些记录要求符合以下条件:没有上过编号“03”课程的同学学号,“02”,以及“02”课的平均成绩;INSERT INTO sc SELECT SId,'02',b.av from sc,(SELECT AVG(score) AS av from sc where CId = '02') bwhere SId NOT IN (SELECT SId from sc s2 where CId ='03')17、按平均成绩从⾼到低显⽰所有学⽣的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显⽰:select st.Sname,a.score as 'MATH',b.score as 'ENGLISH',c.score as 'CHINESE' from(SELECT SId,score from sc where CId = (select CId FROM course where Cname = 'MATH')) as aINNER JOIN (SELECT SId,score from sc where CId = (select CId FROM course where Cname = 'ENGLISH')) as b ON a.SId = b.SIdINNER JOIN(SELECT SId,score from sc where CId = (select CId FROM course where Cname = 'CHINESE')) as c ON b.SId = c.SIdINNER JOIN student as st ON c.SId = st.SIdGROUP BY st.Sname ORDER BY AVG(a.score+b.score+c.score)DESC18、查询各科成绩最⾼和最低的分:以如下形式显⽰:course_id,max,minSELECT CId as 'coures_id',MAX(score) as 'max',MIN(score) as 'min'from scGROUP BY CId19、按各科平均成绩从低到⾼和及格率的百分数从⾼到低顺序SELECT CId,AVG(score) as '平均成绩',sum(case when score>60 then 1 else 0 end)/count(*)*100 as '及格率'from scGROUP BY CIdORDER BY AVG(score) asc,sum(case when score>=60 then 1 else 0 end)/count(*) descSELECT s.CId,ame,AVG(s.score),(SELECT COUNT(1) from sc where CId = s.CId and score>60)/(SELECT COUNT(1) from sc WHERE CId = s.CId) as 及格率from sc as s JOIN course as cou on s.CId = cou.CIdGROUP BY CIdORDER BY AVG(s.score) ASC,及格率 DESC20、查询如下课程平均成绩和及格率的百分数(⽤"1⾏"显⽰): math(01),chinese(02),english(03)select AVG(a.score) as 'MATH',SUM(case when a.score>=60 then 1 else 0 end)/count(a.SId)*100 as 'MATH%',AVG(b.score) as 'ENGLISH',sum(case when b.score>=60 then 1 else 0 end)/count(b.SId)*100 as 'ENGLISH%',AVG(c.score) as 'CHINESE', sum(case when c.score>=60 then 1 else 0 end)/count(c.SId)*100 as 'CHINESE%'from(SELECT SId,score from sc where CId = (select CId FROM course where Cname = 'MATH')) as aINNER JOIN (SELECT SId,score from sc where CId = (select CId FROM course where Cname = 'ENGLISH')) as b INNER JOIN(SELECT SId,score from sc where CId = (select CId FROM course where Cname = 'CHINESE')) as cSELECT s.CId,ame,AVG(s.score),(SELECT COUNT(1) from sc where CId = s.CId and score>60)/(SELECT COUNT(1) from sc WHERE CId = s.CId) as 及格率from sc as s JOIN course as cou on s.CId = cou.CId where s.CId in (01,02,03)GROUP BY CId21、查询不同⽼师所教不同课程平均分从⾼到低显⽰SELECT tea.Tname,ame,AVG(s.score) as 平均分from sc as s JOIN course as cou on s.CId = cou.CIdJOIN teacher as tea on tea.TId = cou.TIdGROUP BY s.CIdORDER BY 平均分 desc22、查询如下课程成绩第 3 名到第 6 名的学⽣成绩单:math(01),chinese(02),english(03)——student_id,student_name,math,chinese,english,avg_score;⼀:select stu.SId,stu.Sname,(SELECT score from sc as s1 where CId = "02" and SId = stu.SId) as 数学,(SELECT score from sc as s2 where CId = "01" and SId = stu.SId) as 语⽂,(SELECT score from sc as s3 where CId = "03" and SId = stu.SId) as 英语,avg((SELECT score from sc as s1 where CId = "02" and SId = stu.SId)+(SELECT score from sc as s1 where CId = "01" and SId = stu.SId)+(SELECT score from sc as s1 where CId = "03" and SId = stu.SId))/3 as 平均成绩from student stuGROUP BY stu.SIdORDER BY 平均成绩 desc LIMIT 2,4⼆:select stu.SId,stu.Sname,ms.score as "数学",ys.score as "语⽂",es.score as "英语" ,avg(ms.score+ys.score+es.score)/3 as "平均成绩" from(SELECT SId,score from sc where CId = "02") as msINNER join (SELECT SId,score from sc where CId = "01" )as ys on ms.SId = ys.SIdINNER join (SELECT SId,score from sc where CId = "03")as es on ys.SId = es.SIdINNER join student stu on stu.SId = es.SIdGROUP BY stu.SId,stu.Sname,ms.score,ys.score,es.scoreORDER BY avg(ms.score+ys.score+es.score) DESC23、统计列印各科成绩,各分数段⼈数:课程ID,课程名称,[100-85],[85-70],[70-60],[-60]--分组求和 sum case when then else endSELECT cou.CId ,ame,SUM(CASE when s.score>=85 then 1 ELSE 0 END) as "[100-85]" ,SUM(CASE when s.score<85 and s.score >=70 then 1 ELSE 0 END) as "[85-70]" ,SUM(CASE when s.score<70 and s.score>=60 then 1 ELSE 0 END) as "[70-60]" ,SUM(CASe when s.score<60 then 1 ELSE 0 END) as "60以下"from sc as s join course as cou on cou.CId = s.CIdGROUP BY cou.CId ,ame24、查询学⽣平均成绩及其名次select SId,平均成绩,(SELECT COUNT(1) from(SELECT SId,AVG(score) as 平均成绩 from sc GROUP BY SId)as a where a.平均成绩>b.平均成绩)+1 as 排名 from(select SId,AVG(score) as 平均成绩 from sc GROUP BY SId) as bGROUP BY SIdORDER BY 平均成绩 DESCSELECT(SELECT COUNT(1) from (SELECT AVG(score) as pjcj,SId from sc GROUP BY SId) as b where b.pjcj>a.平均成绩)+1 as 排名,姓名,平均成绩from(SELECT stu.Sname as 姓名, AVG(s.score) as 平均成绩 from sc as s join student as stu on s.SId = stu.SId GROUP BY stu.Sname)as aORDER BY 排名25、查询各科成绩前三名的记录:(不考虑成绩并列情况)//有瑕疵SELECT ame,b.score,b.SId,(SELECT COUNT(1) from sc as c where c.score>b.score and c.CId = b.CId)+1 as 排名fromsc as b join course as cou on b.CId = cou.CId where (select COUNT(1) from sc as a WHERE a.CId = b.CId and a.score>b.score order BY a.CId)<3 GROUP By ame,b.SIdORDER BY ame,b.score descSELECT s.CId ,s.SId ,s.score from(SELECT CId,SId,score,(SELECT COUNT(1) from sc as s2 WHERE s2.score>s1.score and s2.CId = s1.CId)+1 as c1 from sc as s1HAVING c1<4)as sGROUP BY s.CId ,s.SIdORDER BY s.CId, s.score DESC26、查询每门课程被选修的学⽣数select ame,(SELECT count(*) from sc as a WHERE a.CId = b.CId),COUNT(b.SId)from sc as b JOIN course as cou on b.CId = cou.CidGROUP BY ame27、查询出只选修了2门课程的全部学⽣的学号和姓名select stu.SId,stu.Sname from student as stu join (SELECT SId,COUNT(SId) from scGROUP BY SId HAVING COUNT(SId) = 2) as a on stu.SId = a.SId28、查询男⽣、⼥⽣⼈数SELECT Ssex,count(Ssex) from studentGROUP BY Ssex29、查询姓“王”的学⽣名单select * from student WHERE Sname LIKE "Wang%"30、查询同名同性学⽣名单,并统计同名⼈数select a.Sname,(SELECT COUNT(1) from student as b where a.Sname = b.Sname)as c from student as a GROUP BY a.SnameHAVING c>131、1990年出⽣的学⽣名单(注:Student表中Sage列的类型是datetime)select * from student where YEAR(Sage)=199032、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列SELECT s.CId,ame,AVG(s.score) from sc as s JOIN course as cou on s.CId = cou.CIdGROUP BY s.CIdORDER BY AVG(s.score) DESC ,s.CId ASC33、丢了 知道的告诉我⼀下34、查询课程名称为“MATH”,且分数低于60的学⽣姓名和分数SELECT stu.Sname,s.score from sc as s join student as stu on s.SId = stu.SIdwhere s.score<60 and s.CId = (SELECT CId from course where Cname = "MATH")35、查询所有学⽣的选课情况;⼀ select stu.SId,stu.Sname,s.CId,ame from sc as s join student as stu on s.SId = stu.SIdjoin course as cou on cou.CId = s.CIdGROUP BY stu.SId,s.CIdORDER BY s.SId asc⼆.合并SELECT stu.SId,stu.Sname,GROUP_CONCAT(ame SEPARATOR ' , ') as 选课 from sc as s join student as stu ON s.SId = stu.SId JOIN course as cou on cou.CId = s.CIdGROUP BY stu.SId36、查询每门课程成绩在70分以上的姓名、课程名称和分数;SELECT stu.Sname,ame,s.score from student as stu join sc as s on stu.SId = s.SId JOIN course as cou on cou.CId = s.CIdwhere s.score>=7037、查询不及格的课程,显⽰学号、姓名、课程号、成绩SELECT stu.SId,stu.Sname,s.CId,s.score from student as stu join sc as s on stu.SId = s.SIdwhere s.score <6038、查询课程编号为03且课程成绩在80分以上的学⽣的学号和姓名;SELECT stu.SId,stu.Sname from student as stu join sc as s on stu.SId = s.SIdwhere s.score >=80 and s.CId = 0339、求选了课程的学⽣⼈数去重SELECT COUNT(DISTINCT SId) as 选课⼈数 from sc40、查询选修“Li Pengfei”⽼师所授课程的学⽣中,成绩最⾼的学⽣姓名及其成绩select stu.Sname,s.score from student as stujoin sc as s on stu.SId = s.SIdwhere s.score = (SELECT MAX(score) from sc as s join course as cou on cou.CId = s.CIdjoin teacher as tea on tea.TId = cou.TId where tea.Tname = "Li Pengfei" )and s.CId = (SELECT DISTINCT s.CId from sc as s join course as cou on cou.CId = s.CIdjoin teacher as tea on tea.TId = cou.TId where tea.Tname = "Li Pengfei" )41、查询各个课程及相应的选修⼈数SELECT ame,count(1) from sc as s join course as cou on s.CId = cou.CIdGROUP BY ame42、查询不同课程成绩相同的学⽣的学号、课程号、学⽣成绩理解俩种意思:⼀:不同课程,不同学⽣,成绩相同SELECT stu.SId,stu.Sname,s.CId,s.score from student as stu join sc as s on stu.SId = s.SIdwhere s.score in (SELECT score from sc where SId!=s.SId)ORDER BY s.score DESC⼆:不同课程,相同学⽣,成绩相同(可以去重不⽤in)SELECT stu.SId,stu.Sname,s.CId,s.score from student as stu join sc as s on stu.SId = s.SIdwhere s.score in (SELECT score from sc where SId=s.SId and CId!=s.CId)ORDER BY s.score DESC43、查询每门课程成绩最好的前两名SELECT s.CId,stu.Sname,s.score from student as stu join sc as s on stu.SId = s.SIdwhere (SELECT COUNT(1) FROM sc where CId = S.CId and score>s.score)<2GROUP BY s.CId,stu.SnameORDER BY s.CId,s.score DESC44、统计每门课程的学⽣选修⼈数(超过5⼈的课程才统计)。
mysql面试题sql语句MySQL是一种广泛使用的关系型数据库管理系统,许多公司在招聘数据库相关岗位时都会涉及到MySQL的面试题。
本文将为你提供一些常见的MySQL面试题SQL语句,希望能够帮助你在面试中获得更好的表现。
1. 查询表中的所有数据:SELECT * FROM 表名;2. 查询表中的指定列数据:SELECT 列名1, 列名2, ... FROM 表名;3. 查询表中满足条件的数据:SELECT * FROM 表名 WHERE 条件;4. 查询表中去重后的数据:SELECT DISTINCT 列名 FROM 表名;5. 查询表中前N条数据:SELECT * FROM 表名 LIMIT N;6. 查询表中排序后的数据:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;7. 查询表中符合条件的数据,并按照某一列排序:SELECT * FROM 表名 WHERE 条件 ORDER BY 列名 ASC/DESC;8. 查询表中指定列的最大值:SELECT MAX(列名) FROM 表名;9. 查询表中指定列的最小值:SELECT MIN(列名) FROM 表名;10. 查询表中指定列的平均值:SELECT AVG(列名) FROM 表名;11. 查询表中指定列的总和:SELECT SUM(列名) FROM 表名;12. 查询表中符合条件的记录数:SELECT COUNT(*) FROM 表名 WHERE 条件;13. 插入数据到表中:INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...); 14. 更新表中的数据:UPDATE 表名 SET 列名1=值1, 列名2=值2, ... WHERE 条件; 15. 删除表中的数据:DELETE FROM 表名 WHERE 条件;16. 创建表:CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,...);17. 删除表:DROP TABLE 表名;18. 添加表中的列:ALTER TABLE 表名 ADD 列名数据类型;19. 修改表中的列:ALTER TABLE 表名 MODIFY 列名新数据类型;20. 删除表中的列:ALTER TABLE 表名 DROP COLUMN 列名;以上是一些常见的MySQL面试题中常用的SQL语句。
mysql-50道经典sql题English.Q1: Find all customers who have placed orders with a total value of over $1000.sql.SELECT customer_id, SUM(order_total) AS total_value.FROM orders.GROUP BY customer_id.HAVING total_value > 1000;Q2: Find all products that have been ordered more than 10 times.sql.SELECT product_id, COUNT() AS order_count.FROM order_items.GROUP BY product_id.HAVING order_count > 10;Q3: Find all employees who have worked on more than 5 projects.sql.SELECT employee_id, COUNT() AS project_count.FROM project_assignments.GROUP BY employee_id.HAVING project_count > 5;Q4: Find all orders that were shipped within 2 days of being placed.sql.SELECT order_id, DATEDIFF(ship_date, order_date) AS shipping_time.FROM orders.WHERE shipping_time <= 2;Q5: Find all customers who have placed at least one order in the last year.sql.SELECT customer_id.FROM orders.WHERE order_date >= DATE_SUB(CURDATE(), INTERVAL 1YEAR);Chinese.Q1: 找出所有总订单价值超过 1000 美元的客户。
一、单项选择题(共25题每题2分)1下面不属于Msql数据库特点的是()A. 免费使用B.不能跨平台C.开源软件D.功能强大2定义表的一个字段, 要求能表示4位整数,2位小数数值,该定义正确的是 ( )(1分)A. char(6)B. varchar(6)C.decimal(4,2)D.decimal(6,2)3将浮点数8.625 保留2位小数,可以使用函数()A randB roundC floorD ceil表中sex列存储的是用户性别,最好使用下面()数据类型定义A char(2)B varchar(10)C enum(‘男’,’女’)D text4查询出表中的地址列addr为空,使用的是()A addr = nullB addr == nullC addr is nullD addr is not null5定义存储电话号码(座机、手机)的数据类型使用()A char(11)B intC doubleD bigint6创建数据库的语句是: ()A. database fromB. create databaseC. create fromD. create talbe7往数据表中新增一新的记录的命令是:()A. SELECTB. INTOC. INSERTD. UPDATE8设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。
若要把“张二的化学成绩80分”插入S中,则可用()A. ADD INTO S VALUES(’张二’,’化学’,’80’)B. INSERT INTO S VALUES(’张二’,’化学’,’80’)C. ADD INTO S VALUES(’张二’,’化学’,80)D. INSERT INTO S VALUES(’张二’,’化学’,80)9对于SQL语句”UPDATE Members SET Salary=Salary+300”,下列表述正确的是: ()A.将Members表中工资都增加300B.删除工资为300的记录C.查询工资为300的记录D.修改Members工资都扣除30010在navicat中进入控制台,设置当前数据库的命令是( )A.selectB.seteD. open11截取一小段字符串的函数是( )A.concatB.trimC.substringD.strcmp12求小于或等于一个数的最大的整数的函数是( )A. CEILINGB.MAXC.FLOORD.SQRT13 求平均值的聚合函数是( )A SUM B.AVG C.COUNT D.MAX14 条件查询中指明条件的关键字是( )A.ifB.whereC. conditionD.having15 在查询中,去除重复记录的关键字是( )A.havingB.distinctC.dropD.limit16 对查询结果进行排序的关键字是( )A.group byB.selectC.order byD.insert into17 对分组中的数据进行过滤的关键字是( )A. ORDERB.WHEREC.HAVINGD.JOIN18 多表内连接查询使用的语句是( )A. select…from…inner join …on..B. select ….from….left join .....on ……C.select….from….right join…..on…..D.select ……from…..full join……….19 mysql对查询结果进行升序排序的关键字是( )A.ASCB.DESCC. LIMITD.ORDER20 联合查询使用的关键字是( )A.UNIONB.JOINC.ALLD.FULL21 现有订单表orders,包含用户信息userid, 产品信息 productid, 以下()语句能够返回至少被订购过两回的productid?A. select productid from orders where count(productid)>1B. select productid from orders where max(productid)>1C. select productid from orders where having count(productid)>1 group by productidD. select produ ctid from orders group by productid having count(productid)>122 假设ABC表用于存储销售信息,A 列为销售人员名,C列为销售额度,现在需要查询最大一笔销售额度是多少,则正确的查询语句是()A select max(C) from ABC where max(C)>0B select A, max(C)from ABC where count(A)>0C select A,max(C) from ABC group by A,CD select max(C) from ABC23 假设ABC表用于存储销售信息,A 列为销售人员名,C列为销售额度,现在需要查询每个销售人员的销售次数、销售总金额,则正确的查询语句是()A select A , s um(C) ,count(A) from ABC group by AB select A,sum(C) from ABCC select A,sum(C) from ABC group by A order by AD select sum(C) from ABC group by a order by A24 要查询一个班中低于平均成绩的学生,需要使用的是()A order byB havingC avgD limit25 假设A、B表中都有id列,A表有10行数据,B表中有5行数据,执行下面的查询语句select * from A left join B on A.id=B.id 则返回()行数据A 5B 10C 50D 不确定二、多项选择题(共5小题每题4分)1 mysql中能存储日期(年、月、日)的数据类型有()A yearB dateC datetimeD timestamp2获得当前日期时间中天数的函数是( ) (1分)A. MONTHB.DAYOFYEARC.DAYOFMONTHD.DAY3mysql中的约束有( ) (4分)A.检查约束B.默认约束C.非空约束D.唯一约束4 能够实现删除一个字符串中的一小段字符串的函数有( )A trimB insertC replaceD instr5 统计学生信息表stuinfo中地址address不为空的学生数量,正确的语句是()A select count(*) as 学生数量 from stuinfoB select count(*) as 学生数量 from stuinfo where address is not nullC select count(address) as 学生数量 from stuinfoD select count(address) as 学生数量 from stuinfo where address !=null三、编程题(每小题2分,共30分)(1)部门信息表(2)员工信息表(3)员工考勤表(六月份)按要求完成下题:(1)按上面给出的内容分别创建表:部门信息表,员工信息表,员工考勤表,并添加合适的约束(员工考勤表分别与部门信息表及员工信息表相关联)(2)插入记录内容(3)在部门信息表中查询部门的编号,部门名称,部门主管,部门人数(4)查询出部门主管是巩柴燕的员工编号及姓名(5)查询出与赖易伟在同一部分的员工姓名(6)查询出电话号码第一,二位是1,5第四位是2,3的所有员工姓名,联系方式(7)查询出员工考勤表中全勤最多的前三名员工的部门编号,员工编号,员工姓名(8)查询六月份全勤员工的部门编号,部门名称,员工编号,员工姓名(9)查询出项目部门的所有员工姓名(10)修改考勤表增加一列字段:工资(11)按照工资进行降序排列(12)查询出工资在2500-3200之间的员工编号及员工姓名(13)从员工信息表及部门表中分别检索出员工编号,员工姓名,部门编号,部门名称创建一个新表员工综合信息表(14)统计出全公司共有多少员工,员工的平均工资是多少(15)删除员工信息表中005号的相关信息使得考勤表中的相关内容也做删除。
大学mysql考试题及答案一、选择题(每题2分,共20分)1. MySQL数据库默认使用的端口号是:A. 22B. 3306C. 80D. 8080答案:B2. 下列哪个选项是MySQL数据库的存储引擎?A. InnoDBB. OracleC. SQL ServerD. PostgreSQL答案:A3. 在MySQL中,用于创建新表的SQL语句是:A. CREATE DATABASEB. CREATE TABLEC. ALTER TABLED. DROP TABLE答案:B4. 以下哪个SQL语句用于删除数据库中的表?A. DROP DATABASEB. DROP TABLEC. TRUNCATE TABLED. DELETE FROM答案:B5. 以下哪个选项不是MySQL的数据类型?A. VARCHARB. TEXTC. DATETIMED. XML答案:D6. 在MySQL中,使用哪个关键字来创建索引?A. INDEXB. KEYC. UNIQUED. BOTH A and B答案:D7. 如果想要在查询结果中排除重复的行,应该使用哪个SQL语句?A. SELECT DISTINCTB. SELECT ALLC. SELECT UNIQUED. SELECT NODUPLICATE答案:A8. 在MySQL中,哪个函数用于获取当前日期和时间?A. NOW()B. CURRENT_DATEC. CURRENT_TIMED. BOTH B and C答案:A9. 以下哪个选项不是MySQL的权限类型?A. SELECTB. INSERTC. UPDATED. EXECUTE答案:D10. 在MySQL中,哪个命令用于查看当前数据库的版本?A. VERSION()B. SELECT VERSION()C. SHOW VERSIOND. ALL OF THE ABOVE答案:D二、填空题(每题2分,共20分)1. MySQL的______存储引擎支持事务处理。
MySQL数据库考试测试试题(附答案) Mysql 测试题(总分150分,时间2个小时)一、单项选择题( 1分1个,共100分)1.以下聚合函数求数据总和的是( )A.MAXB.SUMC.COUNTD.AVG答案:B2.可以用( )来声明游标A.CREATE CURSORB.ALTER CURSORC.SET CURSORD.DECLARE CURSOR答案:D3.SELECT语句的完整语法较复杂,但至少包括的部分是( ) A.仅SELECTB.SELECT,FROMC.SELECT,GROUPD.SELECT,INTO答案:B4.SQL语句中的条件用以下哪一项来表达( )A.THENB.WHILEC.WHERED.IF答案:C5.使用CREATE TABLE语句的( )子句,在创建基本表时可以启用全文本搜索A.FULLTEXTB.ENGINEC.FROMD.WHRER答案:A6.以下能够删除一列的是( )A.alter table emp remove addcolumnB.alter table emp drop column addcolumnC.alter table emp delete column addcolumnD.alter table emp delete addcolumn答案:B7.若要撤销数据库中已经存在的表S,可用()。
A.DELETE TABLE SB.DELETE SC.DROP SD.DROP TABLE S答案:D8.查找表结构用以下哪一项( )A.FINDB.SELETEC.ALTERD.DESC答案:D9.要得到最后一句SELECT查询到的总行数,可以使用的函数是( ) A.FOUND_ROWSB.LAST_ROWSC.ROW_COUNTD.LAST_INSERT_ID答案:A10.在视图上不能完成的操作是( )A.查询B.在视图上定义新的视图C.更新视图D.在视图上定义新的表答案:D11.UNIQUE惟一索引的作用是( )A.保证各行在该索引上的值都不得重复B.保证各行在该索引上的值不得为NULLC.保证参加惟一索引的各列,不得再参加其他的索引D.保证惟一索引不能被删除答案:A12.用于将事务处理写到数据库的命令是( ) A.insertB.rollbackC.commitD.savepoint答案:C13.查找条件为:姓名不是NULL的记录( ) A.WHERE NAME ! NULLB.WHERE NAME NOT NULLC.WHERE NAME IS NOT NULLD.WHERE NAME!=NULL答案:C14.主键的建立有( )种方法A.一B.四C.二D.三答案:D15.在视图上不能完成的操作是( )A.更新视图数据B.在视图上定义新的基本表C.在视图上定义新的视图D.查询答案:B16.在SQL语言中,子查询是()。
MysqlSql语句练习题(50道)表名和字段–1.学⽣表Student(s_id,s_name,s_birth,s_sex) –学⽣编号,学⽣姓名, 出⽣年⽉,学⽣性别–2.课程表Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号–3.教师表Teacher(t_id,t_name) –教师编号,教师姓名–4.成绩表Score(s_id,c_id,s_score) –学⽣编号,课程编号,分数测试数据--建表--学⽣表CREATE TABLE `Student`(`s_id` VARCHAR(20),`s_name` VARCHAR(20) NOT NULL DEFAULT '',`s_birth` VARCHAR(20) NOT NULL DEFAULT '',`s_sex` VARCHAR(10) NOT NULL DEFAULT '',PRIMARY KEY(`s_id`));--课程表CREATE TABLE `Course`(`c_id` VARCHAR(20),`c_name` VARCHAR(20) NOT NULL DEFAULT '',`t_id` VARCHAR(20) NOT NULL,PRIMARY KEY(`c_id`));--教师表CREATE TABLE `Teacher`(`t_id` VARCHAR(20),`t_name` VARCHAR(20) NOT NULL DEFAULT '',PRIMARY KEY(`t_id`));--成绩表CREATE TABLE `Score`(`s_id` VARCHAR(20),`c_id` VARCHAR(20),`s_score` INT(3),PRIMARY KEY(`s_id`,`c_id`));--插⼊学⽣表测试数据insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into Student values('02' , '钱电' , '1990-12-21' , '男');insert into Student values('03' , '孙风' , '1990-05-20' , '男');insert into Student values('04' , '李云' , '1990-08-06' , '男');insert into Student values('05' , '周梅' , '1991-12-01' , '⼥');insert into Student values('06' , '吴兰' , '1992-03-01' , '⼥');insert into Student values('07' , '郑⽵' , '1989-07-01' , '⼥');insert into Student values('08' , '王菊' , '1990-01-20' , '⼥');--课程表测试数据insert into Course values('01' , '语⽂' , '02');insert into Course values('02' , '数学' , '01');insert into Course values('03' , '英语' , '03');--教师表测试数据insert into Teacher values('01' , '张三');insert into Teacher values('02' , '李四');insert into Teacher values('03' , '王五');--成绩表测试数据insert into Score values('01' , '01' , 80);insert into Score values('01' , '02' , 90);insert into Score values('01' , '03' , 99);insert into Score values('02' , '01' , 70);insert into Score values('02' , '02' , 60);insert into Score values('02' , '03' , 80);insert into Score values('03' , '01' , 80);insert into Score values('03' , '02' , 80);insert into Score values('03' , '03' , 80);insert into Score values('04' , '01' , 50);insert into Score values('04' , '02' , 30);insert into Score values('04' , '03' , 20);insert into Score values('05' , '01' , 76);insert into Score values('05' , '02' , 87);insert into Score values('06' , '01' , 31);insert into Score values('06' , '03' , 34);insert into Score values('07' , '02' , 89);insert into Score values('07' , '03' , 98);表数据如下student 学⽣表:s_id s_name s_birth s_sex01赵雷1990-01-01男02钱电1990-12-21男03孙凤1990-05-20男04李云1990-08-06男05周梅1991-12-12⼥06吴兰2017-12-13⼥07郑⽵1989-07-01⼥08王菊1990-01-20⼥09赵雷1990-01-21⼥10赵雷1990-01-22男score 分数表:s_id c_id s_score010180010290010399020170020260020380030180030280030380040150040230040320050176050387060131060334070389070198course 课程表c_id c_name t_id01语⽂0202数学0103英语03teacher ⽼师表:t_id t_name01张三02李四03王五-- 准备条件,去掉 sql_mode 的 ONLY_FULL_GROUP_BY 否则此种情况下会报错:-- Expression #1 of select list is not in group by clause and contains nonaggregated column 'userinfo.-- 原因:-- MySQL 5.7.5和up实现了对功能依赖的检测。
mysql sql语句面试经典50题1. 查询所有列的数据:```sqlSELECT * FROM table_name;```2. 条件查询:```sqlSELECT * FROM table_name WHERE condition;```3. 排序查询:```sqlSELECT * FROM table_name ORDER BY column_name ASC/DESC;```4. 去重查询:```sqlSELECT DISTINCT column_name FROM table_name;```5. 统计行数:```sqlSELECT COUNT(*) FROM table_name;```6. 条件统计:```sqlSELECT COUNT(*) FROM table_name WHERE condition;```7. 分组统计:```sqlSELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;```8. 连接查询-内连接:```sqlSELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;```9. 连接查询-左连接:```sqlSELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;```10. 连接查询-右连接:```sqlSELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;```11. 子查询:```sqlSELECT column_name FROM table_name WHERE column_name = (SELECT column_name FROM another_table WHERE condition);```12. 更新数据:```sqlUPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;```13. 插入数据:```sqlINSERT INTO table_name (column1, column2) VALUES (value1, value2);```14. 删除数据:```sqlDELETE FROM table_name WHERE condition;```15. 模糊查询:```sqlSELECT * FROM table_name WHERE column_name LIKE 'pattern';```16. 使用通配符的模糊查询:```sqlSELECT * FROM table_name WHERE column_name LIKE '%pattern%';```17. 使用正则表达式的模糊查询:```sqlSELECT * FROM table_name WHERE column_name REGEXP 'pattern';```18. 限制结果集的行数:```sqlSELECT * FROM table_name LIMIT 10;```19. 跳过前N行:```sqlSELECT * FROM table_name LIMIT offset, count;```20. 计算平均值:```sqlSELECT AVG(column_name) FROM table_name;```21. 计算总和:```sqlSELECT SUM(column_name) FROM table_name;```22. 计算最大值和最小值:```sqlSELECT MAX(column_name), MIN(column_name) FROM table_name;```23. 使用CASE语句进行条件查询:```sqlSELECT column_name, CASE WHEN condition THEN 'value1' ELSE 'value2' END FROM table_name;```24. 使用GROUP BY和HAVING进行分组过滤:```sqlSELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;```25. 多表更新:```sqlUPDATE table1 SET column1 = value1 WHERE column_name IN (SELECT column_name FROM table2 WHERE condition);```26. 多表删除:```sqlDELETE FROM table1 WHERE column_name IN (SELECT column_name FROM table2 WHERE condition);```27. 创建表:```sqlCREATE TABLE table_name (column1 datatype,column2 datatype,...);```28. 修改表结构-添加列:```sqlALTER TABLE table_name ADD column_name datatype;```29. 修改表结构-修改列数据类型:```sqlALTER TABLE table_name MODIFY column_name new_datatype;```30. 修改表结构-删除列:```sqlALTER TABLE table_name DROP COLUMN column_name;```31. 创建索引:```sqlCREATE INDEX index_name ON table_name (column_name);```32. 删除索引:```sqlDROP INDEX index_name ON table_name;```33. 使用LIMIT和OFFSET进行分页查询:```sqlSELECT * FROM table_name LIMIT page_size OFFSET (page_number - 1) * page_size;```34. 使用IFNULL处理空值:```sqlSELECT column1, IFNULL(column2, 'default_value') FROM table_name;```35. 使用COALESCE处理空值:```sqlSELECT column1, COALESCE(column2, 'default_value') FROM table_name;```36. 计算日期差:```sqlSELECT DATEDIFF(date1, date2) FROM table_name;```37. 获取当前日期和时间:```sqlSELECT NOW();```38. 获取唯一标识符:```sqlSELECT UUID();```39. 使用INNER JOIN和GROUP BY计算每个组的总数:```sqlSELECT table1.column_name, COUNT(*) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name GROUP BY table1.column_name;```40. 使用CASE语句进行多条件查询:```sqlSELECT column_name, CASE WHEN condition1 THEN 'value1' WHEN condition2 THEN 'value2' ELSE 'value3' END FROM table_name;```41. 使用CONCAT连接字符串:```sqlSELECT CONCAT(column1, ' ', column2) AS concatenated_string FROM table_name;```42. 使用TRIM去除字符串两端的空格:```sqlSELECT TRIM(column_name) FROM table_name;```43. 使用LEFT和RIGHT截取字符串:```sqlSELECT LEFT(column_name, length) FROM table_name;SELECT RIGHT(column_name, length) FROM table_name;```44. 使用IN进行多值匹配:```sqlSELECT * FROM table_name WHERE column_name IN (value1, value2, value3);```45. 使用BETWEEN进行范围查询:```sqlSELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;```46. 使用COUNT和GROUP BY查找重复值:```sqlSELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;```47. 使用DATE_FORMAT格式化日期:```sqlSELECT DATE_FORMAT(column_name, '%Y-%m-%d') FROM table_name;```48. 使用SUM和GROUP BY进行累计求和:```sqlSELECT column_name, SUM(column_name) OVER (ORDER BY column_name) AS running_total FROM table_name;```49. 使用CONVERT进行数据类型转换:```sqlSELECT column_name, CONVERT(column_name, new_datatype) FROM table_name;```50. 使用UPDATE和LIMIT进行分页更新:```sqlUPDATE table_name SET column1 = value1 LIMIT page_size OFFSET (page_number -1) * page_size;```。
大学MySQL查找考试题及答案一、选择题(每题2分,共20分)1. MySQL中用于创建新表的SQL语句是:A. CREATE DATABASEB. CREATE TABLEC. CREATE INDEXD. CREATE VIEW答案:B2. 在MySQL中,用于添加新数据行的SQL语句是:A. INSERT INTOB. UPDATEC. DELETED. SELECT答案:A3. 下列哪个选项是MySQL中用于删除表的SQL语句?A. DROP DATABASEB. DROP TABLEC. DROP INDEXD. DROP VIEW答案:B4. 用于更新表中数据的SQL语句是:A. INSERT INTOB. UPDATEC. DELETED. SELECT答案:B5. 在MySQL中,哪个关键字用于从表中检索数据?A. SELECTB. FROMC. WHERED. ORDER BY答案:A6. 如果要查找表中所有记录,应该使用哪个SQL语句?A. SELECT *B. SELECT ALLC. SELECT DISTINCTD. SELECT COUNT答案:A7. 在MySQL中,用于删除数据行的SQL语句是:A. INSERT INTOB. UPDATEC. DELETED. SELECT答案:C8. 以下哪个选项是用于在查询中过滤数据的SQL语句?A. SELECTB. WHEREC. ORDER BYD. GROUP BY答案:B9. 在MySQL中,哪个关键字用于对结果集进行排序?A. ORDER BYB. GROUP BYC. HAVINGD. LIMIT答案:A10. 使用哪个SQL语句可以在表中创建新列?A. ALTER TABLEB. CREATE TABLEC. DROP TABLED. RENAME TABLE答案:A二、填空题(每题3分,共30分)1. 在MySQL中,使用________语句可以创建一个新数据库。
一、单项选择题(共 25题每题 2分)1下面不属于 Msql 数据库特点的是()A. 免费使用B. 不能够跨平台 C. 开源软件 D. 功能富强2定义表的一个字段 ,要求能表示 4 位整数 ,2位小数数值 , 该定义正确的选项是()(1 分)A. char(6)B. varchar(6)C.decimal(4,2)D.decimal(6,2)3将浮点数 8.625 保留 2 位小数,能够使用函数()A randB roundC floorD ceil表中 sex 列储藏的是用户性别,最好使用下面()数据种类定义A char(2)B varchar(10)C enum ( ‘男’ , ’女’)D text 4盘问出表中的地址列addr 为空,使用的是()A addr = nullB addr == nullC addr is nullD addr is not null5 定义储藏电话号码(座机、手机)的数据种类使用()A char(11)B intC doubleD bigint6创办数据库的语句是: ()A. database fromB. create databaseC. create fromD. create talbe7往数据表中新增一新的记录的命令是:()A. SELECTB. INTOC. INSERTD. UPDATE8 设关系数据库中一个表S 的结构为 S( SN,CN,grade ),其中 SN为学生名, CN为课程名,二者均为字符型; grade 为成绩,数值型,取值范围0- 100。
若要把“张二的化学成绩80 分”插入 S 中,则可用()A. ADD INTO S VALUES (’张二’,’化学’,’ 80’)B. INSERT INTO S VALUES(’张二’,’化学’,’ 80’)C. ADD INTO S VALUES (’张二’,’化学’,80)D. INSERT INTO S VALUES(’张二’,’化学’,80)9 对于 SQL语句” UPDATEMembers SET Salary=Salary+300” , 以下表述正确的选项是: ()A. 将 Members表中薪水都增加 300B. 删除薪水为 300 的记录C.盘问薪水为 300 的记录D.更正 Members薪水都扣除 300 10在 navicat中进入控制台 , 设置当前数据库的命令是()D. open11截取一小段字符串的函数是()12求小于或等于一个数的最大的整数的函数是()A.CEILING13求平均值的聚合函数是 ()A SUM14条件盘问中指明条件的要点字是()C. condition15在盘问中 , 去除重复记录的要点字是()16对盘问结果进行排序的要点字是()A.group by C.order by into17分中的数据行的关字是()A. ORDER18多表内接使用的句是()A. select⋯ from ⋯ inner join⋯ on..B. select⋯ .from ⋯ .left join .....on⋯⋯C.select ⋯ .from ⋯ .right join⋯ ..on ⋯..⋯⋯ from ⋯ ..full join⋯⋯⋯ .19 mysql 果行升序排序的关字是()C. LIMIT20合使用的关字是()21有表 orders ,包含用信息userid,品信息 productid,以下()句能返回最少被两回的productid?A. select productid from orders where count(productid)>1B. select productid from orders where max(productid)>1C. select productid from orders where having count(productid)>1group by productidD. select produ ctid from orders group by productid having count(productid)>122 假 ABC表用于存售信息, A 列售人名, C 列售度,在需要最大一笔售度是多少,正确的句是()A select max(C) from ABC where max(C)>0B select A, max(C)from ABC where count(A)>0C select A,max(C)from ABC group by A,CD select max(C)from ABC23假 ABC表用于存售信息, A 列售人名, C 列售度,在需要每个售人的售次数、售金,正确的句是()A select A , s um(C) ,count(A) from ABC group by AB select A,sum(C) from ABCC select A,sum(C) from ABC group by A order by AD select sum(C) from ABC group by a order by A24要一个班中低于平均成的学生,需要使用的是()A order byB havingC avgD limit25假 A、 B 表中都有 id 列, A 表有 10 行数据, B 表中有 5 行数据,行下面的句返回()行数据A 5B10C 50D不确定二、多项选择题(共 5 小题每题 4 分)1 mysql中能存日期(年、月、日)的数据型有()A yearB dateC datetimeD timestamp测试题班级 : ___________姓名 :____________科目 : MYSQL2获得当前日期时间中天数的函数是()(1 分)A. MONTH3mysql 中的拘束有 ()(4 分)A. 检查拘束B. 默认拘束C. 非空拘束D. 唯一拘束4能够实现删除一个字符串中的一小段字符串的函数有()A trimB insertC replaceD instr5统计学生信息表 stuinfo 中地址 address 不为空的学生数量,正确的语句是()A select count(*) as学生数量 from stuinfoB select count(*) as学生数量 from stuinfo where address is not nullC select count(address) as学生数量 from stuinfoD select count(address) as学生数量 from stuinfo where address !=null三、编程题(每题 2 分,共 30 分)(1)部门信息表(2)员工信息表(3)员工考勤表(六月份)测试题班级 : ___________姓名:____________科目: MYSQL按要求完成下题:(1)按上面给出的内容分别创办表:部门信息表 ,员工信息表 ,员工考勤表 ,并增加合适的拘束(员工考勤表分别与部门信息表及员工信息表相关系)(2)插入记录内容(3)在部门信息表中盘问部门的编号,部门名称,部门主管,部门人数(4)盘问出部门主管是巩柴燕的员工编号及姓名(5)盘问出与赖易伟在同一部分的员工姓名(6)盘问出电话号码第一,二位是1,5 第四位是 2, 3 的所有员工姓名,联系方式(7)盘问出员工考勤表中全勤最多的前三名员工的部门编号,员工编号,员工姓名(8)盘问六月份全勤员工的部门编号,部门名称,员工编号,员工姓名(9)盘问出项目部门的所有员工姓名(10)更正考勤表增加一列字段:薪水(11)依照薪水进行降序排列(12)盘问出薪水在 2500-3200 之间的员工编号及员工姓名(13)从员工信息表及部门表中分别检索出员工编号 ,员工姓名 ,部门编号 ,部门名称创办一个新表员工综合信息表(14)统计出全公司共有多少员工,员工的平均薪水是多少(15)删除员工信息表中 005 号的相关信息使得考勤表中的相关内容也做删除。
mysql笔试题目及答案一、选择题(每题2分,共20分)1. MySQL数据库默认的存储引擎是()。
A. InnoDBB. MyISAMC. MemoryD. Archive答案:B2. 下列哪个选项不是MySQL的索引类型?()A. B-TreeB. HashC. R-TreeD. Full-Text答案:B3. MySQL中,以下哪个函数用于获取当前时间?()A. NOW()B. CURDATE()C. CURTIME()D. DATE()答案:A4. 在MySQL中,以下哪个选项是正确的创建数据库的语法?()A. CREATE DATABASE database_name;B. CREATE DATABASE database_name COLLATE utf8_general_ci;C. CREATE TABLE database_name;D. CREATE DATABASE database_name IF NOT EXISTS;答案:D5. 在MySQL中,以下哪个选项是正确的创建表的语法?()A. CREATE TABLE table_name (column1 INT, column2 VARCHAR(10));B. CREATE TABLE table_name (column1 INT, column2 VARCHAR(10)) ENGINE=InnoDB;C. CREATE TABLE table_name (column1 INT, column2 VARCHAR(10)) CHARSET=utf8;D. CREATE TABLE table_name (column1 INT, column2 VARCHAR(10)) ENGINE=InnoDB CHARSET=utf8;答案:D6. MySQL中,以下哪个选项是正确的删除表的语法?()A. REMOVE TABLE table_name;B. DROP TABLE table_name;C. DELETE TABLE table_name;D. REMOVE table_name;答案:B7. 在MySQL中,以下哪个选项是正确的插入数据的语法?()A. INSERT INTO table_name (column1, column2) VALUES (value1, value2);B. INSERT INTO table_name VALUES (value1, value2);C. INSERT INTO table_name (column1, column2) SET value1,value2;D. INSERT INTO table_name SET (column1, value1), (column2, value2);答案:A8. 在MySQL中,以下哪个选项是正确的更新数据的语法?()A. UPDATE table_name SET column1 = value1, column2 = value2WHERE condition;B. UPDATE table_name SET column1 = value1 WHERE condition;C. UPDATE table_name SET column1 = value1, column2 = value2;D. UPDATE table_name column1 = value1, column2 = value2 WHERE condition;答案:A9. 在MySQL中,以下哪个选项是正确的查询数据的语法?()A. SELECT * FROM table_name WHERE condition;B. SELECT * FROM table_name;C. SELECT table_name WHERE condition;D. SELECT * FROM table_name WHERE condition LIMIT 10;答案:A10. 在MySQL中,以下哪个选项是正确的删除数据的语法?()A. DELETE FROM table_name WHERE condition;B. REMOVE FROM table_name WHERE condition;C. DELETE table_name WHERE condition;D. REMOVE table_name WHERE condition;答案:A二、填空题(每题3分,共15分)1. MySQL中,使用________函数可以获取当前日期。
SQL 模块1:题目:(答题时间15或20分钟)总计:100分表1该表中的超键可以是()(注:写出10个即可)。
该表中的候选键可以是()(注:写出5个即可)。
2、软件系统一般构筑为3层结构:物理层、逻辑层和应用层。
数据库系统对应分为3个模式,请填写图1中的空白框,完成数据库系统结构图。
图13、名词解释。
●数据库●数据库表●数据库系统●数据库管理系统●存储过程答案及评分标准:题目1:答案:1)、该表的超键可以是:●{学号}●{学号、姓名}●{学号、性别}●{学号、年龄}●{学号、系别}●{学号、专业}●{学号、姓名、性别}●{学号、姓名、年龄}●{学号、姓名、专业}●{姓名、性别}●{姓名、年龄}●{系别、专业}2)、该表的候选键可以是:●{学号}●{姓名、性别}●{姓名、年龄}●{专业}●{年龄、系别}●{姓名、专业}●{姓名、系别}出题说明:考察学员对表的超键和候选键的理解和实际应用能力。
评分标准分析:1、写了一个超键给2分,写错一个扣4分,此问共20分(此问学员答错了,证明学员对超键的概念不理解。
正确写出一个表的超键是对学员最基本的要求)。
2、写了一个候选键给4分,写错一个扣8分,此问共20分(此问学员答错了,证明学员对候选键的概念不理解。
正确写出一个表的候选键是对学员最基本的要求)。
特别说明:题目中表的超键和候选键不只答案中列出的几个,有很多,请阅卷教师根据学员答题的具体情况判断正误并给分。
题目2:答案:完整的数据库系统结构图如图2所示。
图2出题说明:考察学员对数据库系统结构图的认知。
评分标准分析:外模式A、外模式B、外模式C作为一个框给分,一共5个框,每个框填写正确给4分,错误扣4分,共20分。
(此问题考察学员对数据库系统结构图的认知程度,根据回答的内容可以看出学员对关系型数据库的基本结构是否了解。
)题目3:答案:●数据库:是数据的集合,是同类实体的集合,它包括数据库表和其他的数据对象。
●数据库表:是一个由行和列组成的二维数据对象,用来在关系数据库中存储数据。
●数据库系统:是一个实际可运行的软件系统,可以对系统提供的数据进行存储、维护和应用。
●数据库管理系统:是一种系统软件,由一个互相关联的数据的集合和一组用以访问这些数据的程序构成。
●存储过程:是经过预编译的多条Transact-SQL语句的集合,一个存储过程有一个名称,并且被作为一个整体执行。
出题说明:考察学员对数据库涉及的基本概念的认识程度。
评分标准分析:每个概念对了给8分,错了扣8分。
(学员答错了某个概念,证明学员对该概念不了解。
)SQL 模块2:题目:(答题时间15或20分钟)总计:100分1、请写出SQL Server主要服务的名称及作用。
2、请写出SQL Server 2000中系统数据库的名称及其作用。
3、在创建数据库之前,应考虑的事项有哪些?可用于存储数据库的文件类型有()种,它们分别是(),作用是什么?答案及评分标准:题目1:答案:1、SQL Server服务:实现SQL Server数据库引擎。
在计算机上运行的每个SQL Server实例都有一个SQL Server服务。
2、SQL Server Agent:是实现运行调度的SQL Server 管理任务的代理程序。
3、Microsoft Search:实现全文本检索引擎。
4、Distributed Transaction Coordinator:管理分布式事务。
5、MSSQLServerADHelper:支持Active Directory 集成,包括数据库实例注册。
出题说明:考察学员对SQL Server服务的认知程度。
评分标准分析:1、正确写出一个服务的名称给3分,写错或写不出扣6分,此问共15分。
(此问学员答错了,证明学员没有记住SQL Server的主要服务。
记住这些服务的名称是对学员最基本的要求)。
2、正确写出一个服务的功能给3分,写错一个扣3分,此问共15分(此问学员答错了,证明学员对某个服务的功能不了解)。
题目2:答案:1、master 数据库:记录SQL Server 系统所有系统级别的信息。
2、tempdb数据库:保存所有的临时表和临时存储过程。
3、model 数据库:用作在系统上创建的所有数据库的模板。
4、msdb数据库:供SQL Server代理程序调度警报和作业以及记录操作员时使用,该数据库与自动化任务相关。
5、distribution数据库:当建立分发和发布机制时,发布数据库默认为distribution。
出题说明:考察学员对SQL Server2000系统中系统数据库的认知程度。
评分标准分析:1、写了一个系统数据库的名称给3分,写错或写不出扣6分,此问共15分。
(此问学员答错了,证明学员没有记住SQL Server系统数据库的名字。
记住系统数据库的名称是对学员最基本的要求)。
2、写了一个系统数据库的功能给3分,写错一个扣3分,此问共15分(此问学员答错了,证明学员对某种系统数据库的功能不了解)。
题目3:答案:1)、在创建数据库之前,应考虑的事项有:●创建数据库的权限默认授予sysadmin和dbcreator固定服务器角色的成员,但该成员仍可以授予其他用户。
●创建数据库的用户将成为该数据库的所有者。
●在一个服务器上,最多可以创建32767个数据库。
●数据库名称必须遵循标识符规则。
2)33)主文件、次要文件、事务日志4)主文件:包含数据库的启动信息。
主文件还用于存储数据。
每个数据库都包含一个主文件。
次要文件:包含有不能置于主要数据文件中的所有数据。
事务日志:包含用于恢复数据库的日志信息。
每个数据库必须至少有一个事务日志文件。
出题说明:考察学员对创建数据库的认知程度。
评分标准分析:1、每个注意事项回答正确给1分,错了扣1分,共4分(某个注意事项学员答错了,证明学员在创建数据库时没有注意这个事项)。
2、回答正确给3分,错了扣5分(学员答错了,证明学员不知道数据库存储在哪几种类型的文件中,这是对学员最基本的要求)。
3、每种文件类型回答正确给3分,错了扣5分,共9分(某个文件类型学员答错了,证明学员不知道在创建数据库时需要此类型的文件,这是对学员最基本的要求)。
4、每种文件类型的作用回答正确给8分,错了扣8分,共24分(某个文件类型的作用学员答错了,证明学员不知道此类型文件在创建数据库时的作用)。
SQL 模块3:题目:(答题时间15或20分钟)总计:100分创建该表的语句为( )。
2、表2 统计国有大中型企业总数的语句为()。
表3显示各省市名称及拥有国有大中型企业的数目,并按国有大中型企业数目由高到低的顺序排列的语句为( )。
表4课程编号表classnumber如表5所示:表5安排课程的老师希望查看选修人数大于20人的课程名称,实现的语句为( )。
答案及评分标准:题目1:答案:create table studentInfo(学号 int null,姓名 nvarchar(50) null,性别 nvarchar(50) null,年龄 int null,系别 nvarchar(50) null,专业 nvarchar(50) null)出题说明:考察学员对create table语句的掌握情况。
评分标准分析:正确给20分,错了扣25分(学员答错了,证明学员没有掌握create table 语句的正确使用)。
特别说明:1、教师在判卷时注意可以细节:●int后没有括号●专业 nvarchar(50) null子句后没有逗号2、学员答题时可以不包括null关键字3、学员答题是可以不使用数据类型nvarchar,而使用varchar、nchar或char。
类似情况还有使用数据类型int4、教师可根据学员答题的具体情况给分。
题目2:答案:select count(*)from CompanyInfo出题说明:考察学员对count函数的实际应用。
评分标准分析:正确给20分,错了扣25分(学员答错了,证明学员没有掌握count函数的使用方法,此函数的应用非常广泛,学员必须掌握)。
题目3:答案:select 所在省市,count(所在省市)as 数量from CompanyInfogroup by 所在省市order by 数量 desc出题说明:考察学员对单表查询方法是否掌握,并可以使用正确使用group by和order by 子句。
评分标准分析:正确给30分,错了扣30分(学员答错了,证明学员对单表查询的方法或group by、order by子句的使用方法没有掌握)。
题目4:答案:select 课程名称from classnumberwhere 20<(select count(姓名)from selectclasswhere selectclass.课程编号=classnumber.课程编号)出题说明:考察学员对多表查询方法是否掌握。
评分标准分析:正确给30分,错了扣30分(学员答错了,证明学员对多表查询的方法没有掌握)。