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 join1、查询出左边所有的数据 2、再一的基础上查询出符合要求的右边的表数据

(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)查询(考核的是运算符)

select (select count() from aa where sex="女") + (select count() from bb where sex="女") 

 

posted @   净植  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示