MySQL相关面试题
MySQL相关面试题:
1、请写出删除和插入的sql语句
删除3种
(1)、指定删除
delete from tableName where 字段=" ";
(2)、批量删除(有2种)
A、delete from tableName;
B、truncate table tableName;
插入有4种
1、插入单条数据
insert into tableName values();
2、插入多条数据
insert into tableName values
(),
...
();
3、给指定字段插入数据
(注意:插入之前查看下它是否默认为空)
insert into tableName(指定字段) values();
4、插入表
(思路:1、克隆表,2、插入数据)
create table NewtableName like OldtableName;
insert into NewtableName select * from OldtableName;
2、having和group by区别
having只能⽤于group by(分组统计语句中)
where 是⽤于在初始表中筛选查询,having⽤于在where和group by 结果分组中查询
having ⼦句中的每⼀个元素也必须出现在select列表中
having语句可以使⽤聚合函数,⽽where不使⽤
3、根据学生表的学生成绩,把学生成绩按照不同分数段分为满分,优秀,良好,及格,不及格
(1)、创建表:
create table student(
id int primary key,
name varchar(10),
class varchar(20),
score float );
(2)、插入数据:
insert into student values
(1,"xiaoming","english",90),
(2,"zhaosi","math",80),
(3,"zhangsan","wuli",90),
(4,"wangmazi","huaxue",76),
(5,"xiaoxio","yvwen",100),
(6,"laomao","ziran",56);
(3)、查询
select(
case
when score=100 then "满分"
when score>=90 then "优秀"
when score>=80 then "良好"
when score>=60 then "及格"
when score<60 then "不及格"
end)
score,name,class from student;
4、统计出男的有几个,女的有几个
(1)创建表
create table employee(
id varchar(6) primary key,
name varchar(10),
sex varchar(6),
age int,
score int);
(2)插入数据
insert into employee values
("001","lisi","nv",23,90),
("002","wangwu","nan",23,98),
("003","wangmazi","nv",20,56),
("004","zhaosi","nan",26,88),
("005","xiaoming","nan",30,89);
(3)统计
select sex as xingbie,count(sex) as renshu from employee group by xingbie;
统计出成绩的最高分 最低分 平均分 总分
(这个如果没有数据的数据的话 需要和上一题一样 创建表和插入数据)
select sum(score)as 总分,max(score)as 最高分,min(score)as 最低分,avg(score)as 平均分 from employee;
输出不同性别的总分数
(这个如果没有数据的数据的话 需要和上一题一样 创建表和插入数据)
select sex as 性别,sum(score)as 总分 from employee group by 性别;
5、删除学生成绩中分数为90分的记录
(1)创建表
(2)插入数据
(3)删除(1,2可以根据上述第3题的创建表和插入数据)
delete from student where score=90;
6、MySQL登录命令
mysql -h 服务器地址 -u 用户名 -p 密码
7、如果修改了端口如何登录
(1)重启服务
(2)输入命令 mysql -h 服务器地址 -P 指定端口 -u用户名 -p 密码
8、mysql使用具体哪个数据库的命令
use databaseName;
9、查询有多少表
(1)首先进入到数据库
(2)在这个数据库查询具体有多少表
show tables;
10、查询数据库的版本
select version();
11、查询表中的所有数据
(1)、创建表
(2)、插入数据
(3)、查询
select * from tableName;
12、查询出姓名一样的数据
(1)、创建表
(2)、插入数据
(3)、查询
select * from employee where name in (select name from employee group by name having count(*)>1);
13、表的关联查询用过什么
(1)、左连接:left join
(2)、右连接:right join1、查询出右边所有的数据 2、再一的基础上查询出符合要求的左边的表数据
(3)、内连接:inner join 查询2个或者2个以上 查询他们交集(共同拥有)的数据
(4)、创建表 插入数据 举例说明
14、mysql中有两个表,表A中有id,name,company,表B中有id,工资,怎么查询李四的工资
(1)、创建表
(2)、插入数据
(3)、查询
15、mysql中有两个表,表A中有name,性别,分数;表b中有name,性别,分数,女生总共多少
(1)创建表
(2)插入数据
(3)查询(考核的是运算符)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?