mysql 学习01

 

 

 

查询所有列:
select* from student;
结果集:
查询指定的列:
select 列名1,列名2 from 表名; 
select name,age from student;

条件查询:
条件查询运算符及关键字

1.    =	!=和<>都是不等于	<     <=     >    >=

2.在什么范围之内:between... and
select * from student where age between 18 and 20;	年龄介于18到20之间

3.查询固定范围值:in(set)	如:in(18,19,20) 查询范围值在18,19,20之内的值

4.为空:is NULL

5.不为空:is not NULL

6.与:and

7.or:或

8.非:not

模糊查询:
使用like关键字后跟通配符:
通配符:_:任意一个字符
            %:任意多个字符


如:

1.查询姓名由5个字母构成的学生信息,5个下划线

select * FROM student WHERE `name` LIKE '_____';


2.查询姓名由5个字母构成的学生信息,并且最后一个是字母为a,4个下划线+a

select * FROM student WHERE `name` LIKE '____a';


3.查询以m开头的学生信息
select * from student where name like 'm%';


4.查询第二个字母为r的学生信息
SELECT * from student where name like '_r%';


5.查询醒目中包含李的学生信息
select * from student where `name` like '%李%';
查询结果集去重:

distinct关键字去重

SELECT DISTINCT name from student;


查询结果集进行运算:
SELECT *,IFNULL(age,0)+IFNULL(score,0) from student;


对查询结果集起别名:
SELECT *,IFNULL(age,0)+IFNULL(score,0) as age_score from student;

升序ASC,降序DESC


选中表,右键----对象信息   
查看建表信息DDL语句


排序:

SELECT * from student order by id desc;
降序


SELECT * from student order by id asc;		
升序,默认

1.统计表中有多少条数据

select count(*) from student;


2.统计有age的个数,这里统计的是不为null的个数

select count(age) from student;


3.统计年龄大于18的人数

SELECT count(*) from student where age >18;


4.统计多个字段
select count(age),count(name) from student;

 

 

1.sum函数:
求和

求一个字段的和:

SELECT sum(age) from student;


求多个字段的和:

SELECT sum(age+score) from student;		
这里字段的数据类型没有关系,什么类型都可以,整数和字符串相加时,字符串为
0


2.avg函数:
求平均值
SELECT avg(age) from student;


3.max函数:求最大值
select max(age) from student;



4.min函数:求最小值
select min(age) from student;
1.group by 分组

SELECT * from student group by gender;	
分为了男、女两组

注意:
当group by 单独使用是,只显示出每组的第一条记录,所以单独使用的意义不大。



2.group by和group_by 组合使用:
SELECT sex,group_concat(name) from student group by sex;	
先分组,然后显示属于该组的人名


3.分组结合聚合函数使用
SELECT sex,group_concat(age),max(age) from student group by sex;		
分组里年龄的最大值
用来分组查询后指定一些条件来输出查询结果

having作用和where一样,但是having只能用于group by



having的使用:

1.查询员工工资总和大于9000的部门名称

select department,group_concat(salary),sum(salary) from employee group by department having sum(salary)>9000;




having 和where的区别:


1.having是在分组后对数据进行过滤
   where是在分组前对数据进行过滤


2.having后面可以使用分组函数(统计函数)
   where后面不可以使用分组函数

3.where是对分组前记录的条件,
如果某条数据不满足where条件,那么不会参与分组
   having是对分组后的数据进行约束


例:
查询工资大于2000的,
工资总和大于6000的部门名称以及工资和

select department,group_concat(salary),sum(salary) from employee where salary>2000 group by department having sum(salary)>6000;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值