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;