MySQL面试题

一、插入的区别

insert:常规的插入 replace:需要处理重复行,行的唯一性由主键约束,如果行存在,使用replace会自动的删除行并插入新行,如果不存在,就是等同于insert

二、列的约束

AUTO_INCREMENT:自增

PRIMARY KEY:主键

NOT NULL:不为空

unique:唯一性

default:默认

 

PRIMARY KEY:主键约束,指的是唯一性的

 

 

 

  replace into user values(2,"myc");

 

 

主键约束:
1、不能为空
2、不能重复

一个表里面可以有1-N+1个主键约束

 AUTO_INCREMENT:自增

 

 不管你是删除还是增加都在自增

 

 自增必须要和主键约束结合一起使用

NOT NULL:不为空

 

 
unique:唯一性 不能有重复的

 

 default:默认

 

 

创建表的逻辑:
if not exists
1、如果表存在,就使用之前的表
2、如果表不存在,就创建新的表

四、MySQL的时间类型:
DATETIME:YYYY-MM-DD HH:MM:SS 最大值到9999
TIMESTAMP:YYYY-MM-DD HH:MM:SS 最大值到2038年
DATE:YYYY-MM-DD
TIME:HH:MM:SS
YEAR:YYYY

 

 

五、MySQL小数点:
FLOAT:单精度
DOUBLE:双精度
DECIMAL (M, D):D代表小数点后的位数,M代表的是总的位数

 

面试题

一、需求:根据学生表的学生成绩,把学生成绩按照不同分数段分为满分,优秀,良好,及格,不及格

1、首先我们先创建一个表

create tabel student(

id int primary key,

name varchar(10),

class varchar(10),

score float);

 

 

 2、在表里面插入创造的学生成绩数据

insert into student values

(1,"IG","english",90),

(2,"RNG","math",88),

(3,"OMG","wuli",69),

(4,"WE","dili",59),

(5,"JDG","math",100);

 

 

 3、查看创建的数据是否完整正确

select * from student;

 

 

 4、我们进行多分支筛选

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;

 

 

 二、需求:输出成绩的最高分,最低分,平均分,总分,使用别名方式

1、创建一个成绩的表

create table employee(

id int primary key,

name varchar(10),

sex varchar(10),

aeg int,

score int);

,

 

 

 2、插入成绩的数据

insert into employee

(1,"aaa","m",18,99),

(2,"bbb","n",20,98),

(3,"ccc","m",24,100);

3、查看插入的数据是否完整正确

 

 

 

 

 

 4、输出成绩的最高分,最低分,平均分,总分,使用别名方式

最高分:select max(score) as 最高分 from employee;

 

 

 最低分:select min(score) as 最低分 from employee;

 

 

 平均分:select avg(score) as 平均分 from employee;

 

 

 总分数:select sum(score) as 总分数 from employee;

 

 

 

三、需求:输出不同性别的总分数

select sex as 性别,sum(score) as 总分 from employee group by sex;

 

 

 

四、子查询:里面的查询结果是外面查询的条件

select * from shop where id in (select shop_id from goods );

 

 

 五、MySQL语句面试题/

1.mysql登录命令 #mysql -h localhost -uroot -proot

2.如果修改了端口怎么登录 #mysql -h localhost -P3307 -uroot -proot

3.mysql使用具体哪个数据库的命令 #use databases;

4.查询有多少表 #show tables;

5.查询数据库版本 #show global variables like '%version%'

6.查询表中的所有数据 #select * from mua;

7.修改表的数据 #update mua set age = 24 where name = '张飞';

8.删除表的数据 #delete from mua #delete from mua where name = '张飞' #truncate table mua;

posted @ 2022-06-01 19:33  朝阳群众老马  阅读(69)  评论(0编辑  收藏  举报