1、having和where的区别
解答:
having子句用于分组后筛选,where子句用于行条件筛选
where条件子句中不能使用聚合函数,而having子句就可以。
2、请写出删除和插入的SQL语句。
解答:
A、首先创建一张表,create table user(id int prinmary key,name varchar(5),sex varchar(3));
B、插入有四种方式,分别如下:
1)按字段插入:insert into user(name) values("zhangsan");
2) 插入一行数据:insert into user values(1,"wagnwu");
3) 插入多行数据:insert into user values(2,"lisa"),(3,"aimi"),(4,"coco");
4) 插入重复数据:replace into user values(1,"wagnwu");
C、删除有三种方式,分别如下:
1) 删除一行数据:delete from tableNme where id=x;
2)删除整张表的数据:delete from tableName;
3)大批量删除数据:truncate table tableName ;
3、使用where编写与内连接等价的sql语句
解答:
select 表的别名.字段名 from 表1 表1别名,表2 表2别名 where 关联条件
4、MySQL中有两个表,表A 中有name,性别,分数;表b中有name,性别,分数,女生总共多少人,平均年龄,工程中用到哪些函数?
解答:
女生总共多少人:select((select count(sex) from person where sex="girl")+(select count(sex) from p_person where sex="girl")) as 女生总数;
平均分:select((select avg(sex) from person)+(select avg(age) from p_person)) as 平均年龄;
工程中用到count()和avg()函数
5、mysql 中有两个表格,表A 中有id,name,company,表B 中有id,工资,怎么查询李四的工资。
解答:使用内连接的方法通过id把表A和表B关联起来查找名字为李四的工资
select a.name,b.salary from A a inner join B b on a.id=b.id where name=“李四”;
解答:select(case when score的区间 then "分数等级" end) score,name from student;
7、重复字段查询
需求:查询出相同姓名个数大于1的信息
解答:select * from person where name in(select name from person group by name having count(*)>1);
解答:select sex,sum(age) sum from person group by sex;
9、需求:查询出不同性别的平均年龄
解答:select sex,avg(age) sum from person group by sex;