sql测试题

1.为什么需要存储引擎

答:由于不同用户对数据的容量,访问速度,数据安全性有着不同的要求。为了满足不同用户的需求,mysql数据库采用多种存储引擎来进行数据的存储

 

 

 

2.MyISAM和InnoDB的区别

答:MyISAM无需事务,空间小,以查询访问为主;InnoDB多删除、更新操作,安全性高,事务处理及并发控制

 

 

 

3.InnoDB引擎以及MyISAM生成的文件,以及各自的含义

答:InnoDB类型的文件:

*.frm:表结构定义文件,存放表的元数据,与存储引擎无关

*.ibd:数据文件,存放表中的数据

MyISAM类型的文件:

*.frm:表结构定义文件

*.MYD:数据文件

*.MYI:索引文件

 

 

 

4.模拟向teacher表中同时新增3条数据,两种方式

答:01. insert into teacher (‘id’,‘name’) values (3,‘小黑3’);

insert into teacher (‘id’,‘name’) values (4,‘小黑4’);

insert into teacher (‘id’,‘name’) values (5,‘小黑5’);

02. insert into teacher (‘id’,‘name’) values(3,‘小黑3’),(4,‘小黑4’),(5,‘小黑5’);

 

 

 

5.修改teacher表中id=5的sex和address

答:update `teacher` set sex='女',address='五道口' where id=5;

 

 

 

6.delete ,drop ,truncate的区别

答:1)delete后面可以拼接where条件,删除指定的行

  truncate只能删除表中所有的数据,不能有where

2)速度上,drop>truncate>delete

3)delete可以回滚,数据库可以恢复

  truncate不能事务回滚,数据不可恢复

4)delete、truncate都是删除数据表的结构,索引、约束等属性不会删除。而drop则是删除全部。

 

 

 

7.使用别名的方式以及注意点

答:列名 AS 别名 或省略AS 列名 别名

如果别名中有特殊符号,必须把别名用单引号引起来

 

 

 

8. %和_的区别

答:%表示任意个字符,而_表示一个字符

 

 

 

9.常用的聚合函数 5个

答:count()查询某个字段的行数

max()查询某个字段的最大值

min()查询某个字段的最小值

sum()查询某个字段的和

avg()查询某个字段的平均值

 

 

 

10.谈谈你对dual表的理解

答:dual:伪表,是一个只有一行一列的表,只能查询,不能对dual进行增删改

mysql中是一个摆设,而在order中则必须使用from dual;

 

 

 

11.分页使用的关键字 以及每个参数的含义

答:limit(a,b) a表示开始查询的位置,b表示每页显示几条数据

 

 

 

12.分组的关键字,分组之后带条件查询使用什么关键字

答:分组group by

分组后带条件查询having

 

 

 

13.数据库设计

公司业务发展迅速,人员在组织结构上做了详细的规划,重新制定了人员组织架构。为了更好的管理公司的人员。HR 需要设计数据库结构来管理。下面给出了包含的表结构,请完善表字段,并且写出要求的SQL 。(每题只能写一个SQL)

书写格式: 表名(英文名称):字段1名称(字段1英文名称),字段2名称(字段2英文名称)

人员表(tb_person):

creat table tb_person(

id int(4) not null comment '卡号' primary key,

name varchar(50) not null comment '姓名',

date datetime not null comment '入职日期'

)

职位表(tb_job):

creat table tb_job(

j_id int(4) not null comment '职位编号' primary key,

j_name varchar(50) not null comment '职位',

id int(4) not null comment '卡号'

)

人员变更记录表(tb_person_his):

creat table tb_person_his(

id int(4) not null,

f_time datatime not null comment '入职时间',

l_time datatime comment '离职时间',

date datetime comment '职位变更时间',

first_id int(4) not null comment '变更前职位编号',

last_id int(4) not null comment '变更后职位编号'

)

1.统计2018年新增人员占比(显示为 % 制格式)。

select concat((select concat(id) from tb_person where datetime like '2018%')/(select count(id) from tb_person),'%');

2.查询2018年职位变更的人员名单。

select name '姓名' from tb_person where id in(select id from tb_person_his where date like '2018%');

3.查询截止到目前各个职位的人员总数。

select j_name '职位',count(id) '人数'

from tb_person_his,tb_job

where tb_job.id=tb_person_his.id

group by job_name;

 

 

 

14.编程题

请编写代码将字符串 “服微端云入加迎欢|welcome join us !” 按照 “欢迎加入云端微服 welcome join us !” 正确的表达格式输出,并且统计英文字母的个数并输出。

代码:

String str = “服微端云入加迎欢|welcome join us !”;

答:String str="服微端云入加迎欢|welcome join us !";

int flag=0;

String str1=str.substring(0, 8);

String str2=str.substring(9);

StringBuffer sb1=new StringBuffer(str1);

sb1.reverse();

String newStr=sb1.append(str2).toString();

System.out.println(newStr);

for (int i = 0; i < str2.length(); i++) {

char letter=str2.charAt(i);

if (String.valueOf(letter).matches("^[a-zA-Z]$")) {

flag++;

}

}

System.out.println("英文字符有:"+flag+"个");

 

 

 

15.查询所有老师对应导师的姓名

答:SELECT s.id,s.name,p.name'导师' FROM teacher s LEFT JOIN teacher p ON s.tid=p.id ORDER BY id

阅读更多
个人分类: SQL
想对作者说点什么? 我来说一句

sql2000测试题语句

2011年09月04日 5KB 下载

S2 SQL内部测试题

2009年05月15日 40KB 下载

SQL Advance测试题.doc

2010年12月05日 27KB 下载

sql期末测试题

2013年01月11日 163KB 下载

北大青鸟SQL内部测试题

2011年01月09日 75KB 下载

sql能力评定测试题

2009年11月12日 1003KB 下载

没有更多推荐了,返回首页

不良信息举报

sql测试题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭